因此,首先,我可能遗漏了一些非常简单的东西,我就是看不到它。我正在尝试使用ansible pull与aws_ec2 inventory pluggin一起在使用包装器的EC2实例上运行。我有以下清单文件:
plugin: aws_ec2
regions:
- eu-west-1
- eu-west-2
keyed_groups:
- key: tags['role']
prefix: enc
filters:
instance-state-name: running
tag:ami: "true当我运行ansible-inventory -i /tmp/ansible/inventories/dev/ami_inventory_aws_ec2.yml --list时,我得到了以下组:
"all": {
"children": [
"aws_ec2",
"enc_web",
"ungrouped"
]
},
"aws_ec2": {
"hosts": [
"ip-10-93-66-209.eu-west-1.compute.internal"
]
},
"enc_web": {
"hosts": [
"ip-10-93-66-209.eu-west-1.compute.internal"
]
}这正是我期望看到的。然后,在我的行动手册中,我有以下几点:
---
- import_playbook: bootstrap.yml
- hosts: enc_web
gather_facts: True
roles:
- name: enc.base
....在这一点上,我本以为无论是否使用--limit enc_web ansible,运行ansible-pull或ansible-playblook都会匹配组名并运行,但是我得到了
[WARNING]: Could not match supplied host pattern, ignoring: ami-aws-web-01
ERROR! Specified hosts and/or --limit does not match any hosts我是不是遗漏了一些非常基本的东西?它是否应该针对该组名中的所有主机运行?
我完整的ansible命令是:
ansible-pull --url=git@bitbucket.org:XXXXX/ansible.git --accept-host-key --directory=/tmp/ansible --full --checkout=web --private-key=/home/ubuntu/.ssh/ansible/ansible -e ami=true -e region=eu-west-1 --vault-password-file=~/.ssh/ansible/dev --inventory-file=/tmp/ansible/inventories/dev/ami_inventory_aws_ec2.yml playbooks/web.yml --limit enc_web发布于 2020-05-17 02:15:51
已将清单文件更改为:
plugin: aws_ec2
regions:
- eu-west-1
- eu-west-2
keyed_groups:
- key: tags['role']
prefix: enc
filters:
instance-state-name: running
tag:ami: "true"
hostnames:
- tag:Name然后将主机名设置为需要匹配的名称。
https://stackoverflow.com/questions/61837817
复制相似问题