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

相关推荐
GoAI1 天前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
Pniubi1 天前
力扣54.螺旋矩阵
算法·leetcode·矩阵
choumou_M1 天前
算法_1:由浅入深学习快速排序QuickSort
学习·算法·排序算法
Coder_Shenshen1 天前
罗克韦尔ACD工程归档离线变量树解析
算法·c#
心仪久了会沦陷1 天前
C语言数据结构入门——树与二叉树详解:概念、堆实现与链式遍历
c语言·数据结构·算法
小此方1 天前
[算法实战论:动态规划]背包问题概念,01不满背包问题,01满背包问题,背包问题的滚动数组空间优化
算法·动态规划
悠仁さん2 天前
【C++】哈希表
c++·算法·散列表
地平线开发者2 天前
点云算法整理与常用计算模块:从数据到模型,再到工程与量化
算法·自动驾驶
武子康2 天前
H3-World 为何在加载 LoRA 前,先检查导入的代码?
人工智能·深度学习·算法