网站架构知识之Ansible剧本(day022)

1.剧本模式使用方法

1.创建/server/scripts/playbook目录,用于存放剧本

2.将/etc/ansible/hosts主机清单文件复制到该目录下,cp /etc/ansible/hosts .

3.书写剧本,剧本后缀名需要为yml,举报人你格式如下图,hosts代表执行的终端,与主机清单相对应,此处name为执行步骤,方便剧本执行出错定位错误。

4.执行剧本,ansible-playbook -i hosts 01.show.yml,此处-i,指定主机清单文件,01.show.yml为执行的

案列01:书写剧本,将管理端文件发送给所有被管理端

bash 复制代码
---
    - hosts: all
      tasks:
       - name: 01创建目录
         file:
            path: /server/files/
            state: directory
       - name: 02分发文件
         copy:
            src: /server/files/day022.txt
            dest: /server/files/

案例02:书写剧本,给所有被端粒段安装zabbix

bash 复制代码
---
   - hosts: all
     tasks:
      - name: 01
        file:
          path: /tmp/tools/app
          state: directory
      - name: 02
        ansible.builtin.get_url:
          validate_certs: no
          url: https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpm
          dest: /tmp/tools/app
      - name: 03
        yum:
          name: /tmp/tools/app/zabbix-agent2-6.0.7-1.el7.x86_64.rpm
          state: installed
      - name: 04
        systemd:
          name: zabbix-agent2
          enabled: yes
          state: started
                          

2.剧本的变量

1.在剧本中定义

2.变量文件

3.共用变量,主机组变量

4.register变量(注册变量)如:ip=`hostname -I`

剧本中定义使用方法:在host下一行定义

bash 复制代码
---
   - hosts: all
     vars:
        dir: /tmp/tools/app     (定义变量dir)
     tasks:
      - name: 01
        file:
          path: "{{ dir }}"
          state: directory

变量文件方法使用变量

1.定义变量文件的变量

bash 复制代码
---
   - hosts: all
     vars_files:变量文件路径

共用变量根据主机组使用变量,group_vars会自动根据主机清单匹配,剧本中直接使用变量。

bash 复制代码
xxxx-check.yml
 group_vars/
    lb/vars.yml  #存放lb组的变量
    web/vars.yml #存放web组的变量
    data/vars.yml #存放xxx组的变量
    all/vars.yml  #所有主机共用的变量
    一般使用all分组即可,把所有变量存放在一起,供剧本使用

register注册变量需要配合shell一起使用,如下所示

bash 复制代码
---
  - hosts: all
    tasks:
      - name: 01
        shell: date +%F
        register: shijian
      - name: 02
        debug:
          msg: "{{ shijian.stdout }}"

3.facts变量

facts变量是ansible的内置变量,通过setup模块获取

禁用facts变量可以提高ansible运行速度,hosts下一行写gather_facts:no

相关推荐
Aimyon_363 天前
⾃动化运维利器 Ansible-Jinja2
运维·ansible
柒月VII4 天前
【Ansible常用命令+模块+Playbook+Roles】
linux·服务器·ansible
Linux运维技术栈4 天前
生产环境centos8 & Red Hat8部署ansible and 一键部署mysql两主两从ansible脚本预告
运维·数据库·mysql·自动化·ansible
Aimyon_364 天前
⾃动化运维利器 Ansible-最佳实战
linux·运维·ansible
饭桶也得吃饭4 天前
运维工具Ansible部署、配置
运维·服务器·ansible
陪小七许个愿4 天前
Ansible一键部署Kubernetes集群
容器·kubernetes·ansible
Aimyon_365 天前
⾃动化运维利器 Ansible-变量
运维·ansible
Aimyon_365 天前
⾃动化运维利器Ansible-基础
运维·windows·ansible
大风吹PP凉7 天前
38配置管理工具(如Ansible、Puppet、Chef)
linux·运维·服务器·ansible·puppet
IT-民工211108 天前
Ansible剧本检测Windows防火墙状态
linux·运维·windows·自动化·ansible