yum install epel-release -y #安装epel仓库
yum install ansible -yhtml
vim /etc/ansible/hosts
[web-proxy]
#分组
192.168.1.112 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=yxy7714707@
#IP ssh的端口 ssh帐户和密码
[web-server]
192.168.1.12 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=yxy7714707@
192.168.1.13 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=yxy7714707@nginx
ansible all -m ping
绿色说明成功了
这种报错是应为,第一次ssh链接,对方主机的指纹不在这台电脑上,用ssh先链接下便可
anisble命令语法: ansible [-i 主机文件] [-f 批次] [组名] [-m 模块名称] [-a 模块参数]
-i 可选择主机清单,不指定默认到/etc/ansible/hosts找 后面跟生效范围,能够选择单个ip(单台主机)或者一组主机或者all(该清单里的全部主机)。 -m 模块(能够理解为命令) -a模块参数web
vim web.yml #写自动化脚本vim
ansible-playbook web.yml #运行脚本
8个命令所有OK,表示所有执行成功
访问其中一台的233端口,发现已经有内容了,内容仍是根据参数里变量本身生成的。后端
cp /etc/nginx/nginx.conf nginx.conf.j2
#复制一个nginx配置文件,修改为模板
vim nginx.conf.j2
增长后端web 组
把端口改为{{port}} ,等会传递的时候直接用变量替换
vim proxy.yml #编写自动化安装反代脚本运维
- hosts: web-proxy #生效范围,web-proxy组 vars: port: 666 #赋值233 给port这个变量,变量也能够在/etc/ansible/hosts文件里赋值 remote_user: root tasks: - name: 安装nginx yum: name=nginx state=latest - name: 传递模板文件 template: src=/root/ansible/nginx.conf.j2 dest=/etc/nginx/nginx.conf #把模板文件传递过去,里面的端口我已经换成了{{prot}},传递的过程会直接替换成上面的变量参数666 - name: 启动nginx服务 service: name=nginx state=started
ansible-playbook proxy.yml #运行脚本
这是我第二次运行,4个OK,命令所有执行成功,ansible具备幂等性,已经在目标状态了,ansible不会再次运行的
F5 刷新,能够均衡负载,反代成功ssh