如何为一个组中的所有主机设置common ansible_user?

How to set common ansible_user to all hosts in a group?

有谁知道 ansible 是否允许用户在一个组中的所有主机上共享相同的 ansible_user 设置?此功能在使用某些云计算平台(例如 OpenStack)时特别有用,它使用户能够启动共享相同配置(例如用户帐户和 SSH 密钥)的多个实例。

您可以配置几个行为参数来修改 Ansible 连接到主机的方式。其中有 ansible_user 变量。您可以根据 host pr group 设置它。您还可以在 all 主机组下定义一个通用 ansible_user 变量,您可以在 grouphost 级别覆盖它。

如果您只在一个 hosts.yml 文件中编写清单,您可以这样做:

all:
  children:
    ubuntu_linux:
      hosts:
        ubuntu_linux_1:
        ubuntu_linux_2:
    aws_linux:
      hosts:
        aws_linux_host_1:
        aws_linux_host_2:
        aws_linux_host_3:
      vars:
        ansible_user: ec2-user
  vars:
    ansible_host: ubuntu

而且,如果您使用目录创建库存,您可以在 ./inventory/group/vars.yml 文件中设置它。

查看 Ansible 文档的 "Connecting to hosts: behavioral inventory parameters" 部分,了解您可以配置的其他参数。

希望对你有帮助