blob: 555abd19d863788844e1340aad4ef4cfde18fb04 [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 %}
Marek Celoud159d3812017-03-03 23:02:45 +010061 - require:
62 - pkg: linux_packages
Filip Pytlounf5383a42015-10-06 16:28:32 +020063
64{%- endif %}
65
66{%- endif %}
67
68{%- if grains.os_family == "RedHat" %}
69
70{%- if not repo.get('default', False) %}
71
72linux_repo_{{ name }}:
73 pkgrepo.managed:
74 - name: {{ name }}
Filip Pytloun96be4372016-03-19 14:02:47 +010075 - humanname: {{ repo.get('humanname', name) }}
76 {%- if repo.mirrorlist is defined %}
77 - mirrorlist: {{ repo.mirrorlist }}
78 {%- else %}
Filip Pytlounf5383a42015-10-06 16:28:32 +020079 - baseurl: {{ repo.source }}
Filip Pytloun96be4372016-03-19 14:02:47 +010080 {%- endif %}
Filip Pytlounf5383a42015-10-06 16:28:32 +020081 - gpgcheck: {% if repo.get('gpgcheck', False) %}1{% else %}0{% endif %}
Filip Pytloun96be4372016-03-19 14:02:47 +010082 {%- if repo.gpgkey is defined %}
83 - gpgkey: {{ repo.gpgkey }}
84 {%- endif %}
Marek Celoud159d3812017-03-03 23:02:45 +010085 - require:
86 - pkg: linux_packages
Filip Pytlounf5383a42015-10-06 16:28:32 +020087
88{%- endif %}
89
90{%- endif %}
91
92{%- endfor %}
93
94{%- if default_repos|length > 0 and grains.os_family == 'Debian' %}
95
96default_repo_list:
97 file.managed:
98 - name: /etc/apt/sources.list
99 - source: salt://linux/files/sources.list
100 - template: jinja
101 - user: root
102 - group: root
103 - mode: 0644
104 - defaults:
105 default_repos: {{ default_repos }}
Marek Celoud159d3812017-03-03 23:02:45 +0100106 - require:
107 - pkg: linux_packages
Filip Pytlounf5383a42015-10-06 16:28:32 +0200108
109{%- endif %}
110
111{%- endif %}