如何解决带有for循环的盐柱以目标特定变量为目标
我正在尝试使用for循环遍历一些支柱数据。我可以使其部分工作,但是我似乎无法弄清的关键部分是如何在for循环中定位特定子集。
我在这里和其他站点上看过很多示例,但似乎无法使其正常工作。
这是我用于测试的数据集:
pillar.sls
pkgrepo:
server: true
enabled: false
repos.yaml
{%- set gpgkey_url = 'http://someurl.com/gpg-keys' %}
RedHat:
repos:
epel-7:
settings:
name: Extra Packages for Enterprise Linux 7 - $basearch
baseurl: http://mirror.grid.uchicago.edu/pub/linux/epel/7/$basearch
enabled: False
gpgcheck: True
gpgkey: {{ gpgkey_url }}/RPM-GPG-KEY-EPEL-7
options:
- failovermethod=priority
epel-testing-7:
settings:
name: Extra Packages for Enterprise Linux 7 - $basearch
baseurl: http://mirror.grid.uchicago.edu/pub/linux/epel/7/$basearch
enabled: False
gpgcheck: True
gpgkey: {{ gpgkey_url }}/RPM-GPG-KEY-EPEL-7
options:
- failovermethod=priority
map.jinja
{% import_yaml "formulas/pkgrepo/repos.yaml" as pkgrepo_settings %}
{%- set pkgrepo = salt['grains.filter_by'](pkgrepo_settings,merge=salt['pillar.get']('pkgrepo')) %}
repo.sls
{% from "formulas/pkgrepo/map.jinja" import pkgrepo with context %}
{% for repo,args in pkgrepo.repos.items() %}
pkgrepo-{{ repo }}:
file.managed:
- name: /home/username/repos/{{ repo }}.repo
- user: root
- group: root
- mode: 0644
- contents:
{%- for type in args.items() %}
{% if type in ['settings'] %}
{%- for key,value in type.settings.items() %}
- {{ key }} and {{ value }}
{%- endfor %}
{% endif %}
{%- endfor %}
{% endfor %}
使用sls中的此代码,文件中的值为空。我已经对代码进行了调整,但是无法使其仅针对每个单独存储库下的“设置”组。我不想明确列出回购名称。我希望公式是动态的,并使用每个设置字段下的值创建每个存储库。
这是我希望得到的最终结果:
pkgrepo-epel-7:
file.managed:
- name: /home/username/repos/epel-7.repo
- user: root
- group: root
- mode: 0644
- contents:
- name: Extra Packages for Enterprise Linux 7 - $basearch
- baseurl: http://mirror.grid.uchicago.edu/pub/linux/epel/7/$basearch
- enabled: False
- gpgcheck: True
- gpgkey: http://someurl.com/gpg-keys/RPM-GPG-KEY-EPEL-7
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。