構成管理ツールのAnsibleを使ってみます。
目的
AnsibleをMacにインストールし、Vagrant上の仮想マシンにアクセスしてみます。
環境
- Mac El Capitan
- Vagrant 1.9.1 + Ubuntu 16.04
- 作業フォルダ:/任意の場所/ansible/
ステップ1. インストール
Homebrewを使って、MacにAnsibleをインストールします。
$ brew update $ brew install ansible
Ansibleを最新版に更新するときはupdateでパッケージ情報を更新し、outdatedでAnsibleに新しいバージョンがあるか確認します。新しいバージョンがあればupgradeで更新します。
$ brew update $ brew outdated ansible
ステップ2. 接続先情報の作成
任意の場所にansible
フォルダを作り、そこで作業をします。フォルダは任意の名前でOKです。
$ mkdir ansible $ cd ansible
hosts
ファイルを作り、サーバーへの接続先情報を記載します。ファイルは任意の名前でOKです。
書式
[<接続先情報の名前>] <接続先ドメイン or IP> ansible_ssh_port=<ポート番号> ansible_ssh_user=<ユーザー名> ansible_ssh_private_key=<秘密鍵へのパス>
Vagrant の仮想マシンに接続する例です。
[vagrant_default] 192.168.33.10 ansible_ssh_port=22 ansible_ssh_user=vagrant ansible_ssh_private_key=/documents/vagrant/.vagrant/machines/default/virtualbox/private_key
ステップ3. 接続の確認
実際に接続できるかどうかを ansible all
コマンドで試します。
$ ansible all -i hosts -m ping
うまくいくとSUCCESSと返ってきます。
192.168.33.10 | SUCCESS => { "changed": false, "ping": "pong" }
ステップ4. Playbookの作成
Ansibleで実行する内容を書いたものをPlaybookと呼びます。
playbook.yml
を作り、実行する命令を書きます。ファイルは任意の名前でOKです。
書式(一例)
- hosts: <接続先情報の名前> tasks: - debug: msg="<デバッグメッセージ>"
Vagrant の仮想マシンに接続して、”Hello Ansible”と表示する例です。
- hosts: vagrant_default tasks: - debug: msg="hello Ansible"
ステップ5. Playbookの実行
ansible-playbook
コマンドでPlaybookを実行します。引数-i
で接続先情報を渡し、続いてPlaybookを渡します。
$ ansible-playbook -i hosts playbook.yml
エラーなく実行できれば成功です。
PLAY [vagrant_default] ********************************************************* TASK [setup] ******************************************************************* ok: [192.168.33.10] TASK [debug] ******************************************************************* ok: [192.168.33.10] => { "msg": "Hello Ansible" } PLAY RECAP ********************************************************************* 192.168.33.10 : ok=2 changed=0 unreachable=0 failed=0
終わりに
Playbookで行えることは、公式サイトに詳しく載っています。