Ansible Inventory 介绍
目录
什么是Inventory?
Inventory 翻译过来就是库存, 清单, 商品清单的含义,如有你对Linux /etc/hosts比较熟悉,那么就可以把ansible的inventory(默认位置/etc/ansible/hosts)理解为主机名称的配置,只不过它比单纯的hosts文件有更丰富的语法支持。如果你对脚本或者某类编程语言比较数量,那你可以理解为变量名称=变量值的含义,变量名称的含义不就是为了更好记吗,inventory也是如此。
静态inventory配置
环境配置介绍
此处我们有三台虚拟机作为介绍的例子,账号使用root,操作系统为Centos7
主机名称 | 地址 | 作用 |
---|---|---|
mn0 | 172.168.0.1/24 | 管理节点,可ssh无密登陆到其余两个节点1 |
node0 | 172.168.0.2/24 | 普通节点,mn0可直接ssh访问 |
node1 | 127.168.0.3/24 | 普通节点,mn0可直接ssh访问 |
1. /etc/hosts 配置
作为本地dns解析,这样我们就无须使用dns
# 管理
172.168.0.1 mn0
# 普通
172.168.0.2 node0
172.168.0.3 node1
此时通过ping命令判断自定义主机名称是否生效
ping node0
ping node1
2. ssh免密配置
# mn0 生成公钥及私钥,若已经生成,则无须执行
ssh-keygen
# 将公钥拷贝到 node0及node1,此处要输入密码
ssh-copy-id node0
ssh-copy-id node1
3. /etc/ansible/hosts 配置
我们只有两台自服务器,此处将介绍其配置文件中提供的3种方式进行配置
# 1. 直接使用我们在/etc/hosts中定义的主机名称/或直接使用ip地址
node0
node1
172.168.0.2
172.168.0.3
# 2. 使用主机组进行配置
[node] # 主机组名称
node0
node1
# 3. 使用主机组加集合的方式配置
[node_list]
node[0:1] # 此处可以理解为一个数组,展开为node0,node1
# 若为node[num1:num2] 则将会把主机名为node num1 到num2的所有数值包含在内,即将会有 num2-num1+1个主机名字
使用ansible ping命令操作测试
ansible node0 -m ping # 单节点测试
ansible node -m ping # 主机组测试
ansible node_list -m ping # 主机组测试
- 单节点node0 ssh服务正常且网络通畅的测试结果
node0 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
- 主机组node[0-1] ssh服务正常且网络通畅的测试结果
node0 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
node1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
表示主机、虚拟服务器、服务器等 ↩︎