0
Ansible版本:1.9.2Ansible add_host未添加到主機文件
我正在運行一個將啓動EC2實例的操作手冊。我擁有包含所有變量的site.yml,並使用角色啓動EC2實例。下面是該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選項運行main.yml,這是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文件,它沒有被修改。我確保將[group_name]包含在hosts文件中。在運行過程中沒有錯誤,不知道爲什麼它沒有被添加到文件中。
在此頁面上有一個'add_host'示例:http://docs.ansible.com/ec2_module.html 而不是名稱和組,它們使用主機名,組名(我認爲它是舊的)。我也嘗試過這些。不知道我錯過了什麼。
Gotcha - 我也可以使用lineinfile模塊,對嗎? – nocode
lineinfile模塊爲我工作。謝謝(你的)信息! – nocode
對於下一個來這裏的人:這裏是文檔:http://docs.ansible.com/ansible/add_host_module.html。閱讀標題。另外,考慮到最好的做法是利用動態庫存與博託因此修改主機配置文件沒有多大意義。 – einarc