我需要使用多个托管服务器来更新Yaml广告资源,并对每个服务器应用不同的变量。当前的yaml结构每个域只有一个管理服务器。
MaterialApp
因此域1和2下的ansible_host是管理服务器。现在,我想在每个域下添加多个托管服务器,并且仍然可以根据需要灵活地为每个服务器(管理员和托管)分配不同的变量值。
答案 0 :(得分:1)
您应该深入了解yaml inventory documentation,以了解其结构。恕我直言,对于初学者来说,它们比历史上的库存更复杂。无论如何,您应该先对all the inventory concepts有所了解
您应如何阅读当前库存文件:
通用组all
声明:
localhost
targets
的孩子组,其中两个主机分别名为Domain1
和Domain2
根据您的问题,我了解您希望将Domain1和Domain2视为组(顾名思义),而不是作为主机。
您可能必须像下面那样重写库存。
all:
children:
targets:
vars:
admin_url: "t3://{{ inventory_hostname }}"
children:
Domain1:
hosts:
www.example1.com:
www.example2.com:
www.yetanother.com:
Domain2:
hosts:
host1.domain2.com:
host2.domain2.com:
host3.domain2.com:
注意事项:
targets
。由于所有管理员地址的格式都相同,因此我为该组声明了一个变量,该变量将用于使用其inventory_hostname
(请参阅ansible magic variables)的每个主机targets
组现在有两个子组:Domain1
和Domain2
都声明了其宿主。希望这会帮助您入门。