mirror of
https://github.com/trailofbits/algo
synced 2024-11-18 09:25:38 +00:00
c27aed708a
* EC2 eip facts authentication fix * add region to ec2_eip_facts
89 lines
3.1 KiB
YAML
89 lines
3.1 KiB
YAML
---
|
|
- pause:
|
|
prompt: |
|
|
Enter your aws_access_key (http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html)
|
|
Note: Make sure to use an IAM user with an acceptable policy attached (see https://github.com/trailofbits/algo/blob/master/docs/deploy-from-ansible.md)
|
|
echo: false
|
|
register: _aws_access_key
|
|
when:
|
|
- aws_access_key is undefined
|
|
- lookup('env','AWS_ACCESS_KEY_ID')|length <= 0
|
|
|
|
- pause:
|
|
prompt: |
|
|
Enter your aws_secret_key (http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html)
|
|
echo: false
|
|
register: _aws_secret_key
|
|
when:
|
|
- aws_secret_key is undefined
|
|
- lookup('env','AWS_SECRET_ACCESS_KEY')|length <= 0
|
|
|
|
- set_fact:
|
|
access_key: "{{ aws_access_key | default(_aws_access_key.user_input|default(None)) | default(lookup('env','AWS_ACCESS_KEY_ID'), true) }}"
|
|
secret_key: "{{ aws_secret_key | default(_aws_secret_key.user_input|default(None)) | default(lookup('env','AWS_SECRET_ACCESS_KEY'), true) }}"
|
|
|
|
- block:
|
|
- name: Get regions
|
|
aws_region_facts:
|
|
aws_access_key: "{{ access_key }}"
|
|
aws_secret_key: "{{ secret_key }}"
|
|
region: us-east-1
|
|
register: _aws_regions
|
|
|
|
- name: Set facts about the regions
|
|
set_fact:
|
|
aws_regions: "{{ _aws_regions.regions | sort(attribute='region_name') }}"
|
|
|
|
- name: Set the default region
|
|
set_fact:
|
|
default_region: >-
|
|
{% for r in aws_regions %}
|
|
{%- if r['region_name'] == "us-east-1" %}{{ loop.index }}{% endif %}
|
|
{%- endfor %}
|
|
|
|
- pause:
|
|
prompt: |
|
|
What region should the server be located in?
|
|
(https://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region)
|
|
{% for r in aws_regions %}
|
|
{{ loop.index }}. {{ r['region_name'] }}
|
|
{% endfor %}
|
|
|
|
Enter the number of your desired region
|
|
[{{ default_region }}]
|
|
register: _algo_region
|
|
when: region is undefined
|
|
|
|
- name: Set algo_region and stack_name facts
|
|
set_fact:
|
|
algo_region: >-
|
|
{% if region is defined %}{{ region }}
|
|
{%- elif _algo_region.user_input %}{{ aws_regions[_algo_region.user_input | int -1 ]['region_name'] }}
|
|
{%- else %}{{ aws_regions[default_region | int - 1]['region_name'] }}{% endif %}
|
|
stack_name: "{{ algo_server_name | replace('.', '-') }}"
|
|
|
|
- block:
|
|
- name: Get existing available Elastic IPs
|
|
ec2_eip_facts:
|
|
aws_access_key: "{{ access_key }}"
|
|
aws_secret_key: "{{ secret_key }}"
|
|
region: "{{ algo_region }}"
|
|
register: raw_eip_addresses
|
|
|
|
- set_fact:
|
|
available_eip_addresses: "{{ raw_eip_addresses.addresses | selectattr('association_id', 'undefined') | list }}"
|
|
|
|
- pause:
|
|
prompt: >-
|
|
What Elastic IP would you like to use?
|
|
{% for eip in available_eip_addresses %}
|
|
{{ loop.index }}. {{ eip['public_ip'] }}
|
|
{% endfor %}
|
|
|
|
Enter the number of your desired Elastic IP
|
|
register: _use_existing_eip
|
|
|
|
- set_fact:
|
|
existing_eip: "{{ available_eip_addresses[_use_existing_eip.user_input | int -1 ]['allocation_id'] }}"
|
|
when: cloud_providers.ec2.use_existing_eip
|