mirror of
https://github.com/trailofbits/algo.git
synced 2025-07-25 06:53:00 +02:00
69 lines
1.8 KiB
YAML
69 lines
1.8 KiB
YAML
- name: Set the DigitalOcean Access Token fact
|
|
set_fact:
|
|
do_token: "{{ do_access_token }}"
|
|
public_key: "{{ lookup('file', '{{ SSH_keys.public }}') }}"
|
|
|
|
- block:
|
|
- name: "Delete the existing Algo SSH keys"
|
|
digital_ocean:
|
|
state: absent
|
|
command: ssh
|
|
api_token: "{{ do_access_token }}"
|
|
name: "{{ SSH_keys.comment }}"
|
|
register: ssh_keys
|
|
until: ssh_keys.changed != true
|
|
retries: 10
|
|
delay: 1
|
|
|
|
rescue:
|
|
- name: Collect the fail error
|
|
digital_ocean:
|
|
state: absent
|
|
command: ssh
|
|
api_token: "{{ do_access_token }}"
|
|
name: "{{ SSH_keys.comment }}"
|
|
register: ssh_keys
|
|
ignore_errors: yes
|
|
|
|
- debug: var=ssh_keys
|
|
|
|
- fail:
|
|
msg: "Please, ensure that your API token is not read-only."
|
|
|
|
- name: "Upload the SSH key"
|
|
digital_ocean:
|
|
state: present
|
|
command: ssh
|
|
ssh_pub_key: "{{ public_key }}"
|
|
api_token: "{{ do_access_token }}"
|
|
name: "{{ SSH_keys.comment }}"
|
|
register: do_ssh_key
|
|
|
|
- name: "Creating a droplet..."
|
|
digital_ocean:
|
|
state: present
|
|
command: droplet
|
|
name: "{{ do_server_name }}"
|
|
region_id: "{{ do_region }}"
|
|
size_id: "512mb"
|
|
image_id: "ubuntu-16-04-x64"
|
|
ssh_key_ids: "{{ do_ssh_key.ssh_key.id }}"
|
|
unique_name: yes
|
|
api_token: "{{ do_access_token }}"
|
|
ipv6: yes
|
|
register: do
|
|
|
|
- name: Add the droplet to an inventory group
|
|
add_host:
|
|
name: "{{ do.droplet.ip_address }}"
|
|
groups: vpn-host
|
|
ansible_ssh_user: root
|
|
ansible_python_interpreter: "/usr/bin/python2.7"
|
|
ansible_ssh_private_key_file: "{{ SSH_keys.private }}"
|
|
do_access_token: "{{ do_access_token }}"
|
|
do_droplet_id: "{{ do.droplet.id }}"
|
|
cloud_provider: digitalocean
|
|
ipv6_support: true
|
|
|
|
- set_fact:
|
|
cloud_instance_ip: "{{ do.droplet.ip_address }}"
|