J'ai deux recettes de chef que je veux exécuter dans un ordre défini. La première est la recette d'installation, puis c'est la config.Ruby Block ne pas exécuter de code, seulement imprimer sortie
Voici le code invoquant les recettes:
ruby_block "bowbridge_config" do
block do
run_context.include_recipe "ids::bowbridge_config"
end
action :nothing
end
ruby_block "bowbridge_install" do
block do
run_context.include_recipe "sap-bowbridge::default"
end
notifies :run, 'ruby_block[bowbridge_config]', :delayed
end
J'exécute avec succès la recette avant la recette d'installation de config mais quand la recette de configuration exécute uniquement les impressions sont en cours d'impression.
config Code de recette:
mcaf_lib = find_file "/opt/bowbridge/libAVB*_mcaf.so"
Chef::Log.info("==> bowbridge_config mcaf_lib is #{mcaf_lib}. Vsi file is #{vsi_file}")
bb_cfg = File.basename(find_file "/opt/bowbridge/bbvsa*.cfg")
Chef::Log.info("==> bowbridge_config recipe is triggered")
# Setup bowbridge config file
directory "/etc/bowbridge" do
end
file "/etc/bowbridge/" + bb_cfg do
owner 'root'
group 'root'
mode 0755
content ::File.open("/opt/bowbridge/" + bb_cfg).read
action :create
end
Chef::Log.info("==> bowbridge_config before link creation")
link "/lib64/libvsa.so" do
to "#{mcaf_lib}"
end
Le code ci-dessus montre cette sortie:
[2017-02-24T11:25:36+00:00] INFO: ruby_block[bowbridge_install] sending run action to ruby_block[bowbridge_config] (delayed)
[2017-02-24T11:25:36+00:00] INFO: Processing ruby_block[bowbridge_config] action run (ids::default line 82)
[2017-02-24T11:25:37+00:00] INFO: ==> bowbridge_config recipe is triggered
[2017-02-24T11:25:37+00:00] INFO: ==> bowbridge_config before link creation
[2017-02-24T11:25:37+00:00] INFO: ruby_block[bowbridge_config] called
Non/etc/bowbridge est créé et aucun lien à l'intérieur/lib64 est créé. Que pourrais-je faire de mal?
Si vous n'allez pas ajouter d'options spécifiques à une ressource, comme le répertoire '/ etc/bowbridge', vous n'avez pas besoin d'ajouter le bloc do/end, gardez juste quelque chose comme: 'directory '/ etc/bowbridge'' – Navarro