将 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 中的所有需要​​的值。