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.
|
|
|
---
|
|
|
|
- block:
|
|
|
|
- pause:
|
|
|
|
prompt: |
|
|
|
|
Enter path for cloudstack.ini file (https://trailofbits.github.io/algo/cloud-cloudstack.html)
|
|
|
|
[~/.cloudstack.ini]
|
|
|
|
register: _cs_config
|
|
|
|
when:
|
|
|
|
- cs_config is undefined
|
|
|
|
- lookup('env', 'CLOUDSTACK_CONFIG') | length <= 0
|
|
|
|
|
|
|
|
- pause:
|
|
|
|
prompt: |
|
|
|
|
Specify region to use in cloudstack.ini file
|
|
|
|
[exoscale]
|
|
|
|
register: _cs_region
|
|
|
|
when:
|
|
|
|
- cs_region is undefined
|
|
|
|
- lookup('env', 'CLOUDSTACK_REGION') | length <= 0
|
|
|
|
|
|
|
|
- set_fact:
|
|
|
|
algo_cs_config: "{{ cs_config | default(_cs_config.user_input|default(None)) | default(lookup('env', 'CLOUDSTACK_CONFIG'), true) | default('~/.cloudstack.ini', true) }}"
|
|
|
|
algo_cs_region: "{{ cs_region | default(_cs_region.user_input|default(None)) | default(lookup('env', 'CLOUDSTACK_REGION'), true) | default('exoscale', true) }}"
|
|
|
|
|
|
|
|
- name: Get zones on cloud
|
|
|
|
cloudstack_zones:
|
|
|
|
register: _cs_zones
|
|
|
|
environment:
|
|
|
|
CLOUDSTACK_CONFIG: "{{ algo_cs_config }}"
|
|
|
|
CLOUDSTACK_REGION: "{{ algo_cs_region }}"
|
|
|
|
|
|
|
|
- name: Extract zones from output
|
|
|
|
set_fact:
|
|
|
|
cs_zones: "{{ _cs_zones['zone'] | sort(attribute='name') }}"
|
|
|
|
|
|
|
|
- name: Set the default zone
|
|
|
|
set_fact:
|
|
|
|
default_zone: >-
|
|
|
|
{% for z in cs_zones %}
|
|
|
|
{%- if z['name'] == "ch-gva-2" %}{{ loop.index }}{% endif %}
|
|
|
|
{%- endfor %}
|
|
|
|
|
|
|
|
- pause:
|
|
|
|
prompt: |
|
|
|
|
What zone should the server be located in?
|
|
|
|
{% for z in cs_zones %}
|
|
|
|
{{ loop.index }}. {{ z['name'] }}
|
|
|
|
{% endfor %}
|
|
|
|
|
|
|
|
Enter the number of your desired zone
|
|
|
|
[{{ default_zone }}]
|
|
|
|
register: _algo_region
|
|
|
|
when: region is undefined
|
|
|
|
|