批量部署nginx负载均衡服务器
在控制端,书写playbook代码,这里遇到的坑:我的playbook执行到安装的时候报错了,然后发现是yum仓库没有配好(epel),重新配置了yum仓库后,后面的任务都执行成功,playbook某个位置执行失败,默认是不会往下执行的,除非加个ignore_errors: yes
就会忽略错误,往下执行,这里使用了jinja模板语言,在我们的配置文件中,可以使用我们定义的变量,因为template模块会渲染vars定义的变量,比如我在我的配置文件中可以使用{{ server_name }}
调用vars定义的变量
nginx.yaml
- hosts: web
vars:
- port: 80
- server_name: zijian.com
tasks:
- name: Install nginx
yum: name=nginx state=present
- name: Delete nginx.conf
file:
path: /etc/nginx/nginx.conf
state: absent
- name: Configure new nginx.conf
template: src=/etc/nginx/nginx.conf dest=/etc/nginx/nginx.conf
notify: Restart nginx
- name: Start nginx
service: name=nginx state=started enabled=yes
handlers:
- name: Restart nginx
service: name=nginx state=restarted
把下面这个配置文件分发到被控端,然后触发handlers重启nginx,下面截图关键配置
我们可以到被控端查看一下,可以看到已经把配置文件发到了被控端并且渲染出来了
使用netstat -tulnp查看端口,nginx已经在运行
[root@web02 yum.repos.d]# netstat -tulnp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 51283/nginx: master