Я написал полезную задачу для создания экземпляра ec2 и добавления хоста в качестве динамического хоста. Задача отлично работает и создала экземпляр, но я не могу получить информацию о экземпляре.Ansible EC2 Module не извлекает информацию об экземпляре
Моя версия анзибль: 2.2.0.0/Ubuntu 14,04
Вот мой код
- name: launch ec2 instance for QA
local_action:
module: ec2
key_name: "{{ ec2_keypair }}"
group: "{{ ec2_security_group }}"
instance_type: "{{ ec2_instance_type }}"
image: "{{ ec2_image }}"
vpc_subnet_id: "{{ ec2_subnet_ids }}"
region: "{{ ec2_region }}"
instance_tags: '{"Name":"{{ec2_tag_Name}}","Type":"{{ec2_tag_Type}}","Environment":"{{ec2_tag_Environment}}"}'
assign_public_ip: yes
wait: true
count: 1
register: ec2
- debug: var=item
with_items: ec2.instances
- add_host: name={{ item.public_ip }} >
groups=dynamically_created_hosts
with_items: ec2.instances
- name: Wait for the instances to boot by checking the ssh port
wait_for: host={{item.public_ip}} port=22 delay=60 timeout=320 state=started
with_items: ec2.instances
Вывод, что я получаю:
ЗАДАЧА [запуск ec2 экземпляра для QA] **********************************************
изменен: [localhost -> localhost]ЗАДАЧА [отладка] ********************************************* **********************
ОК: [localhost] => (item = ec2.instances) => { "item": "ec2.instances " }ЗАДАЧА [add_host] *************************************** *************************
фатальный: [localhost]: FAILED! => {"failed": true, "msg": "поле" args "имеет недопустимое значение, которое, как представляется, содержит неопределенную переменную. Ошибка:« unicode object »не имеет атрибута public_ip '\ n \ nПроблема, похоже, находилась в '/var/lib/jenkins/jobs/QA/workspace/dynamic-ec2.yml': строка 37, столбец 7, но может \ n быть в другом месте в файле в зависимости от конкретной проблемы синтаксиса. \ n \ nСогласная строка выглядит так: \ n \ n \ n - add_host: name = {{item.public_ip}}> \ n^здесь \ nМы можем ошибаться, но похоже, что это может быть проблемой с \ nmissing quotes Всегда указывайте скобки выражения шаблона, когда они \ nstart значение. Например: \ n \ n with_items: \ n - {{foo}} \ n \ nУдача должна быть записана как: \ n \ n with_items: \ n - \ "{{foo}} \" \ n "}
Есть ли другой способ сделать это?
@tehraf Спасибо за советы, он отлично работает. – rolindroy