Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 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 }}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement