SturmB icon

DigitalOcean Provisioning

SturmB | PRO | 10/16/20 03:25:37 PM UTC (Edited) | 0 ⭐ | 909 👁️ | Never ⏰ | []
YAML |

1.89 KB

|

None

|

0 👍

/

0 👎

# inventories/group_vars/all/vars.yml
[...]
web_root: /var/www/html
do_droplets:
  - short_name: <short name here>
    long_name: <long name here>
    domain: <domain name here>
    d_index: DirectoryIndex default.htm index.php index.html
    doc_root: "{{ web_root }}/public"
    framework: laravel
  - short_name: <another short name here>
    [...]
[...]
 
# playbooks/provision.yml
---
- name: Provision the droplets
  hosts: localhost
  tags:
    - droplet
    - laravel
  connection: local
  gather_facts: false
 
  tasks:
    - name: Ensure droplets exist
      digital_ocean_droplet:
        oauth_token: "{{ lookup('env', 'DO_API_TOKEN') }}"
        state: present
        name: "{{ item.short_name | mandatory }}-01"
        backups: yes
        private_networking: yes
        size: s-1vcpu-1gb
        image: lamp-20-04
        region: nyc3
        ipv6: yes
        ssh_keys: <hidden>
        unique_name: yes
        wait: yes
        wait_timeout: 300
        tags:
          - "{{ item.short_name | mandatory }}"
      loop: "{{ do_droplets }}"
      register: droplet
 
    - name: Add new hosts to inventory
      add_host:
        name: "{{ item.data.droplet.name | mandatory }}"
        ansible_host: "{{ item.data.ip_address | mandatory }}"
        groups:
          - do
          - do_{{ item.item.short_name | mandatory }}
          - "{{ item.item.framework | default('static_html') }}"
        short_name: "{{ item.item.short_name | mandatory }}"
        long_name: "{{ item.item.long_name | default('') }}"
        domain: "{{ item.item.domain | mandatory }}"
        d_index: "{{ item.item.d_index | default('') }}"
        doc_root: "{{ item.item.doc_root | default('/var/www/html') }}"
      when: item.data is defined
      changed_when: false
      loop: "{{ droplet.results }}"
      loop_control:
        label: "{{ item.data.droplet.name }}"
 

Comments