【Ansible Roles使用教程:安装Nginx与PHP】

Ansible Roles是一种组织和复用Ansible代码的方法,用于将相关的配置和任务组织在一起,使代码更加模块化和易于管理。在本教程中,我将演示如何使用Ansible Roles来安装Nginx和PHP,并在CentOS 7上部署一个简单的Web服务器。

蓝易云服务器 - Ansible roles的使用 :安装nginx与php教程_nginx

  1. 创建Ansible项目目录结构:
    首先,创建一个Ansible项目目录,并在其中创建以下目录结构:
ansible-project/
├── inventory/
│   └── hosts
├── roles/
│   ├── nginx/
│   │   ├── tasks/
│   │   │   └── main.yml
│   │   └── templates/
│   │       └── nginx.conf.j2
│   └── php/
│       └── tasks/
│           └── main.yml
└── site.yml
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  1. 编辑hosts文件:
    在 inventory/hosts文件中定义要部署Nginx和PHP的目标主机:
[web_servers]
server1 ansible_host=服务器IP地址
  • 1.
  • 2.
  1. 编辑Nginx角色的main.yml文件:
    在 roles/nginx/tasks/main.yml文件中定义安装Nginx的任务:
---
- name: Install Nginx
  yum:
    name: nginx
    state: present
- name: Start Nginx
  service:
    name: nginx
    state: started
    enabled: yes
- name: Copy Nginx configuration file
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
- name: Restart Nginx
  service:
    name: nginx
    state: restarted
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  1. 编辑PHP角色的main.yml文件:
    在 roles/php/tasks/main.yml文件中定义安装PHP的任务:
---
- name: Install PHP
  yum:
    name: php
    state: present
- name: Install PHP modules
  yum:
    name: "{{ item }}"
    state: present
  with_items:
    - php-fpm
    - php-mysql
    - php-gd
    - php-xml
- name: Start PHP-FPM
  service:
    name: php-fpm
    state: started
    enabled: yes
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  1. 编辑Nginx配置模板:
    在 roles/nginx/templates/nginx.conf.j2文件中定义Nginx的配置模板,可以根据需要自定义Nginx配置。
  2. 编辑site.yml文件:
    在 site.yml文件中定义整个安装过程,包括目标主机和要安装的角色:
---
- name: Install Nginx and PHP
  hosts: web_servers
  become: yes
  roles:
    - nginx
    - php
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  1. 执行部署:
    最后,执行部署命令,运行整个Ansible Playbook:
ansible-playbook -i inventory/hosts site.yml
  • 1.

Ansible将会连接到目标主机并按照定义的Roles顺序安装Nginx和PHP。完成后,你将在目标主机上拥有一个运行Nginx和PHP的简单Web服务器。

通过使用Ansible Roles,你可以更好地组织和管理你的Ansible Playbook,使部署过程更加模块化和可维护。同时,Ansible的自动化能力能够帮助你快速在多台主机上部署相同的配置,提高效率和一致性。