ansible-vaultで作ったpasswordに改行が入るときの対応
ansible-vaultでパスワードを暗号化してセットしたつもりで展開されたら改行が入ってしまっていて、
以下のようなことになっていることがあります。
mysql_endpoint = mysql+pymysql://USER:PASSWORD @HOSTNAME:3306/database
@から改行されてしまって、確認しようとしたらmysqlへの接続エラーみたいな...
そう言った時大体、
echo 'password' | ansible-vault encrypt
とやってしまっていますが、
echo -n 'password' | ansible-vault encrypt
を入れると改行を取り除いてくれますね。
echo の -n
オプションは、man echo を読んでいただけるとわかると思いますが、
-n do not output the trailing newline
と書かれてて、改行を出力しないようにしてくれます。
よく忘れて、ansible実行すると大体これにハマるので注意したいです。