首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合理使用来自with_items循环的vars中的vars

合理使用来自with_items循环的vars中的vars
EN

Stack Overflow用户
提问于 2020-11-03 23:57:22
回答 1查看 62关注 0票数 0

我正在尝试使用with_item中的一个变量来创建一个名称更改的事实:

代码语言:javascript
复制
- name: get ABC Root CA pem from chamber
  shell: AWS_PROFILE={{aws_profile}} chamber read -q secrets abc_ca_{{ item }} | awk 'NR==2 { FS="[ \t+]"; print($2); }' | base64 -d | gunzip
  changed_when: false
  delegate_to: localhost
  vars:
    ansible_become: no
  with_items: "{{ abc_environments }}" # see defaults/main.yml
  when: ('chamber' in chamber_installed.stdout)
  register: abc_returned_environment
  tags:
      - service-discovery

- name: set ABC root ca pem secrets
  set_fact:
    aws_secrets: "{{ aws_secrets|default({}) | combine( {item.item: item.stdout} ) }}"
  with_items: "{{abc_returned_environment.results}}"
  when: ('chamber' in chamber_installed.stdout)
  tags:
      - service-discovery

- name: Write aws_secrets ABC root CA file
  vars:
    env: "{{ item }}"
  copy:
    content: "{{ aws_secrets.(lookup('vars', env )) }}\n"
    dest: /etc/prometheus/abc_{{ item  }}_file_sd/ca_{{ item  }}.pem
    owner: prometheus
    group: prometheus
    mode: 0600
  with_items: "{{ abc_environments }}"
  when: ('chamber' in chamber_installed.stdout)
  tags:
      - service-discovery

怎样才能让content行表现得像这样呢?

代码语言:javascript
复制
content: "{{ aws_secrets.abc_ca_dev }}\n"

其中abc_environments设置为:

代码语言:javascript
复制
abc_environments:
  - dev
  - qa
  - int
  - staging-green
  - staging-blue
  - prod-green
  - prod-blue
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-05 07:07:15

所以它实际上非常简单:

代码语言:javascript
复制
- name: Write aws_secrets ABC root CA file
  copy:
    content: "{{ aws_secrets[ item ] }}\n"
    dest: /etc/prometheus/abc_{{ item  }}_file_sd/ca_{{ item  }}.pem
    owner: prometheus
    group: prometheus
    mode: 0600
  with_items: "{{ abc_environments }}"
  when: ('chamber' in chamber_installed.stdout)
  tags:
      - service-discovery

还可以处理变量名中的破折号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64666261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档