Hi All,
It looks like I’ve stumbled across a bug with the digital_ocean module.
I’ve been following the digital ocean tutorial here, but I want to parameterise as much as possible. I’m building a role, and this is the main tasks.yml:
`
-
hosts: digitalocean
vars: -
zonomi_api_key:
-
zonomi_url: http://zonomi.com/app/dns/dyndns.jsp
-
do_url:
-
do_domain:
tasks: -
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: {{ my_droplet.droplet.ip_address }
`
The host_vars are elsewhere, but I don’t believe they’re important in this context - the droplet gets created as expected.
However, I get the following error about the “ip_address” var:
fatal: [localhost]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'dict object' has no attribute 'id'\n\nThe error appears to have been in '/my/path/digitalocean.yml': line 33, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n msg: Droplet details are {{ my_droplet }}\n - debug:\n ^ here\n"}
The official docs appear to suggest that this should work, and if I print debug output of “my_droplet” on its own, I get a dump of the variable with all its data (I won’t reprint it unless it’s required as it would take a while to go through and obfuscate any sensitive data). I would like the ability to pick out certain parts of the var (in this instance, I need the IP in order to publish it to my DNS server…
Thanks
Jerry