2. Ansible 与 SaltStack:
3. 参考技术博客 https://blog.csdn.net/zhao12795969/article/details/80888492
4. 关于ansible常用模块的介绍此处略,可以参考上面的链接查看
5. 以下是关于playbook的介绍
hosts:主机
tasks:任务列表
variables: 变量
templates:包含了模板语法的文本文件
handlers:由特定条件触发的任务
hosts:运行指定任务的目标主机
remote_user:在远程主机上执行任务的用户
sudo_user:
tasks:任务列表
模块,模块参数;
6. 批量安装nginx———playbook
1)一台作为控制机 #IP:192.168.141.129
2)另外两台作为被控制机
3)并做好ssh免密码登陆(将控制机的公钥分发给两台被控制机)--步骤:略
vim /etc/ansible/hosts
...
[web]
## alpha.example.org
## beta.example.org
192.168.141.130 #被控制机组的IP地址
192.168.141.131 #被控制机组的IP地址
....
mkdir -pv ./nginx/{files,templates,vars,tasks,handlers,meta,default}
vim tasks/main.yml
- name: cp
copy: src=nginx-1.10.2-1.el7.ngx.x86_64.rpm dest=/app/nginx-1.10.2-1.el7.ngx.x86_64.rpm
#copy模块将nginx安装包推给主机节点
- name: install
yum: name=/app/nginx-1.10.2-1.el7.ngx.x86_64.rpm state=latest
#yum模块在主机节点上安装nginx服务
- name: conf
template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
tags: nginxconf
notify: new conf to reload
#将nginx.conf.j2配置文件推给主机组
- name: start service
service: name=nginx state=started enabled=true
tags: startnginx
#service模块启动主机组上的nginx服务
yum -y install epel-release
yum -y install nginx
cp /etc/nginx/nginx.conf ./nginx.conf.j2
vim nginx.conf.j2 #这里我们只自定义了监听端口一个变量
...
server {
listen {{ nginxport }};
...
vim vars/main.yml
nginxport: 9999
#该变量在服务器端的nginx.conf文件中有将端口定义为{{ nginxport }} ,因此这里需要给变量赋值。
vim handlers/main.yml
- name: new conf to reload
service: name=nginx state=restarted
vim /etc/ansible/nginx.yml
- hosts: web
remote_user: root
roles:
- nginx
ansible-playbook /etc/ansible/nginx.yml
ansible web -m shell-a "curl localhost:9999 -I | grep nginx"
输出如下内容表示成功:
192.168.141.130 | SUCCESS | rc=0 >>
Server: nginx/1.12.2 % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 3700 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
192.168.141.131 | SUCCESS | rc=0 >>
Server: nginx/1.12.2 % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 3700 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0