spawn-bbb-droplet/devops/spawn_droplet.yml

47 lines
1.9 KiB
YAML

---
- hosts: localhost
gather_facts: false
connection: local
vars:
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
# Create a droplet with ssh key
# The ssh key id can be passed as argument at the creation of a droplet (see ssh_key_ids).
# Several keys can be added to ssh_key_ids as id1,id2,id3
# The keys are used to connect as root to the droplet.
tasks:
# - name: Create SSH key
# community.digitalocean.digital_ocean_sshkey:
# oauth_token: "{{ oauth_token }}"
# name: spawnkey
# ssh_pub_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOsnpwZF3FI1wlYwCM0JmO1X4N13JUspUuLUVs3BEcec1X1pa+qEgq3B3C/sPzbSCk0uXTFVpgIzyOqDpyY6BvwV2pebSucHDt26h5W3Z8vAmbpjB4ylGeg+D8K5PJBzI6FH1Ln8vVtQ5gCm0qE/i3jTfedG9E0QkkkFmfJRlUyo6YGJcH3EMiiCwfhfEbW4Ys2Q3Wd7p/kxefWTxQFghmz3Na8WLSPlflgRtex426JD4lIJuUCxleklqfgSM7Y0op6f4UVX1j5OgBn24Mjmj0VDLkKuHIR/ic39/ptl1E+vZ/c/27Lq1upsBf7pkhngvpvUE5HKO9MbsFaKM2jvhB email@mfowler.info"
# state: present
# register: spawnkey
#
# - name: Create SSH key
# ansible.builtin.debug:
# msg: |
# Key ID is "{{ spawnkey.data.ssh_key.id }}"
- name: Create a new Droplet
community.digitalocean.digital_ocean_droplet:
oauth_token: "{{ oauth_token }}"
state: present
name: mydroplet
unique_name: true
size: s-1vcpu-1gb
region: sfo3
image: ubuntu-20-04-x64
wait_timeout: 500
ssh_keys:
- "30840574"
register: my_droplet
- name: Show Droplet info
ansible.builtin.debug:
msg: |
Droplet ID is {{ my_droplet.data.droplet.id }}
First Public IPv4 is {{ (my_droplet.data.droplet.networks.v4 | selectattr('type', 'equalto', 'public')).0.ip_address | default('<none>', true) }}
First Private IPv4 is {{ (my_droplet.data.droplet.networks.v4 | selectattr('type', 'equalto', 'private')).0.ip_address | default('<none>', true) }}