きょうはあしたのために

今日気づいたことをかくんだ

ansibleでsshパスワードを設定するときの話

概要

ansibleでリモート先のマシンをプロビジョニングする際に、ansibleはSSHで接続するため公開鍵認証やパスワード認証を行う必要がある。
当記事はパスワード認証で接続するためにどのような設定を行えばよいか解説を行う。

解説

ansibleでsshのパスワード認証を行うには3通りの方法がある。(3つめは追記部分に記載)

  1. ansible実行時にパスワードの入力を求めるようにする。
  2. インベントリファイルにパスワードを設定しておき、ansible実行時に設定済みのパスワードを読み込むようにする。
ansible実行時にパスワードの入力を求めるようにする。

/etc/ansible/ansible.cfgを以下の通り修正する。

# 修正前
# ask_pass      = True
# 修正後
ask_pass      = True

なお、SSH時のリモートログインユーザーなども/etc/ansible/ansible.cfgに設定することができる。
詳しくは公式ドキュメントよんで!
http://docs.ansible.com/ansible/intro_configuration.html

インベントリファイルにパスワードを設定しておき、ansible実行時に設定済みのパスワードを読み込むようにする。

インベントリファイルに下記サイトのようにパスワードを設定する。

qiita.com

ただインベントリファイルをgitなどでバージョン管理している場合、
さすがにパスワードが書かれたファイルをコミットしちゃうのはアレなきがするのでその辺の運用はどうやってんのか気になる。。

2016/6/22 追記

3つ目のパスワードの指定の方法があったので記載しておく。
ansible-playbookコマンドでplaybookを実行する際に--ask-passオプション(または-kオプション)を追加する。

ansible-playbook --ask-pass

上でansible.cfgを修正していなくてもansible実行時にパスワードの入力をプロンプトで求めるようになる。