Puppet создайте шаблон, выполните одну команду, введите другой шаблон для того же файла, выполните команду
У меня была хорошая трещина в этом, и я немного борюсь. У меня есть консольный файл PHP5 с именем parameters.yml. Он содержит некоторые метаданные для подключения к БД, запуска некоторых команд и выхода.
Первый запуск этого процесса идеален, но, после первого запуска, мне нужно обновлять файл parameters.yml из второго шаблона, который содержит другие метаданные, а затем выполнять другую команду. Кукольный, конечно, жалуется, что:
Error: Evaluation Error: Error while evaluating a Resource Statement, Duplicate declaration
Я попытался создать определение, установив имя файла в качестве переменной в надежде, что кукольный просто сделает это, но, увы, нет. К сожалению, это не похоже на то, что php-консоль позволяет мне указать, где он найдет параметры .yml, который позволил бы мне положить два файла, и exec console -parameters1.yml, а затем console -parameters2.yml.
Вот мой код:
module.pp define module::params_file ($content_variable, $params_notify) { file { "$title": owner => 'root', group => 'root', content => $content_variable, require => File['/home/admin.tar.bz2'], notify => $params_notify, } }
parentFile:
module::params_file { '/home/components/app/config/parameters.yml': content_variable => "template('ace/admin/parameters.pre.yml.erb'),", # params_notify => "Exec['php console --no-interaction doctrine:migrations:migrate'],", params_notify => 'notice ("ACEInfo: This is applying the post-Config"),', } # Execute /home/components/app/console ---no-interaction doctrine:migrations:migrate exec { 'php console --no-interaction doctrine:migrations:migrate': path => "/usr/bin:/usr/sbin:/bin;/usr/bin/php;", cwd => '/home/components/admin/app', refreshonly => true, require => File['/home/components/admin/app/config/parameters.yml'], } module::params_file { '/home/components/app/config/parameters.yml': content_variable => "template('ace/admin/parameters.post.yml.erb'),", # params_notify => "Exec['php console --no-interaction doctrine:migrations:migrate'],", params_notify => 'notice ("ACEInfo: This is applying the post-Config"),', } # Execute /home/components/admin/app/console ---no-interaction doctrine:migrations:migrate exec { 'php console setup:insert-permissions': path => "/usr/bin:/usr/sbin:/bin;/usr/bin/php;", cwd => '/home/components/admin/app', refreshonly => true, require => File['/home/components/admin/app/config/parameters.yml'], }
Так что делать короткие заметки
- исходный шаблон /home/components/app/config/(pre)parameters.yml
- запустить exec
- исходный шаблон /home/components/app/config/(post)parameters.yml
- беги точно
Спасибо
0 ответов на вопрос
Похожие вопросы
-
3
Как я могу "инвертировать" структуру каталогов?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
7
Запустить синергетический клиент при загрузке в Mac OS X
-
-
4
Как синхронизировать скрипты GreaseMonkey между компьютерами?
-
1
Могу ли я написать скрипт, который будет автоматически переключать пользователей?
-
6
Хорошее руководство по PowerShell, начало работы с более продвинутым использованием
-
3
Сбой FTP «PUT» на виртуальной машине, но не на хост-ПК: 504 Команда не реализована для этого парамет...
-
1
ksh эквивалент perl $! причина ошибки
-
2
Ошибка индекса вне диапазона в сценарии VBScript
-
5
crontab разбудить osx из сна