ゴール
仮想マシンにansibleを使ってphpをインストールし、
php.iniとphp-fpmのwww.confを/etc/に生成します。
前回、nginxを入れているのでphp-fpmもインストールします。
環境
- ホストマシンはMac OS X 10.7.5
- 仮想マシンはcentos6.5
- ansible 1.4.1
- Vagrant 1.3.5
フロー
前回の続きとして進めます。
- playbookにphpインストール用タスクを追加
- phpインストール用roles追加
- ansible-playbook実行
playbookにphpインストール用タスクを追加
local.ymlに以下タスクを追加します。
local.yml
- name: PHP Playbook
hosts: local
sudo: yes
roles:
- php
tags:
- php
phpインストール用roles追加
まずはディレクトリを作って下準備です。
$ mkdir provisioning/roles/php
$ mkdir provisioning/roles/php/tasks
$ touch provisioning/roles/php/tasks/main.yml
$ mkdir provisioning/roles/php/templates
main.ymlに処理を追加していきます。
epelとremiのレポジトリも追加しておきます。
main.yml
---
# file: provisioning/roles/php/tasks/main.yml
- name: set epel repository
shell: rpm -Uvh --force http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
- name: set remi repository
command: sudo rpm -Uvh --force http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
- name: install php
yum: name={{item}} enablerepo=remi,epel state=present
with_items:
- php
- php-devel
- php-fpm
- name: put php.ini
template: src=roles/php/templates/php.ini.j2 dest=/etc/php.ini
- name: put php-fpm.d/www.conf
template: src=roles/php/templates/www.conf.j2 dest=/etc/php-fpm.d/www.conf
- name: set autoload php-fpm
command: chkconfig php-fpm on
- name: restart php-fpm
command: service php-fpm restart
実行前にphp.ini.jsとphp-fpmのwww.conf.jsを
provisioning/roles/php/templates下に置いて下さい。最悪、中身はなんでも構いません。
ansible-playbook実行
タグを指定してphpのタスクだけ走らせます。
vagrant upをして仮想マシンを起動させておいてくださいね。
$ ansible-playbook provisioning/local.yml --tags "php" -i provisioning/inventory/local
PLAY [PHP Playbook] ***********************************************************
GATHERING FACTS ***************************************************************
ok: [localhost]
TASK: [php | set epel repository] *********************************************
changed: [localhost]
TASK: [php | set remi repository] *********************************************
changed: [localhost]
TASK: [php | install php] *****************************************************
ok: [localhost] => (item=php,php-devel,php-fpm)
TASK: [php | put php.ini] *****************************************************
ok: [localhost]
TASK: [php | put php-fpm.d/www.conf] ******************************************
ok: [localhost]
TASK: [php | set autoload php-fpm] ********************************************
changed: [localhost]
TASK: [php | restart php-fpm] *************************************************
changed: [localhost]
PLAY RECAP ********************************************************************
localhost : ok=8 changed=4 unreachable=0 failed=0
以上になります!!
タグの指定便利だなぁ。
あと個人的にはwith_itemsが気に入った。