2015-07-10 10 views
0

Наблюдаемая версия: 1.9.2Ansible add_host не добавление в файл hosts

Я запускаю playbook, который запустит экземпляр EC2. У меня есть site.yml со всеми переменными и используйте роль для запуска экземпляра EC2. Вот main.yml для ec2_launch

--- 
- name: create EC2 instance 
    ec2: 
    key_name: "{{ keypair }}" 
    group_id: "{{ security_group }}" 
    instance_type: "{{ instance_type }}" 
    image: "{{ image }}" 
    region: "{{ region }}" 
    vpc_subnet_id: "{{ vpc_subnet_id }}" 
    assign_public_ip: yes 
    wait: True 
    instance_tags: 
     Name: "{{ instance_tag }}" 
     Environment: "{{ instance_tag2 }}" 
    exact_count: 1 
    count_tag: 
     Name: "{{ instance_tag }}" 
     Environment: "{{ instance_tag2 }}" 
    monitoring: yes 
    register: ec2 
- name: add ec2 instance to hosts 
    add_host: name={{ item.private_ip }} groups=group_name 
    with_items: ec2.instances 
- name: wait for SSH 
    wait_for: host={{ item.private_ip }} port=22 delay=60 timeout=320 state=started 
    with_items: ec2.instances 

Когда я бегу с -vvv вариант, это выход за add_hosts:

TASK: [ec2_launch | add ec2 instance to hosts] ******************************** 
creating host via 'add_host': hostname=10.50.101.93 
added host to group via add_host module: group_name 

IP-правильно и название группы является правильным, но когда Я проверяю файл ansible hosts, он не был изменен. Я обязательно включил [имя_группы] в файл hosts. Во время прогона нет ошибок и не уверен, почему он не добавляется в файл.

На этой странице есть пример 'add_host': http://docs.ansible.com/ec2_module.html вместо имени и групп они используют имя хоста, имя группы (которое, как я считаю, является старым). Я тоже пробовал. Не уверен, что мне не хватает.

ответ

6

Задача add_hostне добавить ее в файл хоста, она добавляет ее в список хостов в памяти.

Добавление в файл hosts не будет работать во всех случаях - например, пользователи AWS часто используют сценарий ./ec2.py, который является двоичным исполняемым файлом, который заменяет их файл на основе текстовых файлов.

+0

Gotcha - Я мог бы также использовать модуль lineinfile, правильно? – nocode

+0

модуль lineinfile работал для меня. Спасибо за информацию! – nocode

+0

Для следующего человека, который приходит сюда: Вот документация: http://docs.ansible.com/ansible/add_host_module.html. ПРОЧИТАЙТЕ название. Также учтите, что наилучшей практикой является использование Dynamic Inventory с Boto, поэтому изменение файла конфигурации хостов не имеет большого смысла. – einarc

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

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