Ansibleで特殊文字を含むパスワードに対処する

ansible_ssh_pass オプションを使用して ansible playbook を実行し、接続先サーバーに接続しようとしています。

ansible-playbook test-playbook.yml -i hosts -u daniel --extra-vars "{"ansible_ssh_pass":"u5!vuL!<35Lf?<>n'x"}"

問題は、パスワードに特殊文字が含まれていることです。 使って保存してみました。

"password\'s"
"password"
"\"password\""

どうすればパスワードを保存できますか?

おそらく少し遅いですが、あなたの具体的な問題に対する正確な解決策は。


ansible-playbook test-playbook.yml -i hosts -u daniel --extra-vars ansible_ssh_pass=$'"u5!vuL!
解説 (0)

ansible-vaultの場合、ファイルにパスワードを指定できることは知っているので、この場合もうまくいくのではないかと思っているのですが、確証は持てません。

ansible-playbook test-playbook.yml -i hosts -u daniel --extra-vars ansible_ssh_pass=/path/to/file.txt
解説 (2)

シングルクオートの特殊文字を削除すれば、残りはシングルクオートで囲めばうまくいくはずです。


ansible-playbook test-playbook.yml -i hosts -u daniel -e ansible_ssh_pass='u5!vuL!
解説 (0)