こんにちは! JQです。
前回は『 OSS編~Nagios NRPEを試してみる02~ 』と題して、Nagios NRPEを試してみました。
今回は『OSS編~AnsibleでRoleを試してみる01~』と題して、AnsibleでRoleを試してみたいと思います。
Rolesとは
RolesとはVersion 1.2から追加されたPlaybookを分割して再利用や共有をしやすくする機能になります。
1.Ansibleのインストール
先ずはAnsibleを準備します。
今回はAmazon Linux にEPELリポジトリからインストールします。
1$ sudo yum -y install ansible --enablerepo=epelAnsibleのディレクトリに移動します。
1$ cd /etc/ansible/設定ファイルにてRolesパスを有効化します。
1$ sudo vim ansible.cfg2roles_path = /etc/ansible/roles2.対象の設定
次にAnsibleを実行するhostの設定を行います。
※今回はLocalhostを操作します。
1$ sudo vim hosts2[testservers]3127.0.0.13.Rolesを作成
Rolesを作成していきます。
Rolesでは次のようなディレクトリ構成でtasks,handlers,vars,metaにmain.ymlを置くことで自動的に読み込みをしてくれます。
1roles/2 xxxxx/3 files/4 templates/5 tasks/6 handlers/7 vars/8 meta/各フォルダは次の意味になります。
files/
Rolesでcopyモジュールを利用する際のファイル保管場所。
templates/
Rolesでtemplateモジュールを利用する際のファイル保管場所。
tasks/
Rolesのタスク定義に関するメインファイル。
handlers/
Rolesのハンドラ定義に関するメインファイル。
vars/
Rolesの変数定義に関するメインファイル。
meta/
Rolesの依存関係に関するメインファイル。
設定ファイルに記述したRolesパスのディレクトリを作成します。
1$ sudo mkdir roles続いてApacheインストールする単純なタスクのRolesを作成してみます。
1$ sudo mkdir roles/apache/{files,templates,tasks,handlers,vars,meta}2$ ls roles/apache/3files handlers meta tasks templates varsメインのタスクを定義します。
1$ sudo vim roles/apache/tasks/main.yml2- name: apache install3 yum: pkg={{ item }} state=present4 with_items:5 - httpd67- name: on httpd8 service: name=httpd enabled=yes4.PlayBookの作成
PlayBookを作成して実行してみます。
管理PlayBookを作成します。
1$ sudo vim site.yml2---3- include: testservers.ymltestserversのPlayBookを作成します。
1$ sudo vim testservers.yml2---3- hosts: testservers4 sudo: yes5 remote_user: ec2-user6 roles:7 - apache5.実行
それでは実行してみましょう!
1$ sudo ansible-playbook site.yml2 [WARNING]: The version of gmp you have installed has a known issue regarding3timing vulnerabilities when used with pycrypto. If possible, you should update4it (ie. yum update gmp).56PLAY [testservers] ************************************************************78GATHERING FACTS ***************************************************************9The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.10ECDSA key fingerprint is 5d:cf:5d:00:f6:27:2f:64:d0:df:9f:a4:19:59:de:50.11Are you sure you want to continue connecting (yes/no)? yes12ok: [127.0.0.1]1314TASK: [apache | apache install] ***********************************************15changed: [127.0.0.1] => (item=httpd)1617TASK: [apache | on httpd] *****************************************************18changed: [127.0.0.1]1920PLAY RECAP ********************************************************************21127.0.0.1 : ok=3 changed=2 unreachable=0 failed=0Roleが正しく動いてApacheがインストールされているか確認してみます。
1$ rpm -q httpd2httpd-2.2.27-1.3.amzn1.x86_64いかがでしたでしょうか?
次回は『OSS編~AnsibleでRoleを試してみる02~』と題して、AnsibleのRoleでFileとテンプレートを試してみたいと思います。
お楽しみに!!!