Execute, chef : oui mais par qui ?
Posted by JB on 17/04/10 at 21:00
Un billet en forme de petite note pour moi-même, relatif à mes découvertes de la soirée.
J’ai besoin d’exécuter des commandes avec Chef. Pour cela, il y a la ressource Execute :
execute "ma commande"Mais la documentation prévient bien :
By their nature, Execute resources are not idempotent, as they are completely up to the user’s imagination. Use the not_if or only_if meta parameters to guard the resource for idempotence.
OK, allons-y :
execute "ma commande" do not_if "ma condition shell" end
Si la commande doit être exécutée avec un user particulier :
execute "ma commande" do user "tom" not_if "ma condition shell" end
Mais la condition, elle, sera exécutée dans un contexte root (puisqu’il vaut mieux lancer chef-solo ou chef-client en root si l’on veut que la plupart des ressources fonctionnent). En général la condition serait à exécuter avec le même user. D’où :
execute "ma commande" do user "tom" not_if "ma condition shell", :user => "tom" end
Je trouve pas ça très joli. A réfléchir.
PS: si on veut se convaincre que ça se passe bien comme je dis :
execute "whoami > /tmp/whoami.execute" do user "tom" only_if "whoami > /tmp/whoami.only_if" end
Comments
There are 0 comments on this post. Post yours →
Post a comment
Required fields in bold.