如何根据 aws ec2 inventory 主机名的 ip 地址访问 ansible playbook 中的主机名标签?
How to access hostname tags in ansible playbook based on aws ec2 inventory hostname's ip addresses?
我在 ansible 2.9 中使用 aws ec2 插件。我想使用私有 ip 地址连接到 aws ec2 实例,但在我的剧本中,我想显示其他主机名标签,例如主机名和区域以及相应的私有 ip 地址。关于如何在剧本中完成此任务的任何建议?
这是我的 ec2 清单:
testall.aws_ec2.yml
plugin: aws_ec2
hostnames:
- tag:Name
- tag: Region
- private-ip-address
compose:
ansible_host: private_ip_address
这是我的剧本中的内容:
test-playbook.yml
---
- hosts: "{{ variable_host | default('test')}}"
remote_user: ubuntu
become: yes
become_method: sudo
tasks:
- debug:
msg: "{{ inventory_hostname }}"
...
我运行我的剧本如下:
ansible-playbook -i testall.aws_ec2.yml test-playbook.yml --extra-vars variable_host=testall
但是,我的剧本 returns 只有 tag:Name(清单中主机名中指定的第一项):
TASK [Gathering Facts] ************************************************************************************************
ok: [test-abc-host1]
ok: [test-abc-host2]
第一个匹配项用于 inventory_hostname
,其中 hostnames
arg 的值是按优先级降序排列的列表。
来自ansible-doc --type inventory amazon.aws.aws_ec2
:
hostnames:
description:
- A list in order of precedence for hostname variables.
- You can use the options specified in U(http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html#options).
- To use tags as hostnames use the syntax tag:Name=Value to use the hostname Name_Value, or tag:Name to use the value of the Name tag.
type: list
default: []
您可以为具有模块 ec2_metadata_facts
的每个清单主机找到 further attributes。
ansible-doc amazon.aws.ec2_metadata_facts
我在 ansible 2.9 中使用 aws ec2 插件。我想使用私有 ip 地址连接到 aws ec2 实例,但在我的剧本中,我想显示其他主机名标签,例如主机名和区域以及相应的私有 ip 地址。关于如何在剧本中完成此任务的任何建议?
这是我的 ec2 清单: testall.aws_ec2.yml
plugin: aws_ec2
hostnames:
- tag:Name
- tag: Region
- private-ip-address
compose:
ansible_host: private_ip_address
这是我的剧本中的内容:
test-playbook.yml
---
- hosts: "{{ variable_host | default('test')}}"
remote_user: ubuntu
become: yes
become_method: sudo
tasks:
- debug:
msg: "{{ inventory_hostname }}"
...
我运行我的剧本如下:
ansible-playbook -i testall.aws_ec2.yml test-playbook.yml --extra-vars variable_host=testall
但是,我的剧本 returns 只有 tag:Name(清单中主机名中指定的第一项):
TASK [Gathering Facts] ************************************************************************************************
ok: [test-abc-host1]
ok: [test-abc-host2]
第一个匹配项用于 inventory_hostname
,其中 hostnames
arg 的值是按优先级降序排列的列表。
来自ansible-doc --type inventory amazon.aws.aws_ec2
:
hostnames:
description:
- A list in order of precedence for hostname variables.
- You can use the options specified in U(http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html#options).
- To use tags as hostnames use the syntax tag:Name=Value to use the hostname Name_Value, or tag:Name to use the value of the Name tag.
type: list
default: []
您可以为具有模块 ec2_metadata_facts
的每个清单主机找到 further attributes。
ansible-doc amazon.aws.ec2_metadata_facts