我有以下的傀儡代码:
exec { 'set mysql root password': user => root, path => "/usr/bin:/usr/sbin:/bin", command => "/usr/bin/mysqladmin -u root password \'${root_pwd}\'", onlyif => 'grep /etc/mysql_root_password_setup.cf -nrw -e \'0\'', } exec { 'set mysql hostname password': user => root, path => "/usr/bin:/usr/sbin:/bin", command => "/usr/bin/mysqladmin -u root -h ${::fqdn} password \'${root_pwd}\'", onlyif => 'grep /etc/mysql_root_password_setup.cf -nrw -e \'0\'', } exec { 'Modify the Breadcrumb': user => root, path => "/usr/bin:/usr/sbin:/bin", command => "echo 1 > /etc/mysql_root_password_setup.cf", onlyif => 'grep /etc/mysql_root_password_setup.cf -nrw -e \'0\'', }
正如你所看到的,我正在运行三个exec命令。 第一个设置Mysql密码,第二个设置相同,第三个设置为1,然后写入面包屑文件/etc/mysql_root_password_setup.cf 。
我希望第三个exec只有在前两个exec完成后才能执行。
我如何告诉puppet按照它们在类文件中定义的顺序来执行它们。
你可以使用Puppet的require参数。
例如:
exec { 'set mysql root password': ... } exec { 'set mysql hostname password': require => Exec['set mysql root password'], ... } exec { 'Modify the Breadcrumb': require => Exec['set mysql hostname password'], ... }