--- - block: - pause: prompt: | Enter the API key (https://trailofbits.github.io/algo/cloud-cloudstack.html): echo: false register: _cs_key when: - cs_key is undefined - lookup('env','CLOUDSTACK_KEY')|length <= 0 - pause: prompt: | Enter the API ssecret (https://trailofbits.github.io/algo/cloud-cloudstack.html): echo: false register: _cs_secret when: - cs_secret is undefined - lookup('env','CLOUDSTACK_SECRET')|length <= 0 - pause: prompt: | Enter the API endpoint (https://trailofbits.github.io/algo/cloud-cloudstack.html) [https://api.exoscale.com/compute] register: _cs_url when: - cs_url is undefined - lookup('env', 'CLOUDSTACK_ENDPOINT') | length <= 0 - set_fact: algo_cs_key: "{{ cs_key | default(_cs_key.user_input|default(None)) | default(lookup('env', 'CLOUDSTACK_KEY'), true) }}" algo_cs_token: "{{ cs_secret | default(_cs_secret.user_input|default(None)) | default(lookup('env', 'CLOUDSTACK_SECRET'), true) }}" algo_cs_url: "{{ cs_url | default(_cs_url.user_input|default(None)) | default(lookup('env', 'CLOUDSTACK_ENDPOINT'), true) | default('https://api.exoscale.com/compute', true) }}" - name: Get zones on cloud cs_zone_info: register: _cs_zones environment: CLOUDSTACK_KEY: "{{ algo_cs_key }}" CLOUDSTACK_SECRET: "{{ algo_cs_token }}" CLOUDSTACK_ENDPOINT: "{{ algo_cs_url }}" - name: Extract zones from output set_fact: cs_zones: "{{ _cs_zones['zones'] | 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