mirror of https://github.com/trailofbits/algo
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.4 KiB
YAML
88 lines
2.4 KiB
YAML
8 years ago
|
- name: Configure the server and install required software
|
||
|
hosts: localhost
|
||
|
|
||
|
vars:
|
||
|
regions:
|
||
|
"1": "ams2"
|
||
|
"2": "ams3"
|
||
|
"3": "fra1"
|
||
|
"4": "lon1"
|
||
|
"5": "nyc1"
|
||
|
"6": "nyc2"
|
||
|
"7": "nyc3"
|
||
|
"8": "sfo1"
|
||
8 years ago
|
"9": "sfo2"
|
||
|
"10": "sgp1"
|
||
|
"11": "tor1"
|
||
8 years ago
|
|
||
|
vars_prompt:
|
||
|
- name: "do_access_token"
|
||
|
prompt: "Enter your API Token (https://cloud.digitalocean.com/settings/api/tokens):\n"
|
||
|
private: yes
|
||
|
|
||
|
- name: "do_ssh_name"
|
||
|
prompt: "Enter a valid SSH key name (https://cloud.digitalocean.com/settings/security):\n"
|
||
|
private: no
|
||
|
|
||
|
- name: "do_region"
|
||
|
prompt: >
|
||
|
What region should the server be located in?
|
||
|
1. Amsterdam (Datacenter 2)
|
||
|
2. Amsterdam (Datacenter 3)
|
||
|
3. Frankfurt
|
||
|
4. London
|
||
|
5. New York (Datacenter 1)
|
||
|
6. New York (Datacenter 2)
|
||
|
7. New York (Datacenter 3)
|
||
8 years ago
|
8. San Francisco (Datacenter 1)
|
||
|
9. San Francisco (Datacenter 2)
|
||
|
10. Singapore
|
||
|
11. Toronto
|
||
8 years ago
|
Please choose the number of your region. Press enter for default (#7) region.
|
||
|
default: "7"
|
||
|
private: no
|
||
|
|
||
8 years ago
|
- name: "do_server_name"
|
||
|
prompt: "Name the vpn server:\n"
|
||
8 years ago
|
default: "strongswan.local"
|
||
8 years ago
|
private: no
|
||
8 years ago
|
|
||
|
- name: "service_dns"
|
||
|
prompt: "Do you want to use DNS resolver on the new server to block ads and malware while surfing? (Y or N)\nIf your choice is 'N', DNS servers will set to values from the dns_servers variable.\n"
|
||
|
default: "Y"
|
||
|
private: no
|
||
8 years ago
|
|
||
|
tasks:
|
||
|
- name: "Getting your SSH key ID on Digital Ocean..."
|
||
|
digital_ocean:
|
||
|
state: present
|
||
|
command: ssh
|
||
|
name: "{{ do_ssh_name }}"
|
||
|
api_token: "{{ do_access_token }}"
|
||
|
register: do_ssh_key
|
||
|
|
||
|
- name: "Creating a droplet..."
|
||
|
digital_ocean:
|
||
|
state: present
|
||
|
command: droplet
|
||
8 years ago
|
name: "{{ do_server_name }}"
|
||
8 years ago
|
region_id: "{{ regions[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 }}"
|
||
|
register: do
|
||
|
|
||
|
- name: Add the droplet to an inventory group
|
||
|
add_host:
|
||
|
name: "{{ do.droplet.ip_address }}"
|
||
|
groups: vpn-host
|
||
8 years ago
|
ansible_ssh_user: root
|
||
8 years ago
|
ansible_python_interpreter: "/usr/bin/python2.7"
|
||
|
|
||
8 years ago
|
- name: Wait for SSH to become available
|
||
8 years ago
|
local_action: "wait_for port=22 host={{ do.droplet.ip_address }} timeout=320"
|
||
8 years ago
|
|
||
8 years ago
|
|