今回は、Ansibleインストールしたマシンが正常に動くかを動作確認します
実行環境
Mac上にVagrantで下記環境を作成して実行しています
# Ansibleを実行するマシン # 入門1にてAnsibleをインストールしたマシン
呼称:Controller
OS:CentOS6
IP: 192.168.33.11
user: vagrant
pass: vagrant
# Ansibleを実行されるマシン
呼称: Target
OS: CentOS6
IP: 192.168.33.12
user: vagrant
pass: vagrant
SSH Keyの準備
AnsibleはSSHで接続してプロビジョニングを行うみたいなので、 Controller
から Target
にSSH Keyで接続できるようにしておく
# SSH Keyの生成
[vagrant@controller ~]$ cd .ssh/
[vagrant@controller .ssh]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vagrant/.ssh/id_rsa): # 何も入力せずEnter
# Targetに認証させる
[vagrant@controller .ssh]$ ssh-copy-id vagrant@192.168.33.12
vagrant@192.168.33.12's password:
Now try logging into the machine, with "ssh 'vagrant@192.168.33.12'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
これでログインできるはず
[vagrant@controller .ssh]$ ssh 192.168.33.12
Last login: Mon Sep 26 03:58:54 2016 from 192.168.33.1
Welcome to your Vagrant-built virtual machine.
[vagrant@target ~]$ # ログインできた!(hostnameが変わっている)
Ansible用ディレクトリなどの準備
ここを参考にテスト接続してみます
[vagrant@controller ~]$ mkdir ansible
[vagrant@controller ~]$ cd ansible
[vagrant@controller ansible]$ mkdir inventory
[vagrant@controller ansible]$ vi inventory/hosts
viで作るファイルの中身はこんな感じ
[targets]
192.168.33.12
動作確認の実行
[vagrant@controller ansible]$ ansible all -i inventory/hosts -m ping
192.168.33.12 | FAILED! => {
"failed": true,
"msg": "failed to resolve remote temporary directory from ansible-tmp-1474855390.1-240110546260352: `( umask 77 && mkdir -p \"` echo $HOME/.ansible/tmp/ansible-tmp-1474855390.1-240110546260352 `\" && echo ansible-tmp-1474855390.1-240110546260352=\"` echo $HOME/.ansible/tmp/ansible-tmp-1474855390.1-240110546260352 `\" )` returned empty string"
}
ダメだった...
公式ドキュメントでこんな記述があった
Ansible will attempt to remote connect to the machines using your current user name, just like SSH would. To override the remote user name, just use the ‘-u’ parameter.
デフォルトで現在のユーザ名になるって書いてあるから無駄かもしれんけども、 -u
つけたら動くんじゃ、と思って実行してみる
[vagrant@controller ansible]$ ansible all -i inventory/hosts -m ping -u vagrant
192.168.33.12 | SUCCESS => {
"changed": false,
"ping": "pong"
}
動いた!
いつから公式ドキュメントが正しいと錯覚していた ってやつでした
とりあえず動いたので今回はこれで終わり