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

相关推荐
aaaameliaaa3 小时前
字符函数和字符串函数
c语言·笔记·算法
城管不管4 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
月疯4 小时前
二分法算法(水平等分图形面积)
算法
豆瓣鸡5 小时前
算法日记 - Day3
java·开发语言·算法
白白白小纯5 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
Achou.Wang5 小时前
深入理解go语言-第5章 并发编程——Go的灵魂
大数据·算法·golang
The Chosen One9855 小时前
高进度算法模板速记(待完善)
java·前端·算法
土豆.exe8 小时前
Fastjson2 2.0.53 哈希碰撞 RCE:从原理到三种打法
算法·哈希算法
黄河123长江8 小时前
有限Abel群的结构()
算法
Jerry9 小时前
LeetCode 92. 反转链表 II
算法