From dfb1cbc28290ee3b98d849b85586c645d22b6c5d Mon Sep 17 00:00:00 2001 From: Jack Ivanov Date: Sun, 5 Mar 2017 23:38:15 +0300 Subject: [PATCH] DigitalOcean dynamic inventory --- roles/cloud-digitalocean/tasks/main.yml | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/roles/cloud-digitalocean/tasks/main.yml b/roles/cloud-digitalocean/tasks/main.yml index a4002bd..b91d19b 100644 --- a/roles/cloud-digitalocean/tasks/main.yml +++ b/roles/cloud-digitalocean/tasks/main.yml @@ -67,3 +67,36 @@ - set_fact: cloud_instance_ip: "{{ do.droplet.ip_address }}" + +- name: Tag the groplet + digital_ocean_tag: + name: "Environment:Algo" + resource_id: "{{ do.droplet.id }}" + api_token: "{{ do_access_token }}" + state: present + +- name: Get droplets + uri: + url: "https://api.digitalocean.com/v2/droplets?tag_name=Environment:Algo" + method: GET + status_code: 200 + headers: + Content-Type: "application/json" + Authorization: "Bearer {{ do_access_token }}" + register: do_droplets + +- name: Ensure the group ec2 exists in the dynamic inventory file + lineinfile: + state: present + dest: configs/inventory.dynamic + line: '[digitalocean]' + +- name: Populate the dynamic inventory + lineinfile: + state: present + dest: configs/inventory.dynamic + insertafter: '\[digitalocean\]' + regexp: "^{{ item.networks.v4[0].ip_address }}.*" + line: "{{ item.networks.v4[0].ip_address }}" + with_items: + - "{{ do_droplets.json.droplets }}"