2、ansible的playbook

news/2025/1/22 6:30:50/

ansible的脚本:playbook剧本

脚本的作用:复用

playbook的组成部分

1、开头 ---:表示是一个yaml文件,但是可以忽略。

2、Tasks(任务):包含了目标主机上执行的操作,操作还是由模板来执行。每一个任务都是一个ansible的模块调用的系统名,操作管理等等。

3、variables(变量):存储和传递数据,可以自定义变量,在playbook中变量都是全局的。

4、templates模板:用于生成配置文件,可以在ansible当中定义好变量和属性直接传给配置文件。

5、handlers处理器:满足条件时,进行触发的操作,通常用在任务重发生“change”,可以触发这个处理器,一般是用处理器来对服务进行重启。

6、roles角色:是一种组织和封装playbooks的方式,类似docker-compose。

一般

配置脚本文件,安装软件,开启并设置开机自启以及修改访问页

检查脚本文件语法

检查脚本中的任务数

检查脚本中目标主机

运行脚本

从指定任务开始执行

传参

内部传参创建用户

外部传参创建用户

条件判断

1、给IP地址是192.168.254.41的主机打印输出“判断位置”

2、给IP地址是192.168.254.41的主机下载nginx,修改访问页并设置重启

循环

1、 with_items

2、 with_list:每组列表就会一起循环输出

3、with together:同一列表位置数据组合输出的循环

4、with_nested:列表数据循环配置的循环

三种传参进行循环遍历的方式

标签tags

ansible中相当于标签,在执行playbook的时候指定标签来运行我们需要的tasks。

1、debug:调式,调式的结果不会写入到目标主机。

2、always:始终会运行的任务

3、setup:收集主机信息

4、pre_tasks:在主任务之前运行的任务

5、post_tasks:在主任务之后运行的任务

6、自定义标签

7、never:这个任务永远不运行

如我们使用上面的first.yml脚本文件,创建4个标签

只执行zw1标签部分执行

只执行从test2标签到test4标签部分执行

跳过zw1标签部分执行

jinja模块

jinja是基于python的模块引擎,可以把模板看做一个编译过的文件,这个文件可以直接生产目标文件,用定义好的变量替换模版中的标记位。

首先准备好nginx的模板配置文件nginx.conf.j2(jinja模块文件的默认后缀名)

在配置文件/etc/ansible/hosts设置好要传参的参数

配置脚本文件,启用模板

运行脚本后,我们在41和14两个主机上可以看出模板生效


http://www.ppmy.cn/news/1565156.html

相关文章

MySQL和SQL server的区别

在当今数据驱动的世界里,数据库技术的选择对于企业和个人开发者来说至关重要。MySQL 和 SQL Server 是两个广泛使用的数据库管理系统(DBMS),它们各自拥有独特的优势和适用场景。本文将深入探讨这两个数据库系统之间的区别&#xf…

(1)STM32 USB设备开发-基础知识

开篇感谢: 【经验分享】STM32 USB相关知识扫盲 - STM32团队 ST意法半导体中文论坛 单片机学习记录_桃成蹊2.0的博客-CSDN博客 USB_不吃鱼的猫丿的博客-CSDN博客 1、USB鼠标_哔哩哔哩_bilibili usb_冰糖葫的博客-CSDN博客 USB_lqonlylove的博客-CSDN博客 USB …

Android系统开发(六):从Linux到Android:模块化开发,GKI内核的硬核科普

引言: 今天我们聊聊Android生态中最“硬核”的话题:通用内核镜像(GKI)与内核模块接口(KMI)。这是内核碎片化终结者的秘密武器,解决了内核和供应商模块之间无尽的兼容性问题。为什么重要&#x…

iOS-YModel

YModel 是一个高效的 iOS/OSX 的模型转换框架,可以轻松地将 JSON 转换成 Model,或者将 Model 转换成 JSON。以下是详细的使用指南: 导入 YYModel: 确保在你的项目中导入了 YYModel。使用 CocoaPods 的话可以在 Podfile 中加入以下代码&#…

Java 在包管理与模块化中的优势:与其他开发语言的比较

在开发复杂的、规模庞大的软件系统时,包管理和模块化设计起着至关重要的作用。它们不仅决定了代码的组织和可维护性,还直接影响到团队协作效率、扩展性和性能。在众多编程语言中,Java 凭借其成熟的生态系统、强类型系统和标准化的包管理机制&…

JupyterLab 安装以及部分相关配置

安装 JupyterLab pip install jupyter启动 JupyterLab jupyter lab [--port <指定的端口号>] [--no-browser] # --port 指定端口 # --no-browser 启动时不打开浏览器安装中文 首先安装中文包 pip install jupyterlab-language-pack-zh-CN安装完成后重启 JupyterLab 选…

【STM32-学习笔记-15-】MAX7219点阵屏模块

文章目录 MAX7219点阵模块一、MAX7219Ⅰ、 概述Ⅱ、功能特点Ⅲ、引脚功能Ⅳ、典型应用电路Ⅴ、内部组成结构Ⅵ、时序图Ⅶ、寄存器 二、STM32控制点阵屏Ⅰ、程序框图Ⅱ、程序编写①、MAX7219.c②、MAX7219.h③、MAX7219_Img.h④、main.c MAX7219点阵模块 一、MAX7219 Ⅰ、 概述…

性能调优篇 四、JVM运行时参数

目录 一、三种JVM参数选项1、标准参数选项1&#xff09;特点2&#xff09;各种选项3&#xff09;-server 和 -client 2、-X参数选项3、-XX参数选项 二、添加JVM参数选项1、idea 如何添加jvm参数 三、常见的JVM参数选项1、打印设置的参数选项及其值2、堆、栈、方法区等内存大小设…