LINUX.ORG.RU

Сложный инсталятор сложных вещей


1

3

Название получилось немного громким, но оно в принципе раскрывает суть вопроса. У нас есть «система» которая пока состоит из 3 компонент, сервер-БД-вебморда. Хочется создать инсталятор который умел бы все это разворачивать на чистой системе или апдейтить там где уже было установлено.

Стандартный способ установки в виде паке сразу был отброшен так как он несет несколько другую цель, он нужен в первую очередь за тем что бы уметь установиться в системные дир и удалиться при необходимости.

У нас более сферический процесс установки. Который пока заключается в том что нужно установит либо

1. Все компоненты, или только выбранные. Параметризовать процесс установки (где развернуть БД, где веб морду)

2. Связать их все между собой (тобишь что бы параметры конфигов были согласованы)

3. Уметь обновляться, т.е. не стирать и заливать заново, а как то мержиться по заданным правилам.

В принципе все это можно сделать и на Bash, но хочется узнать может есть какие то не проприетарные средства нацеленные именно на создание сложных инсталяторов в Linux системах?


. Уметь обновляться, т.е. не стирать и заливать заново, а как то мержиться по заданным правилам.

это просто надо создавать свое окружение и там основательно разворачить софт, а не гадить систему таким.

Deleted
()

Многое описаное вообщем умеют пакетные менеджеры. Плюс может быть начальный скрипт инициализации

vertexua ★★★★★
()

Связать их все между собой

Уметь обновляться

это в любом случае скриптуется руками. Неважно будет это свой велосипед, какой-нить puppet или пакетный менеджер.

А пакетные менеджеры всё что нужно (вызывать соотв. хуки при соотв. действиях) уже умеют.

true_admin ★★★★★
()
Ответ на: комментарий от vertexua

vertexua

Распространяем в собранном виде, таргет системы это Centos и Ubuntu для сервера, остальное где угодно может работать. Рассчитано на штучное распространение а не на массовое.

это просто надо создавать свое окружение

Это я согласен, например с сервером это еще возможно, там всеголиш папка, в которой бинарник пару скритов конфигов и все. БД, это уже посложней, не будем же мы вместе со собой еще и БД ставить, мы описываем в требованиях мол нужная такая то версия БД. Веб морда через Tomcat, опять таки нужен ряд спец конфигов плюс специфичная переменная окружения до них + сам томкат.

При этом все компоненты могут находится как на одной машине так и на разных.

Сейчас идея сделать ПО след принцепу

Our_package
+ Server
  + ...
  + install.sh
+ DB
  + ...
  + install.sh
+ Web
  + ...
  + install.sh
+ install.sh

Что по крайней мере позволит либо все ставить скопом, либо делать выборочную установку.

Cupper
() автор топика
Ответ на: комментарий от Cupper

через пакетный менеджер нечто подобное можно сделать ?

PS. не удивлюсь если со временем к этому еще и UI захотят :)

Cupper
() автор топика
Ответ на: комментарий от Cupper

через portage можно без проблем.

anonymous
()

это все делается через стандартные установочные пакеты целевой платформы (rpm, deb, etc)

а вообще уже задолбали лезть со своими виндовыми замашками на линукс, учите матчасть, господа

EugeneBas ★★
()
Ответ на: комментарий от Cupper

Сейчас идея сделать ПО след принцепу

Честно говоря хреновая идея. Советую таки присмотрется к паппету как уже советовали, он по идее под эту задачу больше всего подходит если расширять нужно будет в будущем

Khan
()
Ответ на: комментарий от Khan

Приложение отдается во вне, это «вне» закрыто за 7ю замками от внешнего интернета. Ни о каком удаленном администрировании и речи быть не может.

Cupper
() автор топика
Ответ на: комментарий от EugeneBas

Мне нужно выполнить три этапа установки. 1. Развернуть сервер. 2. Развернуть БД. 3. Развернуть Web морду.

Под развернуть я подразумеваю что все три компоненты должны быть согласованы между собой по параметрам доступа.

Я пытаюсь понять какие преимущества дадут мне пакетные менеджеры?

Cupper
() автор топика
Ответ на: комментарий от Cupper

Пару преимуществ я все таки вижу:

1. Контроль версии со стороны пакетного менеджера, два раза установить одно и тоже не получится (я как раз задумался о том, что мне это нужно будет самому делать)

2. Вроде как менеджер позволит удалить пакет, но у нас пока вообще нет такого понятие как «удалить наш софт» :). Можно «выкатить новую версию», что пока равносильно заменить все старое. Что в принципе равносильно «удалить старое, установить новое»

С другой стороны я вижу одну проблему:

Нужно уметь, знать и любить правила и способы построения этих самых пакетов.

Cupper
() автор топика
Ответ на: комментарий от Cupper

ну приемущества следующие:

  • нативность для целевой системы
  • отказ от своих велосипедов в пользу стандартного решения повышает стабильность
  • стандартный механизм установки, обновления и удаления
  • возможность нарезать твою систему на логические части и завернуть в отдельные пакеты (сервер, бд, web-морду или даже более мелкие, если имеет смысл)
  • возможность сделать мета-пакеты, которые будут устанавливать более сложные конфигурации
  • меньше негативного влияния на карму нехороших слов недовольных пользователей
EugeneBas ★★
()
Ответ на: комментарий от Cupper

и что ? Паппет абсолютно ортогонален к наличию интернетов в каком-либо виде. Это скорее более разумная замена скриптованию наркомании типа:

if [ $something ]; then
    rpm -Uvh <somepackage>
else
    rpm -Uvh <otherpackage>
fi

сравни с:

 package { "mypackage": 
        ensure => installed 
    }

можно конечно и без надстройки обойтись - например метапакетами как уже предложили. Главное не чистыми шелл-скриптами которые творят невесть что - за такое без крайней на то нужды стоит УБИВАТ :)

Khan
()
Ответ на: комментарий от Khan

в первом случае я понимаю что происходит, во втором мне кажется, что выполняется вообще какое то другое действие :)

Cupper
() автор топика
Ответ на: комментарий от EugeneBas

Ок, в принципе нам как раз нужно уметь для каждой части делать свой пакет, и общий из всех. Притом общий должен управлять установкой и настройки частных.

А с помощью чего можно сделать независимость от пакета ? Что бы не сопровождать два разных пакетных менеджера, а что то типа Cmake но для построения пакетов ?

Cupper
() автор топика
Ответ на: комментарий от Cupper

Насчет таких средств не слышал (возможно гугл поможет), но если сделать rpm и deb - это покроет все самые популярные дистрибутивы. Причем, можно еще сэкономить. Правильно написанные rpm-пакеты без проблем конвертируются в deb программой alien.

EugeneBas ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.