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

devtools/2024/11/14 19:29:07/

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:书写剧本,将管理端文件发送给所有被管理端

---- hosts: alltasks:- name: 01创建目录file:path: /server/files/state: directory- name: 02分发文件copy:src: /server/files/day022.txtdest: /server/files/

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

---- hosts: alltasks:- name: 01file:path: /tmp/tools/appstate: directory- name: 02ansible.builtin.get_url:validate_certs: nourl: https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpmdest: /tmp/tools/app- name: 03yum:name: /tmp/tools/app/zabbix-agent2-6.0.7-1.el7.x86_64.rpmstate: installed- name: 04systemd:name: zabbix-agent2enabled: yesstate: started

2.剧本的变量

1.在剧本中定义

2.变量文件

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

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

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

---- hosts: allvars:dir: /tmp/tools/app     (定义变量dir)tasks:- name: 01file:path: "{{ dir }}"state: directory

变量文件方法使用变量

1.定义变量文件的变量

2.

---- hosts: allvars_files:变量文件路径

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

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

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

---- hosts: alltasks:- name: 01shell: date +%Fregister: shijian- name: 02debug:msg: "{{ shijian.stdout }}"

3.facts变量

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

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


http://www.ppmy.cn/devtools/133251.html

相关文章

java双向链表解析实现双向链表的创建含代码

双向链表 一.双向链表二.创建MyListCode类实现双向链表创建一.AddFirst创建(头插法)二.AddLast创建(尾叉法)三.size四.remove(指定任意节点的首位删除)五.removeAll(包含任意属性值的所有删除)六.AddIndex(给任意位置添加一个节点…

简单介绍下 Java 中的 @Validated 和 @Valid 注解的区别?

文章目录 Valid:专注单个对象的深度验证适用场景使用示例小结 Validated:聚焦接口分组的批量验证适用场景使用示例小结 主要区别总结如何选择?总结推荐阅读文章 在 Java 开发中,为了确保输入数据符合我们的要求,少不了…

libgdiplus在MacOS M1上问题:Unable to load shared library ‘libgdiplus‘

libgdiplus在MacOS M1上问题:Unable to load shared library libgdiplus 问题解决步骤1步骤2 问题 在mac上的pycharm中执行下面的代码时出现下面的错误 slide.get_thumbnail( RuntimeError: Proxy error(TypeInitializationException): The type initializer for…

IntelliJ IDEA的快捷键

IntelliJ IDEA 是一个非常强大的集成开发环境,它提供了大量的快捷键来加速开发者的日常工作。这里为您整理了一份 IntelliJ IDEA 的快捷键大全,包含了编辑、导航、重构、运行等多个方面的快捷键。请注意,这些快捷键是基于 Windows 版本的 Int…

shell--常用命令

命令执行失败之后的操作 teee --version || { echo "tee command not found"; exit 1; } /dev/null /dev/null 对应的是一个空设备文件,任何写入这个文件的数据都将立即被销毁,而不是写到磁盘上。 if dpkg -s software-properties-common &g…

【Vue】-组件开发-一个树组件

我们来自己搞一个树组件 1. 创建 Vue 项目 如果你还没有创建 Vue 项目,可以使用 Vue CLI 快速创建: vue create my-tree-component cd my-tree-component2. 安装依赖 确保安装了 Vue Router 和 Vuex(如果需要状态管理)&#x…

Java 中的 transient 关键字:深入解析与实战

在 Java 编程中,transient 关键字是一个非常有用的工具,尤其是在处理对象序列化时。尽管 transient 关键字在日常开发中可能不常被使用,但了解它的作用和使用场景对于提升代码的安全性和性能至关重要。本文将深入探讨 transient 关键字的作用…

【网络-交换机】生成树协议、环路检测

路由优先级 路由优先级决定了在多种可达的路由类型中,哪种路由将被用来转发数据包。路由优先级值越低,对应路由的优先级越高,优先级值255表示对应的路由不可达。一般情况下,静态路由的优先级为1,OSPF路由优先级为110&a…