ansibleでクライアント機にミドルウェアをインストール


# はじめに
シンプルな環境でansibleを動かし、
ansibleの基本的な動作を理解することを目的としている。

本記事の構成

|IP|host名|種別|
|:---------------|:--------|:-------|
| 192.168.33.10  | cry100 | ansible server |
| 192.168.33.11  | cry101 | #client A|
| 192.168.33.12  | cry102 | #client B|

作業しているマシンがwindowsの場合は以下の手順を元に環境を構築すると良い。
http://qiita.com/S-T/items/2d3472911995b2c25826


# ansibleをインストール
普通にyumでインストールできないので、リポジトリを追加する必要がある。
ansibleサーバでのみ実施。クライアントでは不要。

```command:command
[root@cry100 src] yum localinstall http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@cry100 src] yum install ansible
```

# hostsファイルに追加
IPで直打ちしてもいいのだが、理解しやすいようにhostsに追加する。

```command:command
[root@cry100 src] vi /etc/hosts
# add
192.168.33.10   cry100 #server
192.168.33.11   cry101 #client
192.168.33.12   cry102 #client
```


# Ansible host設定ファイル設定

ansibleのhostファイルを作成する

``` command:command
[root@cry100 src] vi targethost
# 以下新規作成
[servers]
cry101
cry102

[test-servers]
cry101
```

# 接続確認
パスワードを求められるので、接続先のパスワードを入力する。

``` command:command
[root@cry100 src]# ansible -i targethost cry101 -m ping -k
SSH password:
cry101 | success >> {
    "changed": false,
    "ping": "pong"
}

[root@cry100 src]#
[root@cry100 src]# ansible -i targethost cry102 -m ping -k
SSH password:
cry102 | success >> {
    "changed": false,
    "ping": "pong"
}

[root@cry100 src]#
```

# ansibleを用いてクライアントにミドルウェアをインストール
Apacheをインストールし起動する

``` command:command
[root@cry100 src]# vi mysql-playbook.yml
# 以下新規作成
---
- hosts: servers
  sudo: yes
  tasks:
    - name: install httpd
      yum: name=httpd state=installed
    - name: start httpd
      service: name=httpd state=running enabled=yes
```

インストール画面

```command:command 
[root@cry100 src]# ansible-playbook -i targethost mysql-playbook.yml -k
SSH password:

PLAY [servers] ****************************************************************

GATHERING FACTS ***************************************************************
ok: [cry101]
ok: [cry102]

TASK: [install httpd] *********************************************************
changed: [cry101]
changed: [cry102]

TASK: [start httpd] ***********************************************************
changed: [cry102]
changed: [cry101]

PLAY RECAP ********************************************************************
cry101                     : ok=3    changed=2    unreachable=0    failed=0
cry102                     : ok=3    changed=2    unreachable=0    failed=0

[root@cry100 src]#
```


# 設定確認
クライアントcry101,cry102でapacheがインストールされ、起動されたことを確認

``` command:command
[root@cry101 ~]# ps -ef | grep http
root      4241     1  0 10:14 ?        00:00:00 /usr/sbin/httpd
apache    4243  4241  0 10:14 ?        00:00:00 /usr/sbin/httpd
apache    4244  4241  0 10:14 ?        00:00:00 /usr/sbin/httpd
apache    4245  4241  0 10:14 ?        00:00:00 /usr/sbin/httpd
apache    4246  4241  0 10:14 ?        00:00:00 /usr/sbin/httpd
apache    4247  4241  0 10:14 ?        00:00:00 /usr/sbin/httpd
apache    4248  4241  0 10:14 ?        00:00:00 /usr/sbin/httpd
apache    4249  4241  0 10:14 ?        00:00:00 /usr/sbin/httpd
apache    4250  4241  0 10:14 ?        00:00:00 /usr/sbin/httpd
root      4253  2512  0 10:14 pts/0    00:00:00 grep http
[root@cry101 ~]#
```