blob: 04e707055181147150baeb82859568f80a35948b [file] [log] [blame]
Filip Pytlounf5383a42015-10-06 16:28:32 +02001{%- from "linux/map.jinja" import system with context %}
2{%- if system.enabled %}
3
4{% set default_repos = {} %}
5
6{%- for name, repo in system.repo.iteritems() %}
7
8{%- if grains.os_family == 'Debian' %}
9
10{%- if repo.pin is defined %}
11
12linux_repo_{{ name }}_pin:
13 file.managed:
14 - name: /etc/apt/preferences.d/{{ name }}
15 - source: salt://linux/files/preferences_repo
16 - template: jinja
17 - defaults:
18 repo_name: {{ name }}
19
20{%- else %}
21
22linux_repo_{{ name }}_pin:
23 file.absent:
24 - name: /etc/apt/preferences.d/{{ name }}
25
26{%- endif %}
27
28{%- if repo.get('default', False) %}
29
30{%- do default_repos.update({name: repo}) %}
31
Filip Pytlound147ae12016-08-30 15:44:46 +020032{%- if repo.key_url|default(False) %}
Filip Pytlounf5383a42015-10-06 16:28:32 +020033
34linux_repo_{{ name }}_key:
35 cmd.wait:
36 - name: "curl -s {{ repo.key_url }} | apt-key add -"
37 - watch:
38 - file: default_repo_list
39
40{%- endif %}
41
42{%- else %}
43
44linux_repo_{{ name }}:
45 pkgrepo.managed:
46 - human_name: {{ name }}
47 - name: {{ repo.source }}
48 {%- if repo.architectures is defined %}
49 - architectures: {{ repo.architectures }}
50 {%- endif %}
51 - file: /etc/apt/sources.list.d/{{ name }}.list
52 {%- if repo.key_id is defined %}
53 - keyid: {{ repo.key_id }}
54 {%- endif %}
55 {%- if repo.key_server is defined %}
56 - keyserver: {{ repo.key_server }}
57 {%- endif %}
58 {%- if repo.key_url is defined %}
59 - key_url: {{ repo.key_url }}
60 {%- endif %}
61
62{%- endif %}
63
64{%- endif %}
65
66{%- if grains.os_family == "RedHat" %}
67
68{%- if not repo.get('default', False) %}
69
70linux_repo_{{ name }}:
71 pkgrepo.managed:
72 - name: {{ name }}
Filip Pytloun96be4372016-03-19 14:02:47 +010073 - humanname: {{ repo.get('humanname', name) }}
74 {%- if repo.mirrorlist is defined %}
75 - mirrorlist: {{ repo.mirrorlist }}
76 {%- else %}
Filip Pytlounf5383a42015-10-06 16:28:32 +020077 - baseurl: {{ repo.source }}
Filip Pytloun96be4372016-03-19 14:02:47 +010078 {%- endif %}
Filip Pytlounf5383a42015-10-06 16:28:32 +020079 - gpgcheck: {% if repo.get('gpgcheck', False) %}1{% else %}0{% endif %}
Filip Pytloun96be4372016-03-19 14:02:47 +010080 {%- if repo.gpgkey is defined %}
81 - gpgkey: {{ repo.gpgkey }}
82 {%- endif %}
Filip Pytlounf5383a42015-10-06 16:28:32 +020083
84{%- endif %}
85
86{%- endif %}
87
88{%- endfor %}
89
90{%- if default_repos|length > 0 and grains.os_family == 'Debian' %}
91
92default_repo_list:
93 file.managed:
94 - name: /etc/apt/sources.list
95 - source: salt://linux/files/sources.list
96 - template: jinja
97 - user: root
98 - group: root
99 - mode: 0644
100 - defaults:
101 default_repos: {{ default_repos }}
102
103{%- endif %}
104
105{%- endif %}