LoginSignup
12

More than 5 years have passed since last update.

Macにansibleを使ってphpを入れる

Posted at

ゴール

仮想マシンに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が気に入った。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12