Hello all,
This is the continuation of my other Post creating direct connect gateway.
This is the same but using assume roles and cross-account deployment. I
have added loops but there are 2 sections which are not working (debug role
arns & assume cross account roles). Can some one help?
Error:
TASK [debug role arns]
************************************************************************************************************************************************************************************************************
task path:
/home/ec2-user/environment/aws-rxgt-mgmt-platform/ansible/rxgt-ps-rxgtmgmt-playbook.yaml:29
fatal: [infrastructure]: FAILED! => {
"msg": "template error while templating string: no filter named 'map'.
String: {{ rxgt_identity_account['deploy_accounts']|map('extract',
rxgt_identity_account['account_config'])|list }}"
}
=======================================================
Main playbook:
---
# This playbook builds Network infrastructure in all configured accounts
- name: Install/Update RXGT Mgmt account CF templates
hosts: infrastructure
tasks:
- name: Install/Update RXGT PS cross account CF templates
hosts: infrastructure
tasks:
- name: get sts session token
sts_session_token:
duration_seconds: "{{ sts_session_duration | default(3600) }}"
mfa_serial_nunber: "{{ sts_mfa_serial_number | default(omit) }}"
mfa_token: "{{ sts_mfa_token | default(omit) }}"
register: sts_session_token
when: with_sts
tags:
rxgt-ps-mgmt-stack-deploy
- name: retrieve sts credentials
set_fact:
sts_access_key: "{{ sts_session_token.sts_creds.access_key }}"
sts_secret_key: "{{ sts_session_token.sts_creds.secret_key }}"
sts_session_token: "{{ sts_session_token.sts_creds.session_token }}"
when: with_sts
tags:
rxgt-ps-mgmt-stack-deploy
- name: debug role arns
debug:
msg: "Assuming role: {{ account_config.sts_role_arn }}"
verbosity: 1
loop: "{{ rxgt_identity_account['deploy_accounts']|map('extract',
rxgt_identity_account['account_config'])|list }}"
loop_control:
loop_var: account_config
label: "{{ account_config.sts_role_arn }}"
tags:
rxgt-ps-mgmt-stack-deploy
- name: assume cross account roles
sts_assume_role:
role_arn: "{{ account_config.sts_role_arn }}"
role_session_name: "ansibledeploy"
duration_seconds: "{{ sts_session_duration | default(3600) }}"
aws_access_key: "{{ sts_access_key | default(omit) }}"
aws_secret_key: "{{ sts_secret_key | default(omit) }}"
security_token: "{{ sts_session_token | default(omit) }}"
mfa_serial_nunber: "{{ sts_mfa_serial_number | default(omit) }}"
mfa_token: "{{ sts_mfa_token | default(omit) }}"
loop: "{{ rxgt_identity_account['deploy_accounts']|map('extract',
rxgt_identity_account['account_config'])|list }}"
loop_control:
loop_var: account_config
label: "{{ account_config.sts_role_arn }}"
register: assumed_roles_with_account_config
tags:
rxgt-ps-mgmt-stack-deploy
- name: create rxgt-ps-mgmt-direct-connect-gateway stack
aws_direct_connect_gateway:
state: present
region: "{{ account_config.1 }}"
aws_access_key: "{{ account_config.0.sts_creds.access_key }}"
aws_secret_key: "{{ account_config.0.sts_creds.secret_key }}"
security_token: "{{ account_config.0.sts_creds.session_token }}"
name: "{{
rxgt_identity_account.account_config.rxgtmgmt.stacks['rxgt-ps-mgmt-direct-connect-gateway'].params.name
}}"
amazon_asn: "{{
rxgt_identity_account.account_config.rxgtmgmt.stacks['rxgt-ps-mgmt-direct-connect-gateway'].params.amazon_asn
}}"
loop: "{{
assumed_roles_with_account_config.results|subelements('account_config.regions',
skip_missing=True) }}"
loop_control:
loop_var: account_config
label: "{{ account_config.0.account_config.account_alias }}:{{
account_config.1 }}"
register: created_aws_direct_connect_gateway
tags:
rxgt-ps-mgmt-stack-deploy
- name: debug stack outputs
vars:
msg: "{{ account_config | to_nice_yaml }}"
debug:
msg: "{{ msg.split('\n') }}"
verbosity: 0
loop: "{{
assumed_roles_with_account_config.results|subelements('account_config.regions',
skip_missing=True) }}"
loop_control:
loop_var: account_config
label: "{{ account_config.0.account_config.account_alias }}:{{
account_config.1 }}"
tags:
- 'never'
- 'debug'
- rxgt-ps-mgmt-stack-deploy
=======================================================
account_config.yaml
---
ansible_python_interpreter: "{{ lookup('env', 'VIRTUAL_ENV') }}/bin/python"
rxgt_identity_account:
deploy_accounts:
- XXXXXX
account_config:
XXXXXX:
id: XXXXXXXX
account_alias: XXXXXX
sts_role_arn:
arn:aws:iam::XXXXXXXXXXXX:role/xxxx/xx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
pass_role_arn: ""
regions:
- eu-west-1
stacks:
rxgt-ps-mgmt-direct-connect-gateway:
params:
name: rxgtmgmt-dxgw
amazon_asn: 65000
override_tags:
rx:billing:service-name: identity
rx:billing:environment-name: xxxxxx
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/d76c14c7-6856-46cf-8978-c47c6271ced8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.