将 aws_ssm 查找结果传递给模板的可靠方式
Ansible way of passing aws_ssm lookup result to template
我需要获取 SSM 参数的层次结构并将其作为映射传递到模板中。
我对 Ansible 很陌生,可能没有正确思考。但是我试图做的事情却没有奏效,看起来像:
- name: Prepare config
template:
src: config.ini.j2
dest: /home/ubuntu/config.ini
vars:
- lookup('aws_ssm', '/env/app', region='eu-west-1', shortnames=true, bypath=true, recursive=true )
其中 lookup('aws_ssm', '/env/app', region='eu-west-1', shortnames=true, bypath=true, recursive=true )
应该 return 一些参数映射。
感觉应该很简单,就是找不到解决办法,求指教
我想你可以使用类似的东西:
- name: Prepare config
template:
src: config.ini.j2
dest: /home/ubuntu/config.ini
vars:
aws_params:
name: 'aws_ssm'
path: '/env/app'
region: 'eu-west-1'
shortnames: True
bypath:True
recursive:True
并在模板的正确位置使用如下语法:
{{ aws_params.name }}
{{ aws_params.path }}
...
etc
- name: registering parameters
set_fact:
aws_params: "{{ lookup('aws_ssm', '/env/app', region='eu-west-1', shortnames=true, bypath=true, recursive=true) }}"
- name: Prepare config
template:
src: config.ini.j2
dest: /home/ubuntu/config.ini
并在模板中使用 aws_params
中的所有需要的值。
我需要获取 SSM 参数的层次结构并将其作为映射传递到模板中。
我对 Ansible 很陌生,可能没有正确思考。但是我试图做的事情却没有奏效,看起来像:
- name: Prepare config
template:
src: config.ini.j2
dest: /home/ubuntu/config.ini
vars:
- lookup('aws_ssm', '/env/app', region='eu-west-1', shortnames=true, bypath=true, recursive=true )
其中 lookup('aws_ssm', '/env/app', region='eu-west-1', shortnames=true, bypath=true, recursive=true )
应该 return 一些参数映射。
感觉应该很简单,就是找不到解决办法,求指教
我想你可以使用类似的东西:
- name: Prepare config
template:
src: config.ini.j2
dest: /home/ubuntu/config.ini
vars:
aws_params:
name: 'aws_ssm'
path: '/env/app'
region: 'eu-west-1'
shortnames: True
bypath:True
recursive:True
并在模板的正确位置使用如下语法:
{{ aws_params.name }}
{{ aws_params.path }}
...
etc
- name: registering parameters
set_fact:
aws_params: "{{ lookup('aws_ssm', '/env/app', region='eu-west-1', shortnames=true, bypath=true, recursive=true) }}"
- name: Prepare config
template:
src: config.ini.j2
dest: /home/ubuntu/config.ini
并在模板中使用 aws_params
中的所有需要的值。