使用Ansible安装Nginx、PHP-FPM、PHP和MySQL

尝试用Ansible撰写这里的操作手册

设置.yml

- hosts: web-server
  remote_user: vagrant
  sudo: yes
  gather_facts: no

  tasks:
    - name: install nginx rpm
      yum: name=http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm state=present

    - name: install nginx
      yum: name=nginx state=present

    - name: restart nginx
      service: name=nginx state=restarted

    - name: chkconfig nginx
      command: chkconfig nginx on

    - name: install php-fpm
      yum: name=php-fpm state=latest

    - name: apply php-fpm.conf
      template: src=./php-fpm.conf.tpl dest=/etc/php-fpm.d/www.conf backup=yes

    - name: restart php-fpm
      service: name=php-fpm state=restarted

    - name: chkconfig php-fpm
      command: chkconfig php-fpm on

    - name: install php rpm
      yum: name=http://rpms.famillecollet.com/enterprise/remi-release-6.rpm state=present

    - name: install php
      yum: pkg={{item}} enablerepo=remi,remi-php56 state=present
      with_items:
        - php
        - php-devel
        - php-common
        - php-gd
        - php-mbstring
        - php-mysql
        - php-pdo
        - php-pear
        - php-xml

    - name: install mysql rpm
      yum: pkg={{item}} state=present
      with_items:
        - http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.23-1.el6.x86_64.rpm
        - http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.23-1.el6.x86_64.rpm
        - http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.23-1.el6.x86_64.rpm
        - http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.23-1.el6.x86_64.rpm
        - http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.23-1.el6.x86_64.rpm

    - name: install mysql
      yum: pkg={{item}} state=present
      with_items:
        - MySQL-client.x86_64
        - MySQL-devel.x86_64
        - MySQL-server.x86_64
        - MySQL-shared-compat.x86_64
        - MySQL-shared.x86_64

    - name: chkconfig mysql
      command: chkconfig mysql on

    - name: restart mysql
      service: name=mysql state=restarted

以下是用母语中文的一种表述方式:

向下 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

$ ansible-playbook -i servers setup.yml -k -K
 [WARNING]: The version of gmp you have installed has a known issue regarding
timing vulnerabilities when used with pycrypto. If possible, you should update
it (i.e. yum update gmp).

SSH password:
sudo password [defaults to SSH password]:

PLAY [web-server] *************************************************************

GATHERING FACTS ***************************************************************
ok: [192.168.33.20]

TASK: [install nginx rpm] *****************************************************
ok: [192.168.33.20]

TASK: [install nginx] *********************************************************
ok: [192.168.33.20]

TASK: [restart nginx] *********************************************************
changed: [192.168.33.20]

TASK: [chkconfig nginx] *******************************************************
changed: [192.168.33.20]

TASK: [install php-fpm] *******************************************************
ok: [192.168.33.20]

TASK: [apply php-fpm.conf] ****************************************************
ok: [192.168.33.20]

TASK: [restart php-fpm] *******************************************************
changed: [192.168.33.20]

TASK: [chkconfig php-fpm] *****************************************************
changed: [192.168.33.20]

TASK: [install php rpm] *******************************************************
ok: [192.168.33.20]

TASK: [install php] ***********************************************************
ok: [192.168.33.20] => (item=php,php-devel,php-common,php-gd,php-mbstring,php-mysql,php-pdo,php-pear,php-xml)

TASK: [install mysql rpm] *****************************************************
ok: [192.168.33.20] => (item=http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.23-1.el6.x86_64.rpm,http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.23-1.el6.x86_64.rpm,http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.23-1.el6.x86_64.rpm,http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.23-1.el6.x86_64.rpm,http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.23-1.el6.x86_64.rpm)

TASK: [install mysql] *********************************************************
ok: [192.168.33.20] => (item=MySQL-client.x86_64,MySQL-devel.x86_64,MySQL-server.x86_64,MySQL-shared-compat.x86_64,MySQL-shared.x86_64)

TASK: [chkconfig mysql] *******************************************************
changed: [192.168.33.20]

TASK: [restart mysql] *********************************************************
changed: [192.168.33.20]

PLAY RECAP ********************************************************************
192.168.33.20              : ok=15   changed=6    unreachable=0    failed=0