网站架构知识之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

相关推荐
Sheffield12 小时前
command和shell模块到底区别在哪?
linux·云计算·ansible
陈桴浮海14 小时前
【Linux&Ansible】学习笔记合集二
linux·学习·ansible
馨谙18 小时前
Ansible模块化Playbook管理:静态导入与动态包含详解
运维·ansible
馨谙2 天前
Ansible 事实(Facts)全面指南:自动化运维中的主机信息管理
运维·ansible
馨谙2 天前
Ansible处理程序完全指南:实现智能的任务触发机制
运维·ansible
馨谙3 天前
Ansible 多 Play 编写与模块使用全解析
运维·ansible
馨谙3 天前
Ansible 清单详解:静态清单的构建与管理
ansible
馨谙3 天前
Ansible 配置文件详解:让自动化管理更轻松
运维·github·ansible
馨谙3 天前
Ansible Playbook 完全指南:从入门到实践
运维·ansible
Warren987 天前
接口测试理论
docker·面试·职场和发展·eureka·ansible