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

相关推荐
CQU_JIAKE5 分钟前
9.11【A】
算法
All for pursuit.37 分钟前
【分治-3】347.前K个高频元素
数据结构·c++·算法·leetcode
索尔~古德曼1 小时前
CF(1400-1400&1300-1500)错题集
算法
All for pursuit.2 小时前
【二分查找-2】34.在排序数组中查找元素的第一个和最后一个位置
数据结构·c++·算法·leetcode
泯泷2 小时前
为什么 AI 会"失忆"?——读懂 Agent 的记忆系统(一)
人工智能·算法·agent
需要8264 小时前
分布式 ID 生成:雪花算法、号段模式与时钟回拨
分布式·算法
垆边人似月.4 小时前
华为机考题:字符串分隔
算法·华为
CQU_JIAKE4 小时前
9.4【A】
算法
CQU_JIAKE4 小时前
9.13[A]
算法
懿路向前4 小时前
【唤醒实战笔记】2026-09-29 | 智能体提示词迭代史(v1 → v8)
linux·笔记·算法