自动化运维 ansble
admin
2023-03-04 01:21:57
0

1.安装配置ansble

yum install epel-release -y #安装epel仓库
yum install ansible -y

2.配置主机清单

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@

3.测试

ansible all -m ping
自动化运维 ansble
绿色说明成功了
自动化运维 ansble
这种报错是应为,第一次ssh连接,对方主机的指纹不在这台电脑上,用ssh先连接下即可
anisble命令语法: ansible [-i 主机文件] [-f 批次] [组名] [-m 模块名称] [-a 模块参数]
-i 可选择主机清单,不指定默认到/etc/ansible/hosts找 后面跟生效范围,可以选择单个ip(单台主机)或者一组主机或者all(该清单里的所有主机)。 -m 模块(可以理解为命令) -a模块参数

4.ansible-playbook 简单小脚本

vim web.yml #写自动化脚本

  • hosts: web-server
    #应用生效的组
    vars:
    IP: "{{ ansible_ens33['ipv4']['address']}}"
    #把需要下发机器的ip赋值给IP这个变量,应用不同机器时,这个值会根据机器的实际ip改变
    port: 233
    #赋值233 给port这个变量,变量也可以在/etc/ansible/hosts文件里赋值
    remote_user: root
    tasks:
    • name: 安装nginx
      yum: name=nginx state=latest
    • name: 复制nginx配置文件,如果执行了择触发,下面的动作 重启nginx
      copy: src=/etc/nginx/nginx.conf dest=/etc/nginx/nginx.conf
    • name: 修改nginx的的监听IP
      lineinfile: dest=/etc/nginx/nginx.conf regexp='listen 80 default_server;' line='listen {{port}} default_server;'
      #regexp里面是正则匹配,记住如果匹配的字符有高亮要加转义,line里面是要替换的字符,{{port}}是调用的变量,
      notify:
      #触发器,只有上面那个命令执行了才会调用以下脚本
    • cq nginx
      #表示如果上面那个语句执行了,就调用cq nginx指令,该指令在下面,handlers里定义的
    • name: 复制index主页文件
      copy: src=/usr/share/nginx/html/index.html dest=/usr/share/nginx/html/index.html
    • name: 输入IP地址到index.html中
      lineinfile: dest=/usr/share/nginx/html/index.html regexp="192.168.0.0" line="{{IP}}:{{port}}"
    • name: 启动nginx服务
      service: name=nginx state=started
      handlers:
    • name: cq nginx
      service: name=nginx state=restarted
      #PS yml脚本 格式及其严格,请严格按照上述格式书写

ansible-playbook web.yml #运行脚本
自动化运维 ansble
8个命令全部OK,表示全部执行成功
自动化运维 ansble
访问其中一台的233端口,发现已经有内容了,内容还是根据参数里变量自己生成的。

5.反代脚本,ansible模板的使用

cp /etc/nginx/nginx.conf nginx.conf.j2
#复制一个nginx配置文件,修改成模板
vim nginx.conf.j2
自动化运维 ansble
增加后端web 组
自动化运维 ansble
把端口改成{{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 #运行脚本
自动化运维 ansble
这是我第二次运行,4个OK,命令全部执行成功,ansible具有幂等性,已经在目标状态了,ansible不会再次运行的
自动化运维 ansble
自动化运维 ansble
F5 刷新,可以均衡负载,反代成功

相关内容

热门资讯

印巴冲突一周年,巴基斯坦空军回... 【文/观察者网 阮佳琪】据香港《南华早报》8日报道,巴基斯坦空军(PAF)周四(7日)公布了机队升级...
中疾控:我国无感染病例报告,无... 【大河财立方消息】2026年5月2日,世界卫生组织通报,一艘4月1日从阿根廷出发的极地探险游轮上,暴...
巴西对华不锈钢热轧板卷作出反倾... 【大河财立方消息】 商务部消息,4月30日,巴西外贸秘书处(SECEX)在官方日报发布2026年第3...
姐姐选县长、弟弟选议长恐遭“双... 海峡导报综合报道 国民党下届彰化县长人选卡关,民代谢衣凤强烈表达参选决心,但她的弟弟谢典霖一改常态勤...
文化新观察|从文旅产业GDP占... 日暖风轻起,正是出游时。文化和旅游部最新数据显示,刚刚过去的“五一”假期,全国国内出游3.25亿人次...
年龄相差40多岁,韩执政党党首... 当地时间5月3日,韩国执政党共同民主党党首郑清来携“备战”国会议员补选的前青瓦台人工智能未来规划首席...
人民之心·总书记谈政绩观④|一... 统筹:李琳 杨格策划:叶莉子设计:杨晨悦校对:陈学德素材来源:《人民日报》、新华网
英方裁定2名中国公民有罪,外交... 澎湃新闻记者 杨文钦 朱郑勇5月8日,外交部发言人林剑主持例行记者会。英国广播公司(BBC)记者提问...
特朗普威胁欧盟:7月4日之前履... 【文/观察者网 陈思佳】去年7月,美国和欧盟在英国达成一项贸易协议,但欧盟目前仍未批准协议,引起美国...
四川“人工智能+”一号创新工程... “三步走” ●到2027年,实现人工智能与重点领域广泛深度融合 ●到2030年,加快建成具有全国影响...