Digitalocean Ansible视图注册变量



我正在尝试使用Ansible向上投掷Digitalocean液滴。这应该使我能够使一切都很好,并且基础架构为代码。我已经尝试了动态库存插件,但这还不是我目前的追求。

- name: Add droplet
  digital_ocean: >
    state=present
    command=droplet
    name={{ item.key }}
    size_id=512mb
    region_id=ams2
    image_id={{ item.value.image_id }}
    ssh_key_ids={{ my_ssh_key.ssh_key.id }}
    unique_name=yes
  with_dict: "{{ droplets_up }}"
  register: my_droplet
- debug: msg="Droplet ID is {{ my_droplet.droplet.id }}"

不必担心所有变量 - 但是,液滴按预期出现,但是,调试步骤失败了:

致命:[Localhost]:失败!=> {"失败":true," msg":"字段'args'具有无效的值,该值似乎包括一个未定义的变量。错误是:'dict object'没有属性'droplet' n n错误似乎已在'/users/jerry/free_code/d-ocean/ansible/roles/roles/roles/roles/tropletctl/tasks/main.yml':第23行,第3列,但可以取决于文件中其他位置的其他位置。确切的语法问题。 n n有问题的线似乎是: n n n n- debug:msg = '滴iD is {{my_droplet.droplet.id}}} n n ^ n ^这里 nwe可能是错误的,但是这个看起来可能是 nmissing Quotes的问题。当它们 nstart一个值时,总是引用模板表达式。例如: n n with_items: n-以_items的形式写为: n n: n- " {{foo}}} " n"}

但是,如果我以冗长的模式运行该游戏,我可以看到该变量应该存在。一个非常类似的示例在Ansible模块文档页面上使用,因此我认为它应该起作用。

只是为了关闭它,"向下钻入"调试输出的详细输出的方式如下:

- name: Print droplets variable
  debug:
    msg: "{{ my_droplet.results | map(attribute='droplet.<variable you'd like to print>') | list }}"

..在哪里ip_address

最新更新