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

相关推荐
墨水\\12 小时前
Ansible部署及基础模块
服务器·网络·ansible
七七powerful12 小时前
ansible play-book玩法
linux·服务器·ansible
Karoku0662 天前
【自动化部署】Ansible循环
linux·运维·数据库·docker·容器·自动化·ansible
W u 小杰2 天前
Ansible基本用法
服务器·网络·ansible
运维小文2 天前
ansible剧本快速上手
linux·运维·python·自动化·ansible·幂等性·剧本
记得多喝水o2 天前
Ansible自动化运维 技术与最佳实践
运维·自动化·ansible
Karoku0662 天前
【自动化部署】Ansible Playbook 基础应用
运维·网络·docker·容器·自动化·ansible·consul
运维小文3 天前
ansible的流程控制
python·自动化·ansible·脚本
高hongyuan5 天前
Ansible 简介及常用命令 安装部署tomcat -单机版
运维·自动化·ansible
澜堇6 天前
深入理解 Ansible Playbook:组件与实战
linux·运维·ansible