试试用ansible安装nginx
概括
我尝试使用 Ansible 安装了 Nginx。
环境
ansible 2.4.0.0
CentOS 6.9 发行版
Ansible的配置
我修改了ansible.cfg文件的某些设置。
inventory = /etc/ansible/hosts
remote_user = user_name
/etc/ansible/hosts文件定义了install先服务器的配置。
[webserver]
web1
创建一个推荐目录
ansible-galaxy init nginx
目录结构
.
├── nginx.yml
└── roles
    ├── common
    └── nginx
        ├── README.md
        ├── defaults
        │   └── main.yml
        ├── files
        ├── handlers
        │   └── main.yml
        ├── meta
        │   └── main.yml
        ├── tasks
        │   └── main.yml
        ├── templates
        ├── tests
        │   ├── inventory
        │   └── test.yml
        └── vars
            └── main.yml
主要的nginx.yml文件
- name: nginx
  become: yes
  hosts: web1
  roles:
    - { role: nginx }
操作 Nginx 的任务
有没有更好的方法来改变以”–extra-vars ‘op=xxxx'”作为参数执行的任务?
---
# tasks file for nginx
- name: Install nginx
  yum: name=nginx
  when: op == "install"
- name: Start nginx
  service: name=nginx enabled=yes state=started
  when: op == "start"
- name: Stop nginx
  service: name=nginx state=stopped
  when: op == "stop"
- name: Restart nginx
  service: name=nginx state=restarted
  when: op == "restart"
- name: Reload nginx
  service: name=nginx state=reloaded
  when: op == "reload"
执行ansible-playbook
ansible-playbook nginx.yml --extra-vars "op=start"
服务器端的sudo已设置为无需密码。
 
    