{%- from "linux/map.jinja" import system with context %} {%- if system.enabled %} {% set default_repos = {} %} {%- for name, repo in system.repo.iteritems() %} {%- if grains.os_family == 'Debian' %} {%- if repo.pin is defined %} linux_repo_{{ name }}_pin: file.managed: - name: /etc/apt/preferences.d/{{ name }} - source: salt://linux/files/preferences_repo - template: jinja - defaults: repo_name: {{ name }} {%- else %} linux_repo_{{ name }}_pin: file.absent: - name: /etc/apt/preferences.d/{{ name }} {%- endif %} {%- if repo.get('default', False) %} {%- do default_repos.update({name: repo}) %} {%- if repo.key_url|default(False) %} linux_repo_{{ name }}_key: cmd.wait: - name: "curl -s {{ repo.key_url }} | apt-key add -" - watch: - file: default_repo_list {%- endif %} {%- else %} linux_repo_{{ name }}: pkgrepo.managed: - human_name: {{ name }} - name: {{ repo.source }} {%- if repo.architectures is defined %} - architectures: {{ repo.architectures }} {%- endif %} - file: /etc/apt/sources.list.d/{{ name }}.list {%- if repo.key_id is defined %} - keyid: {{ repo.key_id }} {%- endif %} {%- if repo.key_server is defined %} - keyserver: {{ repo.key_server }} {%- endif %} {%- if repo.key_url is defined %} - key_url: {{ repo.key_url }} {%- endif %} {%- endif %} {%- endif %} {%- if grains.os_family == "RedHat" %} {%- if not repo.get('default', False) %} linux_repo_{{ name }}: pkgrepo.managed: - name: {{ name }} - humanname: {{ repo.get('humanname', name) }} {%- if repo.mirrorlist is defined %} - mirrorlist: {{ repo.mirrorlist }} {%- else %} - baseurl: {{ repo.source }} {%- endif %} - gpgcheck: {% if repo.get('gpgcheck', False) %}1{% else %}0{% endif %} {%- if repo.gpgkey is defined %} - gpgkey: {{ repo.gpgkey }} {%- endif %} {%- endif %} {%- endif %} {%- endfor %} {%- if default_repos|length > 0 and grains.os_family == 'Debian' %} default_repo_list: file.managed: - name: /etc/apt/sources.list - source: salt://linux/files/sources.list - template: jinja - user: root - group: root - mode: 0644 - defaults: default_repos: {{ default_repos }} {%- endif %} {%- endif %}