По сути, вопрос, который я хотел бы задать, связан с автоматизацией развертывания программных пакетов в Solaris 10.
В частности, у меня есть набор программных компонентов в файлах tar, которые запускаются как процессы демона после извлечения и настройки в среде хоста. Как и любой другой программный пакет на стороне сервера, мне нужно убедиться, что список предварительных условий соблюден, прежде чем извлекать и запускать программное обеспечение. Например:
Проверка того, что определенные пользователи существуют и связаны с одной или несколькими группами пользователей. Если нет, то создайте их и их групповые ассоциации.
Проверка того, что папки целевого приложения существуют, а если нет, то создайте их с предварительно настроенными значениями пути, определенными при сборке пакета.
Проверка того, что такие папки имеют соответствующий уровень контроля доступа и права собственности для определенного пользователя. Если нет, то установите их.
Проверка того, что набор переменных среды определен в / etc / profile, указывает на заранее заданные пути, добавлен в общую переменную среды $ PATH и, наконец, экспортирован в среду пользователя. Другие файлы включают / etc / services и / etc / system.
Очевидно, что выполнение этого для многих ящиков (рассматриваемая цель) вручную может быть медленным и подверженным ошибкам.
Я считаю, что лучшая альтернатива - как-то автоматизировать этот процесс. До сих пор я думал о следующих вариантах и отказался от них по той или иной причине.
1) Традиционные сценарии оболочки. Я только устранял их раньше, и у меня нет большого опыта с ними. Это будет мое последнее средство.
2) Скрипты Python с использованием библиотеки pexpect для анализа вывода системных команд. Это был мой первоначальный выбор, поскольку он был установлен в целевых средах Solaris. Однако я хочу быть уверенным, что больше не изобретаю колесо: P.
3) Скрипты Ant или Gradle. Они могут быть вариантом, поскольку в ящиках также включена java 1.5, и абстракции набора файлов могут быть очень полезны. Однако они могут не справиться с проверкой / настройкой прав пользователей и папок.
Мне кажется очевидным, что я не первый, кто попал в эту ситуацию, но мне кажется, что я не нахожу инфраструктуры, предназначенной для этой цели. Пожалуйста, дайте мне знать, если есть лучший способ сделать это.
Благодарю вас за ваше время и помощь.
Возможно, вы захотите использовать для этого автоматизацию изменений. например, Puppet, Chef, cfengine, bcm2 или что-то еще.
Лично я использовал Puppet на Solaris последние три года и был вполне доволен своим решением. Мы используем его для управления всеми аспектами нашего системного администрирования: пользователями, файлами, заданиями cron, файловыми системами ZFS, подключениями NFS, зонами, службами (через SMF) и т. Д. Это очень полезно.
Поставщик пакетов Puppet SRV4 работает, но у него нет возможности извлекать файлы удаленно (например, через HTTP). Вы можете обойти это, написав функцию, которая устанавливает ваши пакеты за вас. Если пакеты доступны локально (через NFS), поставщик должен просто работать.
В дополнение к Solaris 10 мы используем то же репозиторий Puppet для управления нашими системами Solaris Express и Debian Linux.
Некоторое время я писал этот пост, который может быть полезным: http://mirrorshades.net/post/196593566