Я переношу набор сценариев bash, которые развертывают сервер в Puppet. Почти все функции перенесены в Puppet, но я не вижу, как перенести один бит сценария bash, который выполняет следующие действия:
Как я могу динамически установить переменную марионетки таким образом?
кстати, я использую Puppet в автономной версии, используя puppet apply
поскольку у меня нет отдельного сервера, который мог бы выступать в роли хозяина марионеток. Кроме того, если кому-то интересно, почему это делается именно так, то корневой пароль MySQL не существует нигде, кроме коробки, где он используется, и не записывается ни в какие (читаемые) файлы.
Вы можете просто использовать функцию "generate" в своем манифесте, чтобы вызвать какой-то генератор случайных строк (pwgen?) И присвоить это значение переменной:
Похоже, что это невозможно сделать с Puppet, работающим в автономной версии.
Все переменные внутри классов вычисляются, когда скрипты читаются Puppet, поэтому нет способа создать цепочку зависимостей, чтобы:
В этой последовательности.
Теоретически можно использовать [run stages][1]
для управления этой зависимостью, но их нельзя использовать, если ваши классы include
ed в проект, поэтому их не рекомендуется использовать.
Поскольку я использую сценарий начальной загрузки для установки Puppet, я также могу просто установить PHP через сценарий начальной загрузки, вместо того, чтобы Puppet управлял им.