Ansible powershellでユーザー作成時のパスワード 特殊記号でエラー

Ansibleを活用することで、一括で多くのサーバのユーザーを作成することができます。

 

Ansible自体にユーザー作成用のモジュールが用意されていますが、汎用的にWindowsPowershellを使用することもできます。

 

そして、複数のサーバに異なるパスワードを設定するPlaybookを作成して流したときに powershellでユーザー作成時のパスワード 特殊記号でエラーがでました。

 

参考にした情報がこちら

shell - Dealing with a password with special characters in Ansible - Stack Overflow

 

宛先サーバーに接続するためにansible_ssh_passオプションを指定してansibleプレイブックを実行しようとしています。

ansible-playbook test-playbook.yml -i hosts -u daniel --extra-vars "{"ansible_ssh_pass":"u5!vuL!<35Lf?<>n'x"}"
問題は、パスワードに特殊文字が含まれていることです。を使って保存してみました。

"password\'s"
"password"
"\"password\""
パスワードを保存するにはどうすればよいですか?

 

 

回答です。

 

1、ansibleの場合ansible_ssh_pass特殊文字が含まれている

[test]
192.168.1.1 ansible_ssh_user=network ansible_ssh_pass="'6j#@D@vcsA4'"

 

英数字記号が混じっている場合で、記号が先頭に来るとエラーになります。記号を先頭にしなければエラーは回避できます。

 

その他は、””で囲むとエラー回避できました。