ansible中的inventory.ini 文件详解

1. 主机定义

主机是 Ansible 管理的最小单元,可以是 IP 或域名,支持直接定义或附加参数。

基础语法
# 直接定义主机(IP 或域名)
192.168.1.10
example.com# 定义主机并指定连接参数(如端口、用户等)
web1.example.com ansible_port=2222 ansible_user=admin
特殊参数(常用)
  • ansible_port: SSH 端口(默认 22)

  • ansible_user: SSH 用户名

  • ansible_ssh_private_key_file: 私钥路径

  • ansible_python_interpreter: 指定 Python 解释器路径(如系统默认非 Python3)


2. 主机组

主机组用于逻辑分类,方便批量操作。组名用 [] 定义,下方列成员。

示例
[web_servers]
web1.example.com
web2.example.com[db_servers]
db1.example.com
db2.example.com ansible_user=postgres  # 覆盖组变量
操作组
# 仅对 web_servers 组执行命令
ansible web_servers -m ping

3. 变量

变量可分配给 主机 或 ,优先级:主机变量 > 子组变量 > 父组变量。

主机变量
# 直接附加到主机行
web1.example.com http_port=80 max_requests=100# 或在下方缩进定义
web1.example.comhttp_port=80max_requests=100
组变量
[web_servers:vars]  # 定义组变量
http_port=80
backup_dir=/var/www[all:vars]          # 全局变量(所有主机生效)
ansible_python_interpreter=/usr/bin/python3

4. 子组

子组通过 :children 定义,继承父组的变量,支持嵌套层级。

示例
# 定义父组 app_servers,包含 web_servers 和 db_servers 子组
[app_servers:children]
web_servers
db_servers# 子组可继承父组变量
[app_servers:vars]
environment=production

完整示例

# 主机定义
controller ansible_connection=local# 主机组
[web_servers]
web1.example.com
web2.example.com[db_servers]
db1.example.com ansible_user=postgres# 子组
[app_servers:children]
web_servers
db_servers# 组变量
[web_servers:vars]
http_port=80[app_servers:vars]
deploy_env=prod# 全局变量
[all:vars]
ansible_python_interpreter=/usr/bin/python3

注意事项

  1. 变量优先级:主机变量 > 当前组变量 > 父组变量 > all 组变量。

  2. 建议将复杂变量拆分到 group_vars/ 和 host_vars/ 目录。

  3. 使用 ansible-inventory --graph 可视化查看主机组结构。

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

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

相关文章

SpringBoot整合MyBatis完整实践指南

在Java企业级应用开发中,SpringBoot和MyBatis的组合已经成为主流的技术选型方案之一。本文将详细介绍如何从零开始搭建一个基于SpringBoot和MyBatis的项目,包括环境配置、数据库设计、实体类创建、Mapper接口编写以及实际应用等完整流程。 一、环境准备…

【Rust 轻松构建轻量级多端桌面应用】

使用 Tauri 框架构建跨平台应用 Tauri 是一个基于 Rust 的轻量级框架,可替代 Electron,用于构建高性能、低资源占用的桌面应用。其核心优势在于利用系统原生 WebView 而非捆绑 Chromium,显著减小应用体积。 安装 Tauri 需要先配置 Rust 环境…

【Linux】shell脚本的常用命令

目录 简介 一.设置主机名称 1.1通过文件修改 1.2通过命令修改 二.网络管理命令nmcli 2.1查看网卡 2.2设置网卡 三.简单处理字符 3.1seq打印连续字符 3.2printf,echo打印字符 3.3sort排序 3.4uniq冗余处理 3.5cut对字符的截取 四.xargs输入转参 简介 以下命令都是…

解决访问网站提示“405 很抱歉,由于您访问的URL有可能对网站造成安全威胁,您的访问被阻断”问题

一、问题描述 本来前几天都可以正常访问的网站,但是今天当我们访问网站的时候会显示“405 很抱歉,由于您访问的URL有可能对网站造成安全威胁,您的访问被阻断。您的请求ID是:XXXX”,而不能正常的访问网站,如…

页面输入数据的表格字段(如 Web 表单或表格控件)与后台数据库进行交互时常用的两种方式

“从页面输入数据的表格字段(如 Web 表单或表格控件)在与后台数据库进行交互时,常用的有两种方式:” 🎯 两种方式(操作调用数据库、绑定数据) 🚀 方式1:前端代码提交数据到后端,再由后端调用数据库 💡 原理和逻辑: 用户在页面上(比如输入表单、表格)输入数据…

非阻塞套接字编程详解

阻塞与非阻塞套接字对比 传统阻塞式套接字编程使用ServerSocket和Socket类时,关键方法如connect()、accept()、read()、write()都会导致调用线程阻塞,直到操作完成。这种模式存在两个主要问题: 客户端线程在等待数据时会被完全阻塞服务端需要为每个客户端连接创建独立线程,…

电子电路:初步认识CMOS技术

CMOS(Complementary Metal-Oxide-Semiconductor,互补金属氧化物半导体)是一种半导体技术,广泛应用于集成电路(IC)的设计和制造中。以下是关于CMOS的详细说明: 1. 基本概念 技术原理&#xff1a…

【11408学习记录】考研英语写作提分秘籍:2013真题邀请信精讲+万能模板套用技巧

邀请信 英语写作2013年考研英语(一)真题小作文题目分析写作思路第一段:第二段:锦囊妙句1:锦囊妙句2:锦囊妙句3:锦囊妙句5:锦囊妙句6:锦囊妙句9:锦囊妙句14&am…

Java 注解与反射(超详细!!!)

Java 注解与反射(超详细!!!) 文章目录 Java 注解与反射(超详细!!!)1.注解1.1内置注解1.1.1 SuppressWarnings注解用法 1.2 元注解1.3自定义注解 2.反射2.1 反…

用nz-tabel写一个合并表格

用nz-tabel写一个合并表格 <nz-table #basicTable [nzData]"tableSearchStatus.dataList" nzBordered><thead><tr><th>班级</th><th>姓名</th><th>年龄</th><th>电话</th></tr></thead&…

第6章 放大电路的反馈

本章基本要求 会判&#xff1a;判断电路中有无反馈及反馈的性质 会算&#xff1a;估算深度负反馈条件下的放大倍数 会引&#xff1a;根据需求引入合适的反馈 会判振消振&#xff1a;判断电路是否能稳定工作&#xff0c;会消除自激振荡。 6.1 反馈的概念及判断 一、反馈的…

ansible template 文件中如果包含{{}} 等非ansible 变量处理

在 Ansible 模板中&#xff0c;如果你的 Python 脚本里有大量 {}、f""、或者其他 Jinja 会误解析的语法&#xff0c;就需要用 {% raw %}…{% endraw %} 把它们包起来&#xff0c;只在需要替换变量的那一行单独“放行”。例如&#xff1a; {% raw %} #!/usr/bin/env …

STM32G4 电机外设篇(一) GPIO+UART

目录 一、STM32G4 电机外设篇&#xff08;一&#xff09; GPIOUART1 GPIO1.1 STM32CUBEMX 配置以及Keil代码1.2 代码和实验现象 2 UART2.1 STM32CUBEMX 配置以及Keil代码2.2 代码和实验现象 附学习参考网址欢迎大家有问题评论交流 (* ^ ω ^) 一、STM32G4 电机外设篇&#xff0…

Kotlin 中集合遍历有哪几种方式?

1 for-in 循环&#xff08;最常用&#xff09; val list listOf("A", "B", "C") for (item in list) {print("$item ") }// A B C 2 forEach 高阶函数 val list listOf("A", "B", "C") list.forEac…

尚硅谷redis7 99 springboot整合redis之连接集群

6381宕机&#xff0c;手动shutdown后在redis中&#xff0c;634自动上位变成master结点。 但是在springboot中却没有动态感知道redisCluster的最新集群消息&#xff0c;所以找不到我们要检索的数据。原因是&#xff1a;SpringBoot 2.X版本,Redis默认的连接池采用 Lettuce&#…

AI 的早期萌芽?用 Swift 演绎约翰·康威的「生命游戏」

文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 你有没有想过&#xff0c;能不能通过简单的规则模拟出生与死亡&#xff1f;「生命游戏」正是这样一种充满魅力的数学模拟系统。这篇文章我们来聊聊它的规则到底有多神奇&#xff0c;并用 S…

web ui自动化工具playwright

playwright是微软开源的一款web ui自动化工具&#xff0c;该工具有很多亮点&#xff0c;解决以前困扰web UI自动化测试的很多难点。这篇博客将介绍playwright主要特点。 playwright支持录制减少了编写成本 如果要使用playwright的录制功能&#xff0c;有两种途径&#xff0c;途…

移动安全Android——客户端静态安全

一、反编译保护 测试工具 Jadx GitHub - skylot/jadx: Dex to Java decompiler PKID [下载]PKID-APP查壳工具-Android安全-看雪-安全社区|安全招聘|kanxue.com 测试流程 &#xff08;1&#xff09;通过Jadx对客户端APK文件进行反编译&#xff0c;观察是否进行代码混淆 &…

04-redis-分布式锁-edisson

1 基本概念 百度百科&#xff1a;控制分布式系统之间同步访问共享资源方式。 在分布式系统中&#xff0c;常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源&#xff0c;那么访问这些资源的时候&#xff0c;往往需要互斥来防止…

cf每日刷题

目录 String&#xff08;800&#xff09; Skibidus and Amogu&#xff08;800&#xff09; Apples in Boxes&#xff08;1100&#xff09; String&#xff08;800&#xff09; https://codeforces.com/problemset/problem/2062/A #include <iostream> #include <…