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.
59 lines
2.0 KiB
YAML
59 lines
2.0 KiB
YAML
---
|
|
- name: Include prompts
|
|
import_tasks: prompts.yml
|
|
|
|
- block:
|
|
- name: Creating a firewall group
|
|
vultr.cloud.firewall_group:
|
|
name: "{{ algo_server_name }}"
|
|
|
|
- name: Creating firewall rules
|
|
vultr.cloud.firewall_rule:
|
|
group: "{{ algo_server_name }}"
|
|
protocol: "{{ item.protocol }}"
|
|
port: "{{ item.port }}"
|
|
ip_type: "{{ item.ip }}"
|
|
subnet: "{{ item.cidr.split('/')[0] }}"
|
|
subnet_size: "{{ item.cidr.split('/')[1] }}"
|
|
with_items:
|
|
- { protocol: tcp, port: "{{ ssh_port }}", ip: v4, cidr: 0.0.0.0/0 }
|
|
- { protocol: tcp, port: "{{ ssh_port }}", ip: v6, cidr: "::/0" }
|
|
- { protocol: udp, port: 500, ip: v4, cidr: 0.0.0.0/0 }
|
|
- { protocol: udp, port: 500, ip: v6, cidr: "::/0" }
|
|
- { protocol: udp, port: 4500, ip: v4, cidr: 0.0.0.0/0 }
|
|
- { protocol: udp, port: 4500, ip: v6, cidr: "::/0" }
|
|
- { protocol: udp, port: "{{ wireguard_port }}", ip: v4, cidr: 0.0.0.0/0 }
|
|
- { protocol: udp, port: "{{ wireguard_port }}", ip: v6, cidr: "::/0" }
|
|
|
|
- name: Upload the startup script
|
|
vultr.cloud.startup_script:
|
|
name: algo-startup
|
|
script: |
|
|
{{ lookup('template', 'files/cloud-init/base.yml') }}
|
|
|
|
- name: Creating a server
|
|
vultr.cloud.instance:
|
|
name: "{{ algo_server_name }}"
|
|
startup_script: algo-startup
|
|
hostname: "{{ algo_server_name }}"
|
|
os: "{{ cloud_providers.vultr.os }}"
|
|
plan: "{{ cloud_providers.vultr.size }}"
|
|
region: "{{ algo_vultr_region }}"
|
|
firewall_group: "{{ algo_server_name }}"
|
|
state: started
|
|
tags:
|
|
- Environment:Algo
|
|
enable_ipv6: true
|
|
backups: false
|
|
activation_email: false
|
|
register: vultr_server
|
|
|
|
- set_fact:
|
|
cloud_instance_ip: "{{ vultr_server.vultr_instance.main_ip }}"
|
|
ansible_ssh_user: algo
|
|
ansible_ssh_port: "{{ ssh_port }}"
|
|
cloudinit: true
|
|
|
|
environment:
|
|
VULTR_API_KEY: "{{ lookup('ini', 'key', section='default', file=algo_vultr_config) }}"
|