チュートリアル
http://docs.ansible.com/ansible/intro_getting_started.html の通り実行しようとすると以下のエラーとなった。
ubuntu:~$ ansible all -m ping
mama | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n",
"unreachable": true
}
ubuntu:~$ ansible all -m ping --ask-pass
SSH password:
mama | FAILED! => {
"failed": true,
"msg": "to use the 'ssh' connection type with passwords, you must install the sshpass program"
}
Ubuntuであれば sshpass
は apt-get install sshpass
でインストール可能。
公開鍵認証
次のplaybook.ymlを実行すれば自分の公開鍵をターゲットのホストにコピーできる。 以降、パスワード入力は不要になる。
- hosts: all tasks: - name: mkdir .ssh #.sshフォルダの作成 file: dest=~/.ssh state=directory owner={{ansible_user}} group={{ansible_user}} mode=700 - name: copy publickey #公開鍵を貼付け copy: src=~/.ssh/id_rsa.pub dest=~/.ssh/authorized_keys owner={{ansible_user}} group={{ansible_user}} mode=600
なお、 ansible_user
はhostsファイル(デフォルトでは /etc/ansible/hosts
)で設定する[1]。
参考: