我想创建一个gce instance
,然后针对它运行一组任务。
我有以下剧本:
- name: Create instances
hosts: localhost
tasks:
- name: Launch instances
local_action: gce instance_names=queue
machine_type=f1-micro
image=debian-7
zone=europe-west1-a
tags=queue
register: gce
- name: Wait for SSH to come up
local_action: wait_for host="{{ item.public_ip }}"
port=22
delay=10
timeout=60
state=started
with_items: "{{ gce.instance_data }}"
- name: Configure instances
hosts: launched
sudo: True
roles:
- my_role_1
- my_role_1
第一个任务(创建实例)工作正常,但当它到达Configure instances
时,我得到了
"skipping: no hosts matched"
我基于docs中提供的示例制作此剧本,我认为launched
是一个变量,但看起来并非如此。
有谁知道怎么做?
答案 0 :(得分:2)
你错过了" add_hosts"来自示例剧本的模块调用:
- name: add_host hostname={{ item.public_ip }} groupname=new_instances
这会将新启动的主机添加到名为" new_instances"的组中。将其更改为"已启动"为你的例子。
http://docs.ansible.com/guide_gce.html
希望这有帮助!
-Tim