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

相关推荐
果壳science13 分钟前
《自然本源》如何实现狭义相对论的代数化
笔记·算法·几何学
302wanger1 小时前
分享一个工作习惯:整点看即时消息
算法
洋不写bug2 小时前
排序(一)基础排序,插入|希尔|冒泡|直接选择排序详解
java·算法·排序算法·插入排序·冒泡排序·希尔排序·直接选择排序
牧羊人.3332 小时前
动手学深度学习 03 | 卷积神经网络实现手写数字识别
人工智能·深度学习·神经网络·算法·cnn
AgentMaster3 小时前
数据治理工具选型指南:一套可复用的四阶段决策框架
大数据·数据结构·人工智能·算法
liliangcsdn3 小时前
最终留出样本/样本外测试集-holdout解读
算法
爱敲代码的小黄4 小时前
机器学习入门:从数据、训练到业务决策
算法
数据知道4 小时前
哈希与密码存储——bcrypt、Argon2、盐值与彩虹表
网络·算法·安全·网络安全·密码学·哈希算法
haon11224 小时前
树模型在信贷风控怎么用——从决策树到 XGBoost
大数据·人工智能·算法·决策树·机器学习·数据挖掘
wordbaby4 小时前
BM25 是什么?手把手拆解搜索引擎的核心算法
人工智能·算法