| {%- 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 %} |
| - require: |
| - pkg: linux_packages |
| |
| {%- 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 %} |
| - require: |
| - pkg: linux_packages |
| |
| {%- 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 }} |
| - require: |
| - pkg: linux_packages |
| |
| {%- endif %} |
| |
| {%- endif %} |