情况:
我有一个“网络服务器”组,我把所有的网络服务器都放进去了。以及数据库服务器的组“mysqlserver”。
现在我也管理一些LAMP服务器,我希望它们始终是webserver和mysqlserver组的一部分,并在一个组"lamp“中管理它们。
这是我的方法:
---
all:
hosts:
host1:
host2:
children:
webservers:
hosts:
web1:
web2:
web3
children:
lamp:
mysqlservers:
hosts:
db1:
db2:
db3:
children:
lamp:
lamp:
hosts:
lamp1:
lamp2:
lamp3:
...这是正确的做法吗?如果我遵循ansible docs的例子,我会将"lamp“主机定义为webserver和mysqlserver的子服务器,但我真的希望减少冗余。那么,是否可以将组创建为"all“的子组,并将其引用为指定组的子组而不重复主机?
发布于 2018-08-23 13:50:43
根据这个最佳做法员额,您的文件将如下所示
文件:test
[webservers]
web1
web2
web3
[mysqlservers]
db1
db2
db3
[lamp]
lamp1
lamp2
lamp3
[misc]
host1
host2
[all:children]
misc
webservers
mysqlservers
lamp
[webservers:children]
lamp
[mysqlservers:children]
lamp您可以使用ansible-inventory分析您的文件:
ansible-inventory --inventory-file=./test --list{
"_meta": {
"hostvars": {
"db1": {},
"db2": {},
"db3": {},
"host1": {},
"host2": {},
"lamp1": {},
"lamp2": {},
"lamp3": {},
"web1": {},
"web2": {},
"web3": {}
}
},
"all": {
"children": [
"lamp",
"misc",
"mysqlservers",
"ungrouped",
"webservers"
]
},
"lamp": {
"hosts": [
"lamp1",
"lamp2",
"lamp3"
]
},
"misc": {
"hosts": [
"host1",
"host2"
]
},
"mysqlservers": {
"children": [
"lamp"
],
"hosts": [
"db1",
"db2",
"db3"
]
},
"ungrouped": {},
"webservers": {
"children": [
"lamp"
],
"hosts": [
"web1",
"web2",
"web3"
]
}
}https://devops.stackexchange.com/questions/4784
复制相似问题