MacからVagrantへansibleを実行しようとした際に、ハマった点などをメモ。
ソフトウェア | バージョン |
---|---|
Vagrant | 1.7.2 |
Ansible | 1.9.4 |
##AnsibleをMacから実行
Vagrantの準備
作業ディレクトリ作成
mkdir ansible_from_mac
cd ansible_from_mac
vagrant init your_vagrant_box
'Vagrantfile'の修正
vi Vagrantfile
ローカルのIPアドレスを修正
# config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "private_network", ip: "192.168.111.111"
# 以下を追加
config.ssh.insert_key = false
'config.ssh.insert_key'に関して、以下を参考
vagrant 1.7以降は'vagrant up'した時にinsecure_keyを差し替える
vagratを起動
vagrant up
ここからMacの設定
Macにもansibleを入れておきます。
brew install ansible
SSH 接続クライアントの設定
vi ~/.ssh/config
Host 192.168.111.111
User vagrant
IdentityFile ~/.vagrant.d/insecure_private_key
ansibleの設定ファイルを作成
mkdir /usr/local/etc/ansible
vi /usr/local/etc/ansible/hosts
[local.ansible.com]
192.168.111.111
##SSH接続に困ったときに対応した点
最初、ansible
実行時に、SSH Error: Permission denied
となってしまう問題が発生。
192.168.111.111 | FAILED => SSH Error: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
while connecting to 192.168.111.111:22
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.
###原因調査
ssh-config
で確認すると、利用されているprivate_key
が異なることが分かった。
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /your/vagrant/path/ansible_from_mac/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
###SSH接続に困ったときに対応した点(2パターン)
####1. vagrant up
時に毎回keyが作成されるのを避ける
Vagrant1.7から、vagrant up
時に毎回keyが作成される仕様になっていた
# それを避けるために追加したのが以下
config.ssh.insert_key = false
####2. ~/.ssh/config
の修正し、個別のkeyを利用するようにする
Host 192.168.111.111
User vagrant
IdentityFile /your/vagrant/path/ansible_from_mac/.vagrant/machines/default/virtualbox/private_key
####結果
改めて、ansilbe
コマンドを実行
ansible local.example.com -m ping
pingを実行
192.168.111.111 | success >> {
"changed": false,
"ping": "pong"
}
成功。