2016-09-01 3 views
2

моя нижепользованная игра (2.1.1.0) бросает ошибку «пропуская: нет хостов» при игре для хоста [ec2-test]. В файле ansible hosts добавлен fqdn вновь созданного экземпляра. Это нормально, если я снова запустил свою пьесу. но первый раз подряд не проливает хозяевам согласованную ошибку :(получение «пропусков: без хостов совпадающих» с незанятой книжкой

мой сборник пьес:

--- 
- name: Provision an EC2 instance 
    hosts: localhost 
    connection: local 
    gather_facts: no 
    become: False 
    vars_files: 
    - awsdetails.yml 
    tasks: 
    - name: Launch the new EC2 Instance 
     ec2: 
     aws_access_key: "{{ aws_id }}" 
     aws_secret_key: "{{ aws_key }}" 
     group_id: "{{ security_group_id }}" 
     instance_type: "{{ instance_type }}" 
     image: "{{ image }}" 
     key_name: "{{ ssh_keyname }}" 
     wait: yes 
     region: "{{ region }}" 
     count: 1 
     register: ec2 
    - name: Update the ansible hosts file with new IP address 
     local_action: lineinfile dest="/etc/ansible/hosts" regexp={{ item.dns_name }} insertafter='\[ec2-test\]'line="{{item.dns_name}} ansible_ssh_private_key_file=/etc/ansible/e2-key-file.pem ansible_user=ec2-user" 
     with_items: ec2.instances 
    - name: Wait for SSH to come up 
     wait_for: host={{ item.public_dns_name }} port=22 delay=60 timeout=320 state=started 
     with_items: ec2.instances 
- name: playing ec2-test instances 
    hosts: ec2-test 
    gather_facts: no 

мой файл хостов имеет эти запасы

[localhost] 
localhost 
.... 
[ec2-test] 
ec2-54-244-180-186.us-west-2.compute.amazonaws.com 

Любая идея, почему я получаю пропуск: нет хостов совпадающая ошибка при появлении здесь? любая помощь была бы принята с благодарностью

ответ

0

Кажется, что Ansible читает файл инвентаризации только один раз и не обновляет его после добавления записи в него во время выполнения игры. Следовательно, он не может добавить недавно добавленный хост.

Чтобы исправить это, вы можете заставить анзибль к refresh the entire inventory с ниже задачей, выполняемой после обновления файла инвентаризации:

- name: Refresh inventory to ensure new instaces exist in inventory 
    meta: refresh_inventory 

или вы можете не обновления файла инвентаризация на все и использовать add_host задачи вместо :

- add_host: 
    name: "{{ item.dns_name }}" 
    groups: ec2-test 
    with_items: ec2.instances 

 Смежные вопросы

  • Нет связанных вопросов^_^