Я хотел бы добавить функциональность в манифест Puppet, чтобы применить одну конфигурацию, если другой файл существует, если не существует, следует применить другую конфигурацию. Я пробовал эту часть кода:
exec { "chk_file_exist":
path => ["/usr/bin","/usr/sbin", "/bin"],
onlyif => "test -f ${file} && echo 0",
before => File['/etc/systemd/system/config1.service'],
}
exec { "chk_file_doesnt_exist":
path => ["/usr/bin","/usr/sbin", "/bin"],
onlyif => "test ! -f ${file} && echo 0",
refreshonly => true,
before => File['/etc/systemd/system/config2.service'],
}
file { '/etc/systemd/system/config1.service':
content => template('module/service/config1.service'),
require => Exec["chk_file_exist"],
}
file { '/etc/systemd/system/config2.service':
content => template('module/service/config2.service'),
require => Exec["chk_file_doesnt_exist"],
}
Он создает только один файл, но выдает ошибку:
Error: Could not find command 'chk_file_exist'
Error: /Stage[main]/mymodule::service/Exec[chk_file_exist]/returns: change from 'notrun' to ['0'] failed: Could not find command 'chk_file_exist' (corrective)
Как мне избежать этой ошибки?
Спасибо