mirror of
https://github.com/trailofbits/algo.git
synced 2025-04-11 11:47:08 +02:00
56 lines
1.6 KiB
YAML
56 lines
1.6 KiB
YAML
---
|
|
- name: Build python virtual environment
|
|
import_tasks: venv.yml
|
|
|
|
- name: Include prompts
|
|
import_tasks: prompts.yml
|
|
|
|
- name: Set facts
|
|
set_fact:
|
|
stackscript: |
|
|
{{ lookup('template', 'files/cloud-init/base.sh') }}
|
|
mkdir -p /var/lib/cloud/data/ || true
|
|
touch /var/lib/cloud/data/result.json
|
|
|
|
- name: Create a stackscript
|
|
linode_stackscript_v4:
|
|
access_token: "{{ algo_linode_token }}"
|
|
label: "{{ algo_server_name }}"
|
|
state: present
|
|
description: Environment:Algo
|
|
images:
|
|
- "{{ cloud_providers.linode.image }}"
|
|
script: |
|
|
{{ stackscript }}
|
|
register: _linode_stackscript
|
|
|
|
- name: Update the stackscript
|
|
uri:
|
|
url: https://api.linode.com/v4/linode/stackscripts/{{ _linode_stackscript.stackscript.id }}
|
|
method: PUT
|
|
body_format: json
|
|
body:
|
|
script: |
|
|
{{ stackscript }}
|
|
headers:
|
|
Content-Type: application/json
|
|
Authorization: Bearer {{ algo_linode_token }}
|
|
when: (_linode_stackscript.stackscript.script | hash('md5')) != (stackscript | hash('md5'))
|
|
|
|
- name: Creating an instance...
|
|
linode_v4:
|
|
access_token: "{{ algo_linode_token }}"
|
|
label: "{{ algo_server_name }}"
|
|
state: present
|
|
region: "{{ algo_linode_region }}"
|
|
image: "{{ cloud_providers.linode.image }}"
|
|
type: "{{ cloud_providers.linode.type }}"
|
|
authorized_keys: "{{ public_key }}"
|
|
stackscript_id: "{{ _linode_stackscript.stackscript.id }}"
|
|
register: _linode
|
|
|
|
- set_fact:
|
|
cloud_instance_ip: "{{ _linode.instance.ipv4[0] }}"
|
|
ansible_ssh_user: algo
|
|
ansible_ssh_port: "{{ ssh_port }}"
|
|
cloudinit: true
|