ansible中的主机清单

概述

Ansible 通过主机清单定义需要管理的远程服务器,记录主机 IP / 域名、分组、变量、连接参数等信息,ansible默认读取/etc/ansible/hosts文件,并非/etc/hosts

ansible中可以将主机清单存放在指定的目录,执行时用ansible -i 指定

ansible主机清单有两种主流格式:INI 格式(传统简洁)、YAML 格式,这里主要讲解INI格式

回到顶部

主机清单格式

基础单主机

主机清单

root@master:~# cat /etc/ansible/hosts

10.37.99.63

测试命令

root@master:~# ansible 10.37.99.63 -m ping

10.37.99.63 | SUCCESS => {

"ansible_facts": {

"discovered_interpreter_python": "/usr/local/bin/python3.13"

},

"changed": false,

"ping": "pong"

}

分组管理(核心功能)

简单分组:

主机清单

root@master:~# cat /etc/ansible/hosts

web

10.37.99.63

10.37.120.9

db

10.37.99.63

es

10.37.120.9

测试

root@master:~# ansible web -m ping

10.37.120.9 | SUCCESS => {

"ansible_facts": {

"discovered_interpreter_python": "/usr/local/bin/python3.13"

},

"changed": false,

"ping": "pong"

}

10.37.99.63 | SUCCESS => {

"ansible_facts": {

"discovered_interpreter_python": "/usr/local/bin/python3.13"

},

"changed": false,

"ping": "pong"

}

root@master:~# ansible db -m ping

10.37.99.63 | SUCCESS => {

"ansible_facts": {

"discovered_interpreter_python": "/usr/local/bin/python3.13"

},

"changed": false,

"ping": "pong"

}

指定分组名称,会连接不同的远程控制机器

分组合并

将db和es合并为一个新组

root@master:~# cat /etc/ansible/hosts

web

10.37.99.63

10.37.120.9

db

10.37.99.63

es

10.37.120.9

这里必须使用:children当作后缀

data:children

db

es

测试

root@master:~# ansible data -m ping

10.37.120.9 | SUCCESS => {

"ansible_facts": {

"discovered_interpreter_python": "/usr/local/bin/python3.13"

},

"changed": false,

"ping": "pong"

}

10.37.99.63 | SUCCESS => {

"ansible_facts": {

"discovered_interpreter_python": "/usr/local/bin/python3.13"

},

"changed": false,

"ping": "pong"

}

批量主机简写

连续 IP / 数字主机快速书写

web

表示192.168.1.20 ~ 192.168.1.25共六台机器

192.168.1.20:25

server01 ~ server08

server01:08.test.com

自行测试

使用内置变量连接主机

案例:没有配置密钥,使用密码连接远程主机

web

10.0.0.7 ansible_user=root ansible_password=1 ansible_port=22

需要使用sshpaas

apt install -y sshpass

给组配置变量

web

192.168.1.10

192.168.1.11

web:vars

ansible_user=root

ansible_port=22

env=prod

常用内置变量

ansible_user:SSH 登录用户

ansible_password:SSH 登录密码

ansible_port:SSH 登录端口

ansible_ssh_private_key_file:SSH 登录的私钥路径

ansible_become:是否开启sudo授权

ansible_become_user:提权到哪个用户,默认root

相关推荐
荆棘鸟智能28 分钟前
短历时洪水预报算法实践:水文模型与 LightGBM 残差订正融合
人工智能·算法·机器人
葫三生1 小时前
关于三生原理系列被技术开发社区批量收录或引发策展边界讨论的一种思考
大数据·人工智能·深度学习·算法·机器学习·数据挖掘·开源
catcatuncle1 小时前
OpenWorkBuddy 部署排错手册:从源码启动到自己搭一个给团队用,七个最容易卡住的地方
算法
avi91111 小时前
【AI教人】在Inspector显示所有Delegate-Odin Inspector之三
java·前端·算法·delegate·inspector·editor扩展·unity editor
淡海水1 小时前
06-02-源码-增量标记算法实现
算法·unity·c#·gc
碧海银沙音频科技研究院2 小时前
实现炬芯ATS308X的usb cdc 串口IAP 固件升级功能实现
人工智能·嵌入式硬件·深度学习·算法
云淡风轻~窗明几净2 小时前
角谷猜想与百度AI的对话dialog(原始稿)
人工智能·算法·机器学习·图论
小O的算法实验室3 小时前
ASOC,分层分数阶粒子群算法+无人机电场路径规划
算法
重生之小比特3 小时前
【算法拾光】二分查找|搜索插入位置 + x 的平方根
算法
智购科技自动售卖机厂家3 小时前
双摄像头方案F1-score只有0.85,排查发现是上下视角的融合逻辑写反了~YH
python·单片机·嵌入式硬件·算法·eclipse