Ansible > 在清单中托管的别名

Ansible > alias to host in inventory

我有一个清单,出于测试目的,所有组都使用相同的主机:

[webserver]
127.0.0.1 ansible_user=root ansible_ssh_pass=somepassword

[dbserver]
127.0.0.1 ansible_user=root ansible_ssh_pass=somepassword

[storageserver]
127.0.0.1 ansible_user=root ansible_ssh_pass=somepassword

是否可以为该主机起别名?

如果我使用这个:

[localvm]
127.0.0.1 ansible_user=root ansible_ssh_pass=somepassword

[webserver]
localvm   

[dbserver]
localvm   

[storageserver]
localvm   

我得到 fatal: [localvm]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname localvm: Name or service not known\r\n", "unreachable": true}.

这个有效:

[localvm]
127.0.0.1 ansible_user=root ansible_ssh_pass=somepassword

[webserver:children]
localvm   

[dbserver:children]
localvm   

[storageserver:children]
localvm   

即我将 localvm 指定为一个组 (http://docs.ansible.com/ansible/latest/intro_inventory.html ),但这不是我想要做的。我想为 127.0.0.1 创建一个名为 localvm.

的别名

我该怎么做?

如果您希望主机的清单名称与实际主机名不同,您可以使用 ansible_host 变量。参见 List of Behavioral Inventory Parameters

像这样:

[webserver]
localvm ansible_host=127.0.0.1 ansible_user=root ansible_ssh_pass=somepassword

[dbserver]
localvm

[storageserver]
localvm

我经常将主机定义为未分组的条目,然后将它们添加到所需的组中,如下所示:

www1 ansible_host=10.10.10.10
db1 ansible_host=10.10.10.20

[web]
www1

[database]
db1