Skip to content

Commit

Permalink
Super simple DO role
Browse files Browse the repository at this point in the history
  • Loading branch information
nbyloff committed Jun 26, 2016
1 parent b67aae7 commit 84221e0
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 2 deletions.
9 changes: 9 additions & 0 deletions group_vars/staging/main.yml
@@ -1,2 +1,11 @@
mysql_root_password: "{{ vault_mysql_root_password }}" # Define this variable in group_vars/staging/vault.yml
sudoer_passwords: "{{ vault_sudoer_passwords }}" # Define this variable in group_vars/staging/vault.yml

do_api_token: "{{ vault_do_key }}"
do_ssh_key: https://github.com/username.keys
do_saved_ssh_key: ~/.ssh/do_id_rsa.pub
droplets:
web-1:
do_size: 512mb
do_region: nyc2
do_image: ubuntu-14-04-x64
1 change: 1 addition & 0 deletions group_vars/staging/vault.yml
@@ -1,5 +1,6 @@
# Documentation: https://roots.io/trellis/docs/vault/
vault_mysql_root_password: stagingpw
vault_do_key: digitaloceanapikey

# Documentation: https://roots.io/trellis/docs/security/
vault_sudoer_passwords:
Expand Down
7 changes: 5 additions & 2 deletions hosts/staging
Expand Up @@ -2,7 +2,10 @@
# List each machine only once per [group], even if it will host multiple sites.

[staging]
your_server_hostname
localhost ansible_connection=local

[web]
your_server_hostname
localhost ansible_connection=local

[digital_ocean]
localhost ansible_connection=local
9 changes: 9 additions & 0 deletions infrastructure.yml
@@ -0,0 +1,9 @@
---
- name: "Create server infrastructure on digitalocean.com"

hosts: digital_ocean

roles:
- digitalocean


4 changes: 4 additions & 0 deletions roles/digitalocean/defaults/main.yml
@@ -0,0 +1,4 @@
---
do_api_token: "{{ vault_do_key }}"
ssh_key: ~/.ssh/id_rsa.pub
saved_ssh_key: ~/.ssh/do_id_rsa.pub
29 changes: 29 additions & 0 deletions roles/digitalocean/tasks/main.yml
@@ -0,0 +1,29 @@
---
- name: Load SSH Public Key
get_url: url={{ do_ssh_key }} dest={{ do_saved_ssh_key }}

- name: Ensure SSH Key Exists at DigitalOcean
digital_ocean: >
state=present
command=ssh
name=roots_provisioner
ssh_pub_key={{ lookup('file', '{{ do_saved_ssh_key }}' ) }}
api_token={{ do_api_token }}
register: roots_provisioner

- name: Ensure Droplet Exists
digital_ocean: >
state=present
command=droplet
name={{ item.key }}
unique_name=yes
size_id={{ item.value.do_size }}
region_id={{ item.value.do_region }}
image_id={{ item.value.do_image }}
ssh_key_ids={{ roots_provisioner.ssh_key.id }}
api_token={{ do_api_token }}
with_dict: droplets
register: new_droplets

- debug: msg="IP is {{ item.droplet.ip_address }}"
with_items: new_droplets.results

0 comments on commit 84221e0

Please sign in to comment.