Vagrant (4) VagrantでAnsibleを利用する

こんにちは。

グローバルソリューション事業部の吉村です。

 

前回の「Vagrant (3) 続・CentOS7 の仮想マシンを作る」 の続きです。

前回はCentOS7で仮想マシンを作って、/vagrant ディレクトリをマウントする時のエラーを直しました。

今回は Vagrant と Ansble の連携を試したいと思います。

 

まず、公式のドキュメント を読んでみました。

 

  • Ansible でいうところの Inventry File を作成するには、Vagrant に自動的に作らせる方法と、手動で作る方法がある。
  • Ansible のPlaybookが使えます。
  • Ansible 側の変数よりも優先度が高い変数をVagrant側で設定できる。
  • Ansible の並列処理を活かすなら、Vagrant が各仮想マシンに同じ鍵を持たせた方がいい。
  • Ansible の設定ファイル(ansible.cfg)は、Vagrantfile を同じディレクトリに置いておくと参照される。
  • Ansible が対象サーバにPlaybookを実行する際には、vagrant ユーザで接続するように変数を設定しておくよ良い。

 

ざっくりとこんなところでしょうか。

Ansible を触ったことがある人なら、なんとなく言ってることが分かるかなーという感じの、あまり親切ではないドキュメントでした。

 

 

では、さっそく試してみたいと思います。

 

 

1.まずは簡単に・・・

Vagrantfile ファイルが置いてある ディレクトリと同じ場所に簡単な Playbook  test.yml を作りました。

それぞれ中身はこんな感じです。

 

Vagrantfile に、仮想マシンを作ったら test.yml  を実行してねと書いてます。

config.vm.provision “ansible” do |ansible|
ansible.playbook = “test.yml”
end

の部分です。

 

test.yml  の中身は、 pingモジュール実行してねとだけ書いてます。

  tasks:
– name: test connection
ping:

の部分です。

とてもシンプルです。

 

 

では、実行してみましょう!

 

 失敗です!

 

普通に仮想マシン作成から /vagrant ディレクトリのマウントまではOKでしたが、その次の Ansible playbook 実行時に、仮想マシンに SSH 接続失敗したみたいです。

 

がーん

 

しかし、vagrant によって Inventory File は作成されていました。

 

そして、物理ホストから vagrant ssh はできる状態。

なんでだろう。

 

 

と思っていたら、Vagrantの公式ドキュメントにデカデカと書いていました。

image16

 

Your Vagrant host should ideally provide a recent version of OpenSSH that supports ControlPersist

私のVagrantサーバのOpenSSHのバージョンが古いようです。

アップデートしました。

 

 

 

これで再度挑戦

もう仮想マシンは出来ているので、provision だけ試します。

 

成功しました!

 

 

よかったよかった。

 

というわけで、今回は Vagrant で ansible-playbook を動作させるところまでやってみました。

それでは、次回もお楽しみに!

 

Share on LinkedIn
LINEで送る
Pocket

吉村

吉村

クララオンライン グローバルビジネスストラテジー部でマーケティング担当として働いています。 クラウド関連技術と中国関連の情報をお届けしてます。 たまに DJ とかします。日本語RAPが大好きです。