����
Ansible ������������²��ď�������������


\µ���¼\Ð���������Ð���·������\���\���\���\���\��\������\���\���\¹\������¼\��������������Ώ����������㏢���¡������­¹½�����叢����¹��ԏ����Ï��³������������\��\���\���\���\���\���\���\�돢�������������������������¹���̏�¡��½������돫¢����������¼«�����²½���µ���»�����������ď�����������\������¼\������������¹��¡�\��\���\���\���\���\���\���\�돢����¼�������돢����¹��ԏ����Ï�������¡�¼�������ӏ�����³����«���������·��¡����������Ï��·������������\���\¹����µ������³��������𡯏��������¹��¡�

���½������������¡�Ansible ���������������Ï�����\������¼\���������»�����𡯏��Ð��¡�\³\���\���\����돫�������������\��\���\���\���\���\���\���\�돢�̏����ӏ�������¡��µ��������������Џ�Џ����㏪�­����²��ď�����¼���¹��ԏ��·����������������ޏ�����·���²�������������������������������³��������µ�����������������ď�������¡񏪪������������������������ޡ돪������������\µ���¼\й½�����叢��½Ð�������������������������¹��¡�


ansible


����ޏ������������³������������¹��ԏ�����\������¼\������������·��������¡�Chef ������ Puppet ���̏����������������¹���̏�¡�Ansible ���������½����������������������������������\·\���\��\������������³���������̏�������������������¹��¡�Chef �������돪������»��������������������Ώ����������Ï�����»�ߏ�������ġ������������������Ώ����ď������������¹���̏�¡�³Ð��𡯏��������³���������̏����ď��«�����������ď��������·��������돪����������·���������·�����������������ď�¡�¡�Ansible ���������½�����Ï����������Ï�������������¡�»���������»�������������������������������������µ������̏����������� �������̏��������������������\�������������¹��¡򏪤���µ�̏������������������­�����������������Ð Chef ������ Puppet �����������̏����������������«���������·���������������»�����я��̏�¡�¾�����ď�ԏ�����\µ���¼\Ð�����ҡ�����������¹�����������̏����㏢���������������ď����� Ansible ������µ���·��⏢���������������������������������������������������·�����������Ï��«��¡�

�������������·��������¡�Vagrant ������µ�������돢�·������²¾������\���\·\��� (CentOS) ���������Ð���·��������¡�MySQL ������\���\���\¹\������¼\������·������µ�������돢�¹�����������������������á��������ޏ�����\��\���\���\���\���\���\���\�돢���ҏ����������������������Ώ��������·�����������Ï�¡�


²¾������\���\·\��я����� ssh \���\��\���\���½Ð�����������������������Ï�����


�����²��я����� Vagrant������»��������������� ����²¾������\���\·\��я����ҡ��������ޏ�������돫�����·�����������Ï�¡� ������ Vagrantfile �����������������Ï������̏������������ď�����»�ߏ��������������¹���̏�¡��³�����������ҡ돪�²¼���������������Ï�����½������µ���·���������������������µ��������¡�

- # config.vm.box = "centos65"

+ config.vm.define :node1 do |node|
+   node.vm.box = "centos65"
+   node.vm.network :private_network, ip: "192.168.33.11"
+ end
+
+ config.vm.define :node2 do |node|
+   node.vm.box = "centos65"
+   node.vm.network :private_network, ip: "192.168.33.12"
+ end

���³������¾��؏����ӏ����� vagrant up ���¹���������³��������������¡�node1 ������ node2 ������������������2������������²¾������\���\·\��я���µ�������돢�·���������¹��¡����������돢�������³������������������²¾������\���\·\��я����� ssh ������\���\��\���\��я��������­�����������������Ï����������Ώ��������·���������¹��¡�

# ~/.ssh/config
# vagrant ssh-config node[12] ������·���²��������ҏ����̏�����

Host node*
    HostName 127.0.0.1
    User vagrant
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking no
    PasswordAuthentication no
    IdentityFile /Users/sasata299/.vagrant.d/insecure_private_key
    IdentitiesOnly yes
    LogLevel FATAL
Host node1
    Port 2222
Host node2
    Port 2200

���³��������������¡�ssh node[12] ������\���\��\���\���½Ð�����������������������Ï��������������������������·�����ď�¡��³���³���������������������µ��������������������¡�


Ansible ������»��������������������Ώ�����


��������������¡�Ansible ������\���\���\¹\������¼\������·�����������Ώ��������·�����������Ï�¡�Mac ������¾���¹�����¡�\���\���\¹\������¼\��������� homebrew �������돫����������������¹��¡�

$ brew install ansible

���µ��������¡��������������������µ�����������쏢�­��¡����������돢����\���\���\���\���\���\��� (inventory) \���\���\���\��������������������Ï���������������½�����������·���������¹��¡�Ansible ������»���������»���������������������������돪�����������������̏���ߏ������������������³������\���\���\���\������������Ώ��쏢�³������������\��\���\���\���\���\���\���\�돪����������\µ���¼\Ð�����ҏ��Ð�����ď��·�����������쏢����\���\���\���\����������������������¹���̏�¡�Ansible ���������������³������\���\���\���\���������½��Џ��«������������\µ���¼\Ð���������Ð���·���������·���«½�������������¼���¹��ԏ��·�������������������������������������������¹��¡�

����²��я�¡�hosts �����������������Ï��¾����돢����\���\���\���\���\���\���\���\���\���\��������ҏ�돫��������������·�����ď�¡�node1, node2 ���¾�����򡭏��������\��\������¼\�ߏ����� servers��¡�node1 ���������ޏ����ҡ����������\��\������¼\�ߏ����� test-servers �����������ď��¾���·���������������������¹��������̏����ӏ��������¹������¡�

# hosts
[servers]
node1
node2

[test-servers]
node1

��������������¡񏪡��������� Ansible ������»��������������������Ώ��������·�����������Ï�¡����������돢������¡�node1 ���������Ð���·������ ping ������¼���¹��ԏ��·�����������Ώ��������¹��¡�

$ ansible -i hosts node1 -m ping                                                                                  [~/work/vagrant/audit]

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

ping ������·���²������̏����ӏ��������������­���������·�����ď���node1 ���������ޏ����������������������� node2 �����������Џ��ޏ����������� ping ������¼���¹��ԏ��¹��������������������¡�\���\���\���\���\���\���\���\���\���\���������»������������·������ servers ���«��¡��������·������������ all ������������������\­���¼\������¼\���������»������������·���������¹��¡�

$ ansible -i hosts servers -m ping

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

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

�����½���������\³\���\���\���������¼���¹��ԏ��¹���������������ޏ����������������Ð���������������������������ޏ��������¹��������¡�


playbook ������»��������������������»��������½�������������¼���¹��ԏ��¹������


�����ď�������¡�¼�����돪��������������³�����я����������½���������\³\���\���\���������³���\µ���¼\Ð������¼���¹��ԏ��·�����ď�����¾���¹������Ð���«���������������������µ���������������·�����������Ï�¡����������������������»�����������³������������¼���¹��ԏ��¹�����������ď�������������������¡�ansible-playbook ������������������\³\���\���\������̏����������̏��������¹��¡�

�돪�²¼���������������Ï����� MySQL ������\���\���\¹\������¼\������·������µ�������돢�¹�����������Ώ�����\���\���\���\��������ҏ����С돪؏��·�����������Ώ��������¹�������³���������������Ï�����\���\���\���\��������� playbook �����������������я��������¹������¡�hosts �������������³���������������о�������\µ���¼\Ð������»������������·��¡�tasks �������������³������������¼���¹��ԏ��·�����ď�����\���\¹\���������µ­½��ҏ��·���������¹��¡�돪�²¼����������������������¡�node1, node2 ���¾�������������Ð���·������ MySQL ������\���\���\¹\������¼\������·��������¡��½���������� MySQL ������µ�������돢�µ���»������������������������»������������������������������������¹��¡�

# mysql-playbook.yml
---
- hosts: servers # ���о�������\µ���¼\Ð������»���������
  sudo: yes
  tasks:
    - name: install mysql
      yum: name=mysql-server state=installed # \���\���\¹\������¼\���
    - name: start mysql
      service: name=mysqld state=running enabled=yes # µ�������돢����»���������

���µ������¡�������������¼���¹��ԏ��¹���������������ޏ��쏢�¹��������������¡�¡�

$ ansible-playbook -i hosts mysql-playbook.yml

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

GATHERING FACTS ***************************************************************
ok: [node1]
ok: [node2]

TASK: [install mysql] *********************************************************
changed: [node1]
changed: [node2]

TASK: [start mysql] ***********************************************************
changed: [node2]
changed: [node1]

PLAY RECAP ********************************************************************
node1                      : ok=1    changed=2    unreachable=0    failed=0
node2                      : ok=1    changed=2    unreachable=0    failed=0

���������«���̏��������·�����������Ï��«��¡�changed �����������������������������쏢������¡�¼���¹��ԏ��µ�����������ď��³���������̏��������«���������������¹��¡����������������Ώ�������¡�돩�������¼���¹��ԏ��·����������������叢����\���\���\¹\������¼\��������������Ώ�����������¹��ԏ����������������������������������ď�������¡�²��ď�����µ������³���������������»�����я�����Џ�Џ����㏪�­������³�����������¡�

�����������������Ï��³��������������¡�playbook ������½�������������㏢����¾������·�������������«���������·���������������������������¹���̏�¡�돫������㏢돫��������������·��������𡯏��Ð���������������������������ޡ돪������������\µ���¼\й½������½Ð�����������������������Ï������������������������������¹���Ð���������·������������»�ߏ��������������¹��¡򏪴��������̏��������¹���¾��¡�

[»²¹���URL]
¹½��������������\������¼\��� Ansible ������������������������ - apatheia.info
Ansible \���\������¼\���\���\��\��� | Ansible Tutorial in Japanese
³\\\\¼ҏ\\\\¼\²