mirror of
https://github.com/trailofbits/algo.git
synced 2025-04-11 11:47:08 +02:00
62 lines
2.1 KiB
YAML
62 lines
2.1 KiB
YAML
- block:
|
|
- name: Build python virtual environment
|
|
import_tasks: venv.yml
|
|
|
|
- block:
|
|
- name: Include prompts
|
|
import_tasks: prompts.yml
|
|
|
|
- name: Network configured
|
|
gce_net:
|
|
name: "algo-net-{{ algo_server_name }}"
|
|
fwname: "algo-net-{{ algo_server_name }}-fw"
|
|
allowed: "udp:500,4500,{{ wireguard_port }};tcp:22"
|
|
state: "present"
|
|
mode: auto
|
|
src_range: 0.0.0.0/0
|
|
service_account_email: "{{ service_account_email }}"
|
|
credentials_file: "{{ credentials_file_path }}"
|
|
project_id: "{{ project_id }}"
|
|
|
|
- block:
|
|
- name: External IP allocated
|
|
gce_eip:
|
|
service_account_email: "{{ service_account_email }}"
|
|
credentials_file: "{{ credentials_file_path }}"
|
|
project_id: "{{ project_id }}"
|
|
name: "{{ algo_server_name }}"
|
|
region: "{{ algo_region.split('-')[0:2] | join('-') }}"
|
|
state: present
|
|
register: gce_eip
|
|
|
|
- name: Set External IP as a fact
|
|
set_fact:
|
|
external_ip: "{{ gce_eip.address }}"
|
|
when: cloud_providers.gce.external_static_ip
|
|
|
|
- name: "Creating a new instance..."
|
|
gce:
|
|
instance_names: "{{ algo_server_name }}"
|
|
zone: "{{ algo_region }}"
|
|
external_ip: "{{ external_ip | default('ephemeral') }}"
|
|
machine_type: "{{ cloud_providers.gce.size }}"
|
|
image: "{{ cloud_providers.gce.image }}"
|
|
service_account_email: "{{ service_account_email }}"
|
|
credentials_file: "{{ credentials_file_path }}"
|
|
project_id: "{{ project_id }}"
|
|
metadata: '{"ssh-keys":"ubuntu:{{ ssh_public_key_lookup }}"}'
|
|
network: "algo-net-{{ algo_server_name }}"
|
|
tags:
|
|
- "environment-algo"
|
|
register: google_vm
|
|
|
|
- set_fact:
|
|
cloud_instance_ip: "{{ google_vm.instance_data[0].public_ip }}"
|
|
ansible_ssh_user: ubuntu
|
|
environment:
|
|
PYTHONPATH: "{{ gce_venv }}/lib/python2.7/site-packages/"
|
|
rescue:
|
|
- debug: var=fail_hint
|
|
tags: always
|
|
- fail:
|
|
tags: always
|