【问题标题】:Ansible way of passing aws_ssm lookup result to template将 aws_ssm 查找结果传递给模板的 Ansible 方法
【发布时间】:2023-04-04 13:19:01
【问题描述】:

我需要获取 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 ) 应该返回一些参数映射。

我觉得应该很简单,但就是找不到解决办法,请指教。

【问题讨论】:

    标签: ansible aws-ssm


    【解决方案1】:
    - 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 的所有需要​​的值。

    【讨论】:

      【解决方案2】:

      我认为你可以使用类似的东西:

      - 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
      

      【讨论】:

      • 对不起,这lookup('aws_ssm', '/env/app', region='eu-west-1', shortnames=true, bypath=true, recursive=true ) 部分并不明显,我的意思是这里它应该从 AWS 参数存储中检索键值映射。所以我需要在我的模板中填充参数存储中的一些参数。
      猜你喜欢
      • 2012-08-22
      • 2011-07-10
      • 1970-01-01
      • 2018-09-03
      • 2016-02-21
      • 2021-12-05
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多