ansible常见概念总结

news2024/12/23 22:26:24

目录

1、play和playbook和role

2、幂等性

3、清单

4、配置文件(ansible.cfg)

5、变量

5.1 在playbook中使用变量:

5.2 在playbook中使用变量文件: 

6、事实

7、循环

8、处理程序

9、块

10、动态清单文件

11、角色


1、play和playbook和role

role由多个playbook组成,playbook由多个play组成,play由多个task组成。play是由yaml格式的文本文件。

playbook中play和任务列出的顺序很重要,因为ansible会按照相同的顺序运行它们

简单的playbook(一个play):

简单的playbook(两个play):

play使用关键字(remote_user、become):优先级高于配置文件 


2、幂等性

具有幂等性是ansible重要的特点。playbook运行一次和运行多次效果是一样的。不会改变系统状态。


3、清单

清单:你要操作哪些主机就放到清单里面,包含主机和主机组。

默认清单文件:/etc/ansible/hosts   

自定义清单文件:inventory

静态清单:

 


4、配置文件(ansible.cfg)

基本配置文件:/etc/ansible/ansible.cfg。

ansible  --version  可以看到这个路径,版本不同,可能位置不一样。

主目录:~/.ansible.cfg

运行ansible命令的目录创建ansible.cfg:./ansible.cfg

如果当前目录有配置文件就使用当前目录的配置文件,如果没有就去找用户家目录下的配置文件,如果也没有就去找/etc/ansible/ansible.cfg。实践中不常用/etc/ansible/ansible.cfg和~/.ansible.cfg

ANSIBLE_CONFIG环境变量可以定义配置文件的位置。


5、变量

变量可以存储值。

5.1 在playbook中使用变量:

5.2 在playbook中使用变量文件: 



6、事实

Ansible 事实(Facts)是指在执行 Ansible Playbook 时,Ansible 自动收集的有关目标主机的信息。这些信息包括主机名、IP 地址、操作系统类型、内存大小、CPU 数量等等。Ansible 事实可以在 Playbook 中使用,以便根据目标主机的不同情况执行不同的任务。

Ansible 事实可以通过 ansible_facts 变量在 Playbook 中访问。例如,要获取目标主机的 IP 地址,可以使用 ansible_facts['default_ipv4']['address']。

Ansible 事实可以通过多种方式收集,包括使用 Ansible 内置的模块、自定义模块、脚本等。默认情况下,Ansible 会自动收集一些基本的事实,如主机名、操作系统类型等。如果需要收集更多的信息,可以使用 Ansible 内置的模块,如 setup 模块,或者编写自定义模块和脚本来收集信息。

 


7、循环

在 Ansible 中,可以使用循环来重复执行某些任务或操作。循环可以用于遍历列表、字典或范围等数据结构。

 

 有条件的循环:when关键字


8、处理程序

处理程序是响应由其他任务触发的通知的任务。仅当任务在收管主机上更改了某些内容时,任务才通知其处理程序。每个处理程序具有全局唯一的名称,在playbook中任务块的末尾触发。如果没有任务通过名称通知处理程序,处理程序就不会运行。如果一个或多个任务通知处理程序,处理程序就会在play中的所有其他任务完成后运行一次。因为处理程序就是任务,所以管理员可以在处理程序中使用他们将用于任何其他任务的模块。通常而言,处理程序被用于重新引导主机和重新启动服务。处理程序可视为非活动任务,只有在使用notify语句显式调用时才会被触发。在下列代码片段中,只有配置文件更新并且通知了该任务时,restart apache处理程序才会重新启动Apache服务器:

playbook示例: 


9、块

块是对任务进行逻辑分组的子句,用于控制任务的执行方式。


10、动态清单文件

Ansible动态清单文件是一种特殊类型的清单文件,它不是静态的,而是在运行时动态生成的。这种清单文件通常用于管理大规模的、动态变化的环境,例如云环境或容器环境。

动态清单文件可以使用各种插件来生成,例如:
AWS EC2插件:可以从AWS EC2实例列表中生成清单文件。
OpenStack插件:可以从OpenStack实例列表中生成清单文件。
Docker插件:可以从Docker容器列表中生成清单文件。
Kubernetes插件:可以从Kubernetes集群中生成清单文件。
使用动态清单文件,可以轻松地管理大规模的、动态变化的环境,而无需手动维护清单文件。同时,动态清单文件也可以与Ansible的其他功能结合使用,例如动态变量、动态任务等。


11、角色

Ansible角色是一种组织和管理Ansible任务、变量和文件的方法。它们是一种可重用的、可组合的、可扩展的方式,可以使您的Ansible代码更加模块化和可维护。

一个角色通常包含以下内容:
tasks:包含要执行的任务列表。
handlers:包含要在任务完成后执行的处理程序列表。
templates:包含要使用的模板文件。
files:包含要复制到目标主机的文件。
vars:包含角色特定的变量。
defaults:包含角色默认变量的值。
meta:包含角色依赖关系和其他元数据。
使用角色可以使您的Ansible代码更加模块化和可重用,同时也可以使您的代码更加易于维护和扩展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/491034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

本地事务,分布式事务(Seata)

本地事务 四大特性ACID A:原子性(Atomicity):事务是不可分割的最小操作但愿,要么全部成功,要么全部失败 C:一致性(Consistency):事务完成时,必须使所有数据都保持一致状态 l:隔离性(Isolation):数据库系统…

[架构之路-188]-《软考-系统分析师》-3-操作系统 - 图解页面替换算法LRU、LFU

目录 一、内存置换算法的缘由 二、算法详解 2.1 最佳页面置换算法(OPT) 》 理论上的最优,实际无法保证 2.2 先进先出置换算法(FIFO)-- 按加载时间/最早访问时间排序 2.3 最近最久未使用的置换算法(L…

JDK、JRE 和 JVM 之间的区别

虚拟机 JVM(Java Virtual Machine)是一个抽象机器。之所以称为虚拟机,是因为它在物理上并不存在。它是一个规范,它提供了一个可以在其中执行 Java 字节码的运行时环境。它还可以运行那些用其他语言编写并编译为 Java 字节码的程序…

c++详解之右值引用

右值引用: 右值引用是C11引入的一个新特性,它允许我们显式地将一个表达式标记为右值,从而可以使用移动语义进行优化。 在C中,每个表达式都是要么是左值,要么是右值。左值是指可以取地址的表达式,例如变量…

linux 系统下gcc

linux c gcc gcc编译可以执行4步骤:预处理、编译、汇编、链接 预处理 gcc -E hello.c----->hello.i 展开宏、头文件,替换条件编译,删除注释、空行、空白 编译 gcc -S hello.i------>hello.s 检查语法规范 汇编 gcc -c hello.…

网络安全行业就职岗位有哪些?

网络安全作为目前最火的行业之一,它的细分方向很多。下面介绍一下网络安全主要的方向岗位有哪些,以及职责是什么? 一、安全规划与设计方向 岗位名称:系统安全需求分析师。 岗位职责:负责对目标对象需要达到的安全目标…

DIN11 FVI频率脉冲信号转电压电流信号隔离转换模块变换器

主要特性 将单位脉冲信号转换成直流电压或电流信号。 精度等级:0.1 级、0.2 级、0.5 级。产品出厂前已检验校正,用户可以直接使用。 国际标准信号输入: 0-5KHz/0-10KHz/1-5KHz等 0-5V/0-10V/1-5V 等电压信号,0-10mA/0-20mA/4-20mA 等电流信号。 …

新港转债,百洋转债上市价格预测

新港转债 基本信息 转债名称:新港转债,评级:AA-,发行规模:3.69135亿元。 正股名称:新中港,今日收盘价:8.67元,转股价格:9.18元。 当前转股价值 转债面值 / 转…

Java设计模式-代理模式

简介 代理模式是一种结构型设计模式,它可以让我们通过一个代理对象来访问一个真实的目标对象,从而实现对目标对象的功能扩展或保护。代理模式的主要角色有三个: 抽象主题(Subject):定义了真实主题和代理主…

Prompt 技巧指南-让 ChatGPT 回答准确十倍!

出品人:Towhee 技术团队 作者:张晨 随着 ChatGPT 等大型语言模型 (LLM)的兴起,人们慢慢发现,怎么样向 LLM 提问、以什么技巧提问,是获得更加准确的回答的关键,也由此产生了提示工程这个全新的领域。 提示工…

JavaScript实现输入班级人数和成绩后,输出总成绩、平均成绩、最高分、最低分的代码

以下为实现输入班级人数和成绩输出总成绩、平均成绩、最高分、最低分的代码和运行截图 目录 前言 一、实现输入班级人数和成绩,输出总成绩、平均成绩、最高分、最低分的代码 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有…

JavaWeb《后端内容:1.Tomcat--Servlet--Thymeleaf》

目录 1. 基础概念 1.1 BS架构和CS架构 1.2 Tomcat图解 2.TomCat 2.1 IDEA配置web项目和tomcat 2.2 idea启动TomCat因为端口号失败的问题 3.Servlet使用流程 3.1 Servlet简单图解 3.2 Servlet导入依赖 3.3 编写Servlet和add.html 3.4 试着使用Jdbc和Dao层连接水果库存…

超细Redis(一)

目录 概述 Redis是什么? Redis能干嘛? 特性 如何学习 Linux安装 测试性能 概述 Redis是什么? Redis (Remote Dictionary Server),即远程字典服务 是一个开源使用ANSI C语言编写、支持网络、可基于内存亦可持…

阿里版ChatGPT——通义千问,开箱初体验

所有行业、所有应用、所有服务都值得基于新型人工智能技术重做一遍,在带来创造性客户体验的同时,生产范式、工作范式、生活范式也将发生变化。——阿里集团董事会主席兼CEO 张勇 2023阿里云峰会上,通义千问大语言模型对外发布,宣称…

【语义分割】LinkNet 从0到1 和代码实现

文章目录 前言1.网络结构1.1 网络结构示意图1.2 创建LinkNet模型 2.代码 前言 已经有了U-net了,为什么需要linkNet? unet见这个文章【语义分割】unet结构和代码实现:https://blog.csdn.net/weixin_40293999/article/details/129648032 它引入了resNet&a…

“SDL 入门指南:了解 SDL,快速上手 SDL 的安装和配置”——VS2022

前言 欢迎来到小K的SDL专栏第一小节,本节为大家介绍一下SDL是什么,能做什么,可以在哪些平台运行以及SDL的安装和VS2022配置SDL、导出模板、cmake运行SDL,同时我也会在资源里为大家上传SDL2.26的安装包,为在github上下载…

扫地机洗地机语音芯片ic一体方案 WTV多功能语音芯片

​随着智能家居的快速普及,扫拖一体机语音芯片ic逐渐成为了家庭清洁的必备之物。在智能家居、商业清洁服务、医院清洁服务、办公室清洁等领域得到广泛应用;而语音芯片方案的应用让清洁机器设备使用起来更加方便和智能化。 编辑搜图 目前大多数扫地机厂家…

2023/5/4总结

刷题&#xff1a; 第二周任务 - Virtual Judge (vjudge.net) 这一题用到了素筛,然后穷举即可 #include<stdio.h> #define Maxsize 500000 int a[Maxsize]; long long b[Maxsize]; long long max0; int sushu() {a[0]a[1]0;int i,j,k;for(i2,k0;i<Maxsize;i){if(a[i…

jeecgboot online代码生成 一对多

首先把前后端环境都起起来&#xff0c;此处略 点击online表单开发&#xff0c;设计主附表&#xff0c;表示一对多(一对一)关系&#xff0c;“一”对应主表&#xff0c;“多”对应附表&#xff0c;如图 表设计完成&#xff0c;点击同步可直接在数据库中生成数据表。 附表注意…

卢北辰:数据点亮梦想,能力驱动人生 | 提升之路系列(九)

导读 为了发挥清华大学多学科优势&#xff0c;搭建跨学科交叉融合平台&#xff0c;创新跨学科交叉培养模式&#xff0c;培养具有大数据思维和应用创新的“π”型人才&#xff0c;由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…