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

相关推荐
在野靡生.21 小时前
Ansible(4)—— Playbook
linux·运维·ansible
rocksun1 天前
如何使用Semaphore在Ansible上添加GUI
ansible
千航@abc4 天前
深度剖析 ansible:从部署基础到模块运用及剧本编写
运维·centos·ansible
一只栖枝4 天前
RHCA核心课程技术解析3:Ansible 自动化平台深度实践指南
linux·服务器·自动化·ansible·运维工程师·红帽认证·rhce认证
chairon5 天前
Ansible:playbook实战案例
运维·服务器·网络·ansible
leo·Thomas8 天前
什么是 Ansible Playbook?
ansible·playbook
luojiaao10 天前
【CICD】Ansible知识库
ansible
hhzz10 天前
从零开始使用 Ansible 自动化部署 SpringBoot Web 应用(含 MySQL、Redis、Vue、Nginx)
前端·自动化·ansible
zxnbmk15 天前
ansible速查手册
linux·服务器·ansible
book012115 天前
Ansible 自动化运维
运维·自动化·ansible