gpt4 book ai didi

Ansible 分离主机,group_vars 和 host_vars

转载 作者:行者123 更新时间:2023-12-04 08:43:07 25 4
gpt4 key购买 nike

我需要将一些 YAML 格式的文件从一个“大” yml 更改为几个较小的文件。不幸的是,我不知道哪个部分属于哪里。例如,我有以下 .yml:

all:
hosts:
station01:
dns_name: localhost
ansible_host: localhost
work01:
dns_name: X.X.X.X
ansible_host: Y.Y.Y.Y
vars:
yum_proxy: false
zabbix_proxy_ip: A.A.A.A
yum_proxy_ip:
dns_servers:
- B.B.B.B
- C.C.C.C
timezone: XXX
ntp_servers:
- D.D.D.D
disable_firewall_tasks: true

children:
deploy:
hosts:
station01:
linux:
hosts:
work01:
work_users:
hosts:
work01:
vars:
users:
- john: user
- mike: user
我相信 hosts 文件应该是这样的:
all:
hosts:
station01
work01

children:
deploy:
hosts:
station01:
linux:
hosts:
work01:
work_users:
hosts:
work01:
group_vars "all.yml"看起来像这样,我猜:
---
all:
yum_proxy: false
zabbix_proxy_ip: A.A.A.A
yum_proxy_ip:
dns_servers:
- B.B.B.B
- C.C.C.C
timezone: XXX
ntp_servers:
- D.D.D.D
disable_firewall_tasks: true
这就是问题开始的地方。我不知道把“用户:”放在哪里。它应该在分配给一台主机的 host_vars "work01.yml"中,如下所示:
---
work01:
dns_name: X.X.X.X
ansible_host: Y.Y.Y.Y
users:
- john: user
- mike: user
或者它应该包含在名为“work_users.yml”的 group_vars 文件中?
---
users:
- john: user
- mike: user
文件 host_vars 和 group_vars 应该是什么样的?任何形式的帮助将不胜感激。

最佳答案

问: “host_vars 和 group_vars 文件应该是什么样的?”
A:关于如何命名和组织目录和文件有更多选择。见 Organizing host and group variables .
以相应组和主机名命名的文件
下面是将变量放入以相应组和主机名命名的文件中的示例

shell> cat group_vars/all.yml
---
yum_proxy: false
zabbix_proxy_ip: A.A.A.A
yum_proxy_ip:
dns_servers:
- B.B.B.B
- C.C.C.C
timezone: XXX
ntp_servers:
- D.D.D.D
disable_firewall_tasks: true
shell> cat group_vars/work_users.yml
---
users:
- john: user
- mike: user
shell> cat host_vars/work01.yml
---
dns_name: X.X.X.X
ansible_host: Y.Y.Y.Y
shell> cat host_vars/station01.yml
---
dns_name: localhost
ansible_host: localhost

以相应的组和主机名命名的目录中的文件
下一个选项是将变量放入以相应组和主机名命名的目录内的文件中
shell> cat group_vars/all/network.yml
---
yum_proxy: false
zabbix_proxy_ip: A.A.A.A
yum_proxy_ip:
dns_servers:
- B.B.B.B
- C.C.C.C
timezone: XXX
ntp_servers:
- D.D.D.D
disable_firewall_tasks: true
shell> cat group_vars/work_users/users.yml
---
users:
- john: user
- mike: user
shell> cat host_vars/work01/network.yml
---
dns_name: X.X.X.X
ansible_host: Y.Y.Y.Y
shell> cat host_vars/station01/network.yml
---
dns_name: localhost
ansible_host: localhost

关于Ansible 分离主机,group_vars 和 host_vars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64466429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com