Я пытаюсь выполнить скрипт bash в среде с ножом/рубином. Например:Как достичь идемпотентности при выполнении скрипта bash в среде ruby / knife?
cookbook_file "test.sh" do
path "/tmp/test.sh"
mode "755"
action :create
end
bash "execute test.sh on #{nodeName}" do
code <<-EOH
sh test.sh arg1 arg2
EOH
#only_if { false }
end
Как я могу использовать only_if
или not_if
? Поэтому, когда мы выполняем второй раз, и содержимое «test.sh» не изменяется, оно должно пропустить выполнение. Я получаю это:
* cookbook_file[test.sh] action create (up to date)
, но он по-прежнему выполняет второй раз, третий раз ...
Вы имеете в виду, что 'test.sh' потенциально различается при каждом запуске ресурса, и вы хотите запустить' test.sh', только если он был изменен с момента его последнего запуска? –
тест.sh - такой же. И я хочу запускать только при его изменении. Как я могу использовать only_if/not_if и контрольные суммы файлов. Или каким-то другим способом. –
У меня тоже есть: cookbook_file "test.sh" do путь "/tmp/test.sh" режим "755" action: create end –