千家信息网

自动化运维 ansble

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,1.安装配置ansbleyum install epel-release -y #安装epel仓库yum install ansible -y2.配置主机清单vim /etc/ansible/host
千家信息网最后更新 2026年10月31日自动化运维 ansble

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

绿色说明成功了

这种报错是应为,第一次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 #运行脚本

8个命令全部OK,表示全部执行成功

访问其中一台的233端口,发现已经有内容了,内容还是根据参数里变量自己生成的。

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

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 刷新,可以均衡负载,反代成功

变量 文件 脚本 主机 命令 成功 参数 模块 模板 端口 运行 配置 机器 清单 自动化 内容 字符 指令 格式 范围 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网 上海挚品互联网科技有限公司 广州紫鲸互联网科技有限公司 没上市的科技互联网公司 平安科技 互联网 喔噻互联网科技 互联网科技小贷 丰台科技园 互联网公司 科技伦理 互联网公司 联恩商钥互联网科技有限公司 温州喔噻互联网科技有限公司 伊宁互联网科技做什么的 上海钢联属于互联网科技股吗 皮皮虾互联网科技有限公司 产业互联网科技服务公司 福建互联网展示科技馆设计 世界互联网科技成果奖 保山互联网科技靠谱吗 悟空问答互联网科技 北京军民互联网科技公司 河南云网互联网络科技有限公司 新华互联网科技学校 左右互联网络科技 荆州市昕露互联网络科技有限公司 米聚互联网科技南京有限公司排面 华夏恒生科技与互联网科技 互联网方面的科技前沿 半导体是互联网高科技吗 互联网科技融合创新 东风日产互联网科技公司叫什么
0