Ansibleのuserモジュールでパスワードをソルト指定なしのpassword_hash()で生成すると毎回changedになる2019/05/29AnsibleLinux掲題の通り。恥ずかしながらソルトという概念を知らずにべき等性の闇に飲まれてはまったのでメモ。こんなRoleがあったとします。value”)化して記載します。これまで公式doc見て何も疑問を持たず脳死でこれやってた。今日気付いたのですが、このRoleをansible-playbookでかけると毎回changedになります。普通に同じユーザ名/パスワードでログインはできる。おかしいなと思ったら、password_hash()でソルトの指定をしていなかったからなんですね。Unix系のパスワード管理には/etc/shadowというファイルが利用されます。このファイルは、ユーザ名とハッシュアルゴリズム、ソルト、ソルトとパスワードを組み合わせてからハッシュ関数をかけたものが使用されます。Ansibleはこの/etc/shadowを直接操作するため、ソルトを指定してあげないと実行のたびにハッシュ値が変わり、/etc/shadowが変更されるのでchangedになるのですね。CONTAINERvars/main.ymlでpassword_hashフィルタをかけるときにソルトを指定してやることで、changedが出なくなる。やり方自体は書いてありました。}}"...123本当に恥の多い人生を送っています。