Ansible

チュートリアル

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であれば sshpassapt-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]

参考: