--- - pause: prompt: | Enter your ACCESS token. (https://developers.linode.com/api/v4/#access-and-authentication): echo: false register: _linode_token when: - linode_token is undefined - lookup('env', 'LINODE_API_TOKEN')|length <= 0 no_log: true - name: Set the token as a fact set_fact: algo_linode_token: "{{ linode_token | default(_linode_token.user_input | default(None)) | default(lookup('env', 'LINODE_API_TOKEN'), true) }}" no_log: true - name: Get regions uri: url: https://api.linode.com/v4/regions method: GET status_code: 200 register: _linode_regions - name: Set facts about the regions set_fact: linode_regions: "{{ _linode_regions.json.data | sort(attribute='id') }}" - name: Set default region set_fact: default_region: >- {%- for r in linode_regions -%} {%- if r['id'] == "us-east" %}{{ loop.index }}{% endif -%} {%- endfor %} - pause: prompt: | What region should the server be located in? {% for r in linode_regions %} {{ loop.index }}. {{ r['id'] }} {% endfor %} Enter the number of your desired region [{{ default_region }}] register: _algo_region when: region is undefined - name: Set additional facts set_fact: algo_linode_region: >- {%- if region is defined -%}{{ region }}{%- elif _algo_region.user_input -%}{{ linode_regions[_algo_region.user_input | int - 1]['id'] }}{%- else -%}{{ linode_regions[default_region | int - 1]['id'] }}{%- endif -%} public_key: "{{ lookup('file', SSH_keys.public) }}"