Я очень новичок в Puppet, но я не могу понять эту простую проблему: я хочу определить ресурс, который просто выполняет последовательность сценариев один за другим, ожидая завершения выполнения одного перед запуском следующего.
Вот что я пробовал:
$ cat test.pp
define my_test {
exec { "my test task $name":
provider => shell,
logoutput => true,
command => "sleep $name && echo slept for $name seconds",
}
}
my_test { [3, 2, 1, 0]: }
$ puppet apply test.pp
Notice: Compiled catalog for my.domain.fr in environment production in 0.05 seconds
Notice: /Stage[main]/Main/My_test[0]/Exec[my test task 0]/returns: slept for 0 seconds
Notice: /Stage[main]/Main/My_test[0]/Exec[my test task 0]/returns: executed successfully
Notice: /Stage[main]/Main/My_test[3]/Exec[my test task 3]/returns: slept for 3 seconds
Notice: /Stage[main]/Main/My_test[3]/Exec[my test task 3]/returns: executed successfully
Notice: /Stage[main]/Main/My_test[1]/Exec[my test task 1]/returns: slept for 1 seconds
Notice: /Stage[main]/Main/My_test[1]/Exec[my test task 1]/returns: executed successfully
Notice: /Stage[main]/Main/My_test[2]/Exec[my test task 2]/returns: slept for 2 seconds
Notice: /Stage[main]/Main/My_test[2]/Exec[my test task 2]/returns: executed successfully
Notice: Finished catalog run in 6.27 seconds
Я также пытался использовать конструкцию [3, 2, 1, 0].each |$var| { ... }
и читал документацию и очень подробная статья ttboj о циклах в Puppet, но я до сих пор не не понял.
Моя проблема, вероятно, больше связана с тем, как в конце концов работают ресурсы Puppet, но может ли кто-нибудь объяснить, как проще всего написать такую простую задачу?