Я изучаю Puppet на примере и пишу несколько модулей для управления нашими текущими серверами RHEL и Ubuntu. Моя первая серьезная попытка - это модуль Zend Server.
Поскольку у Puppet есть Yumrepo, но нет ресурса Aptrepo, как бы вы структурировали модуль для добавления репо и установки пакетов независимо от дистрибутива? Людям, использующим модуль, не нужно беспокоиться о том, какой дистрибутив работает на сервере.
Еще одна вещь. Я хотел бы, чтобы Puppet установил пароль администратора ZS после установки, но не могу найти, где он установлен. Любая идея?
Что-то вроде:
class usefulclass {
if $operatingsystem == "RHEL" {
repo { ...
before => Package["zend"] }
} else {
file { "sources.list"... //or however you choose to manage sources.list
before => Package["zend"] }
}
}
Не держите под рукой коробку RHEL, просто запустите facter operatingsystem
чтобы узнать, какое возвращаемое значение нужно искать.
Я только начинаю проверять Puppet, но я просмотрел файл: /usr/local/zend/bin/gui_passwd.sh
который изменяет этот пароль (он есть на тот случай, если вы забудете исходный пароль).
Внизу скрипта он помещает пароль MD5 в файл: /usr/local/zend/gui/application/data/zend-server-user.ini
, хотя он должен отредактировать файл с помощью sed.