Ansible > 在清单中托管的别名

Sno*_*ash 2 inventory ansible

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

[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
Run Code Online (Sandbox Code Playgroud)

是否可以为该主机设置别名?

如果我使用这个:

[localvm]
127.0.0.1 ansible_user=root ansible_ssh_pass=somepassword

[webserver]
localvm   

[dbserver]
localvm   

[storageserver]
localvm   
Run Code Online (Sandbox Code Playgroud)

我明白了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   
Run Code Online (Sandbox Code Playgroud)

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

我怎么做?

Kon*_*rov 5

如果您希望主机的清单名称与实际主机名不同,则可以使用ansible_host变量。请参阅行为清单参数列表

像这样:

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

[dbserver]
localvm

[storageserver]
localvm
Run Code Online (Sandbox Code Playgroud)

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

www1 ansible_host=10.10.10.10
db1 ansible_host=10.10.10.20

[web]
www1

[database]
db1
Run Code Online (Sandbox Code Playgroud)