Comment utiliser les commandes SSH distantes avec Chef? Par exemple, ce qui porte la commande suivante dans une recetteChef - exécution des commandes SSH distantes
ssh -T [email protected] <<'ENDSSH'
cat /etc/*-release
ENDSSH
Utilisation de la ressource execute
execute "some_resource" do
command "ssh -T [email protected] <<'ENDSSH'
cat /etc/*-release
ENDSSH"
action :run
end
Résultats dans
warning: here-document at line 0 delimited by end-of-file (wanted `ENDSSH')
Je ne l'ai pas essayé d'utiliser bash
avec ENDSSH
, cependant. L'utilisation de EOT
semble entrer en conflit avec le EOH
externe attendu lors de l'utilisation de la ressource bash
. Serait-ce possible en utilisant Chef, ou quelque chose comme le Mixlib::ShellOut
serait plus approprié pour contourner les indentations ajoutées ou analysées par le Chef lors de l'utilisation de HEREDOC
que je suppose être la cause? Dans les deux cas, la stabilité semble discutable.
Merci!
Qu'est-ce que vous essayez de faire? Ce n'est pas un bon endroit pour utiliser Chef par rapport à d'autres outils. – coderanger
Je suis en train d'essayer de restaurer à distance une configuration sur une instance exécutant FreeBSD et en raison des besoins de conformité, chef-client ne peut pas être installé sur ce nœud particulier. – dcd018
Comme vous pouvez probablement le voir à partir de mon histoire de poste, je suis plutôt un booster de chef, mais pour quelque chose comme ça, je chercherais ailleurs. Sel (w/salt-ssh), Ansible, ou tissu/Invoke serait un meilleur ajustement et beaucoup moins douloureux pour vous. – coderanger