首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible YAML清单-所有属于其他组成员的组

Ansible YAML清单-所有属于其他组成员的组
EN

DevOps用户
提问于 2018-08-19 11:19:42
回答 1查看 1.3K关注 0票数 2

情况:

我有一个“网络服务器”组,我把所有的网络服务器都放进去了。以及数据库服务器的组“mysqlserver”。

现在我也管理一些LAMP服务器,我希望它们始终是webserver和mysqlserver组的一部分,并在一个组"lamp“中管理它们。

这是我的方法:

代码语言:javascript
复制
---
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“的子组,并将其引用为指定组的子组而不重复主机?

EN

回答 1

DevOps用户

发布于 2018-08-23 13:50:43

根据这个最佳做法员额,您的文件将如下所示

文件:test

代码语言:javascript
复制
[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分析您的文件:

代码语言:javascript
复制
ansible-inventory --inventory-file=./test --list

输出:

代码语言:javascript
复制
{
    "_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"
        ]
    }
}
票数 4
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/4784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档