带有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 (将#修改为@)