あるびすを求めて

日常のつぶやきや、なんとなく書いてみたいことを自分向けに書いています。

今更ですが悪いですかね。Ansibleさん

さぁ以前ネットワークスイッチのコンフィグをAnsibleで行ったことがありましたが、 だいぶ月日が流れ忘れてしまいました。
今回は、Ansible + Vagrantを利用して簡単な復習を行っていきたいと思います。

前置きはここまでとして。。

実行環境

  • 今回はMac(OS X El Capitan10.11.3)

環境準備

  • Ansibleのインストール
  • Vagrantのインストール
  • virtualboxのインストール

Ansibleとは

  • ChefやPuppetと同じ構成管理ツール
  • Ansibleは、他のツールより始めやすい。Rubyとかプログラム知らなくても出来る。
  • エージェントレスなので、クライアント側だけでOK

実際何がそんなに嬉しいのか

確かに僕も思ってはいたのだけど何がそんなに嬉しいのか!!
まぁ要するに、管理する側の人間にまだ僕がなっていないからだと思います。

早速はじめます。

インストールについては、割愛致します。 まずお試しでやることは以下になります。

  • 対象のサーバに対してpingを実行します。
  • 対象のサーバにtelnetをインストールします。
[server]
192.168.33.12
  • まずansibleを使用してpingを実行してみましょう。
ansible 192.168.33.12 -m ping -i hosts

実行結果

192.168.33.12 | success >> {
    "changed": false,
    "ping": "pong"
}

続いて、yumを使ってtelnetをインストールしてみましょう。

ansible -i hosts 192.168.33.12 -m yum -s -a name=telnet

解説:-m で指定したモジュールを実行
  :-s でsudo権限で実行
  :-a で実行文を定義

今までは、一つ一つのコマンドを実行してきましたが、 実際にこのような手順で設定していくとたくさん設定項目がある場合面倒です。 その為、ansibleには、playbookというテンプレートを作成し、 設定を一度に行える機能があります。

では、実際にplaybookを書いてみましょう。

  • test01-playbook.ymlを作成してみます。
---
- hosts: 192.168.33.12
  become: yes
  tasks:
    - name: be sure httpd is installed
      yum: name=httpd state=installed

    - name: be sure httpd is running and enabled
      service: name=httpd state=started enabled=yes

上記の意味合いは以下になります。

  • hosts:対象のホストを設定します。 この場合は、対象のホストが192.168.33.12になります。

  • become:接続先のホストでsudo権限で実行するかどうかを設定します。

  • tasks:実行する処理を記載します。

  • name:実行する要約を記載します。

  • yum:モジュール名を指定します。この場合はyumですがその他にcommandやserviceなどがあります。

詳細は以下のモジュールリストを参照ください。

All Modules — Ansible Documentation

やってみよう!WPのインストール!

  • 以下のgithubからplaybookをインストール!

github.com

まず、git cloneを実行してダウンロード

git clone https://github.com/realglobe-Inc/ansible-demo-playbooks.git

今回使用するディレクトリへ移動

cd ansible-demo-playbooks/wordpress-nginx/

リポジドリ内にある、hosts.exampleファイルをコピーする。

cp hosts.example hosts

hostsを書き変えます。

[wordpress-server]
192.168.33.12 ansible_ssh_user=vagrant

さて!WordPreseをplaybookを使ってインストールしてみましょう!

ansible-playbook site.yml -i hosts

いきなり実行だと不安な方も試して実行が行えます。

ansible-playbook site.yml -i hosts --check

では、サイトが作成できたかどうかアクセスしてみましょう。
http://192.168.33.12

f:id:kkb1016:20160131151210p:plain

見事にWPをインストールすることが出来ました。

すみません、今回以下のサイトを参考にさせていただきました。

Ansible チュートリアル | Ansible Tutorial in Japanese

ansible-demo-playbooks/README_AWS.md at master · realglobe-Inc/ansible-demo-playbooks · GitHub

次回は、playbookの中身を紹介していきます。