Это игра, которую я пытаюсь запустить.Сфера применения add_host
---
# ansible/site.yml
- hosts: localhost
gather_facts: yes
connection: local
sudo: no
roles:
- ec2
- hosts: ec2hosts
gather_facts: yes
user: ubuntu
roles:
- supervisor
Вот часть роли ec2.
---
# ansible/roles/ec2/main.yml
# Provision EC2 instances
# ...
register: ec2
- name: Add EC2 instances to host groups
add_host: hostname={{ item.public_ip }} groups=ec2hosts
with_items: ec2.instances
Первая часть работает отлично, и хозяева, кажется, быть добавлены правильно, но как только он попадает в следующей игре (установка супервизора на вновь созданном ec2hosts
), это дает мне skipping: no hosts matched
.
Итак, почему моя основная playbook не распознает группу хостов, которая была создана во время первой игры?
Edit:
Хосты файл. Нужно ли объявлять здесь группу хостов, чтобы она была доступна на глобальном уровне? Я попытался удалить строку [ec2hosts]
, а также запустить, не указав это как файл инвентаря.
# inventory/hosts
[local]
localhost
[ec2hosts]
Забегая:
ansible-playbook -i ansible/inventory/hosts ansible/site.yml -vvv
Соответствующий выход:
...
TASK [ec2 : Add EC2 instances to host groups] ***************************
PLAY *******************************************************************
skipping: no hosts matched
PLAY RECAP **************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0
Какую версию вы используете? – Petro026
Отдел развития, поэтому> 2 –
То, что вы делаете, должно работать. Можете ли вы опубликовать, как вы работаете из командной строки? Имеется ли в вашем инвентаре существующая группа ec2hosts? Можете ли вы опубликовать вывод с помощью -vvvv? – Petro026