2

我想创建一个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"

我是根据文档中提供的示例编写这本剧本,我假设launched它是一个变量,但看起来不是。

有谁知道如何做到这一点?

4

1 回答 1

2

您缺少示例剧本中的“add_hosts”模块调用:

- name: add_host hostname={{ item.public_ip }} groupname=new_instances

这会将新启动的主机添加到名为“new_instances”的组中。对于您的示例,将其更改为“已启动”。

http://docs.ansible.com/guide_gce.html

希望这可以帮助!

-蒂姆

于 2014-05-04T16:11:46.180 回答