如何在 Ansible 剧本中为不同的主机定义不同的变量?

如何在 Ansible 剧本中为不同的主机定义不同的变量?

是否可以为不同的主机定义不同的变量?例如:

- hosts:
    server_a:
      var_a: "xxx"
    server_b:
      var_a: "yyy"
  roles:
    - some_role

答案1

主机(和组)变量不存储在剧本中。它们单独存储在清单文件本身中,或存储在目录中的文件中host_varsgroup_vars与清单文件相关的文件中。这些文件以包含变量的主机或组命名。

组织主机和组变量在 Ansible 文档中了解有关变量文件的更完整描述。

答案2

我发现的最好的信息是:

- hosts:
    - server_a (or a group of hosts)
    - server_b
  roles:
    - some_role
  vars:
    var_a: |
      {{
        {
          'server_a_ip': [
            'xxx'
          ],
          'server_b_ip': [
            'yyy'
          ]
        }[inventory_hostname]
      }}

相关内容