blob: 60a865f5768d721d88fdae5c425b8615b67ea377 [file] [log] [blame]
Filip Pytloun95347292015-10-06 16:28:31 +02001{%- from "aptly/map.jinja" import server with context %}
2{%- if server.enabled %}
3
4{% set gpgprivfile = '{}/.gnupg/secret.gpg'.format(server.home_dir) %}
5{% set gpgpubfile = '{}/public/public.gpg'.format(server.root_dir) %}
6
7include:
8- aptly.server.repos
9- aptly.server.mirrors
10
Filip Pytloun23cee8d2016-12-12 12:29:02 +010011{%- if server.source.engine == 'pkg' %}
12
Filip Pytloun95347292015-10-06 16:28:31 +020013aptly_packages:
14 pkg.installed:
Petr Michalecfed2a692016-12-20 23:14:54 +010015 - names: {{ server.source.pkgs }}
Filip Pytloun95347292015-10-06 16:28:31 +020016 - refresh: true
Filip Pytloun248eb032016-12-15 16:17:01 +010017 - require_in:
18 - user: aptly_user
Filip Pytloun95347292015-10-06 16:28:31 +020019
Filip Pytloun23cee8d2016-12-12 12:29:02 +010020aptly_installed:
21 cmd.wait:
22 - name: "aptly version"
23 - watch:
Petr Michalec6292d852016-12-27 11:19:37 +010024 - pkg: aptly_packages
Filip Pytloun23cee8d2016-12-12 12:29:02 +010025 - require:
26 - user: aptly_user
27
Filip Pytloun248eb032016-12-15 16:17:01 +010028{%- elif server.source.engine == 'docker' %}
Filip Pytloun23cee8d2016-12-12 12:29:02 +010029
30aptly_wrapper:
31 file.managed:
32 - name: /usr/local/bin/aptly
Filip Pytloun248eb032016-12-15 16:17:01 +010033 - source: salt://aptly/files/aptly
Filip Pytloun23cee8d2016-12-12 12:29:02 +010034 - template: jinja
35 - defaults:
Filip Pytloun248eb032016-12-15 16:17:01 +010036 image: {{ server.source.image|default('tcpcloud/aptly') }}
Filip Pytloun23cee8d2016-12-12 12:29:02 +010037 aptly_home: {{ server.home_dir }}
38 aptly_root: {{ server.root_dir }}
39 - mode: 755
40
41aptly_installed:
42 cmd.wait:
43 - name: "/usr/local/bin/aptly version"
44 - watch:
45 - file: aptly_wrapper
46 - require:
47 - user: aptly_user
48 - file: aptly_root_dir
49 - file: aptly_home_dir
50
51{%- endif %}
52
Filip Pytloun95347292015-10-06 16:28:31 +020053aptly_user:
54 user.present:
Filip Pytloun248eb032016-12-15 16:17:01 +010055 - name: {{ server.user.name }}
Filip Pytloun95347292015-10-06 16:28:31 +020056 - home: {{ server.home_dir }}
Filip Pytloun248eb032016-12-15 16:17:01 +010057 - shell: /bin/bash
58 {%- if server.user.uid is defined %}
59 - uid: {{ server.user.uid }}
60 {%- endif %}
61 {%- if server.user.gid is defined %}
62 - gid: {{ server.user.gid }}
63 {%- endif %}
64 - system: True
65 - groups:
66 - aptly
67
68aptly_group:
69 group.present:
70 - name: {{ server.user.group }}
71 {%- if server.user.gid is defined %}
72 - gid: {{ server.user.gid }}
73 {%- endif %}
74 - system: True
75 - require_in:
76 - user: aptly_user
Filip Pytloun95347292015-10-06 16:28:31 +020077
78aptly_home_dir:
79 file.directory:
80 - name: {{ server.home_dir }}
81 - user: aptly
82 - group: aptly
83 - mode: 755
84 - require:
85 - user: aptly_user
86
87aptly_root_dir:
88 file.directory:
89 - name: {{ server.root_dir }}
90 - user: aptly
91 - group: aptly
92 - mode: 755
93 - require:
94 - user: aptly_user
95
96aptly_pub_dir:
97 file.directory:
98 - name: {{ server.root_dir }}/public
99 - user: aptly
100 - group: aptly
101 - require:
102 - file: aptly_home_dir
103
Filip Pytloun248eb032016-12-15 16:17:01 +0100104{%- if server.no_config|default(False) == True %}
105aptly_conf:
106 file.directory:
107 - name: {{ server.home_dir }}
108{%- else %}
Filip Pytloun95347292015-10-06 16:28:31 +0200109aptly_conf:
110 file.managed:
111 - name: {{ server.home_dir }}/.aptly.conf
112 - source: salt://aptly/files/aptly.conf
113 - template: jinja
114 - user: aptly
115 - group: aptly
116 - mode: 664
117 - require:
118 - file: aptly_pub_dir
Filip Pytloun248eb032016-12-15 16:17:01 +0100119{%- endif %}
Filip Pytloun95347292015-10-06 16:28:31 +0200120
121aptly_mirror_update_script:
122 file.managed:
123 - name: /usr/local/bin/aptly_mirror_update.sh
124 - source: salt://aptly/files/aptly_mirror_update.sh
125 - user: root
126 - group: root
127 - mode: 755
128
129{%- if server.secure %}
130
131aptly_gpg_key_dir:
132 file.directory:
133 - name: {{ server.home_dir }}/.gnupg
134 - user: aptly
135 - group: aptly
136 - mode: 700
137 - require:
138 - file: aptly_home_dir
139
140
141gpg_priv_key:
142 file.managed:
143 - name: {{ gpgprivfile }}
Filip Pytloun248eb032016-12-15 16:17:01 +0100144 - contents: {{ server.gpg.private_key|yaml }}
Filip Pytloun95347292015-10-06 16:28:31 +0200145 - user: aptly
146 - group: aptly
147 - mode: 600
148 - require:
149 - file: aptly_gpg_key_dir
150
151gpg_pub_key:
152 file.managed:
153 - name: {{ gpgpubfile }}
Filip Pytloun248eb032016-12-15 16:17:01 +0100154 - contents: {{ server.gpg.public_key|yaml }}
Filip Pytloun95347292015-10-06 16:28:31 +0200155 - user: aptly
156 - group: aptly
157 - mode: 644
158 - require:
159 - file: aptly_gpg_key_dir
160
161import_gpg_pub_key:
162 cmd.run:
163 - name: gpg --no-tty --import {{ gpgpubfile }}
164 - user: aptly
Filip Pytloune8f28f82017-01-23 10:57:47 +0100165 - unless: gpg --no-tty{% if server.gpg.get('homedir', None) %} --homedir {{ server.gpg.homedir }}{% endif %} --list-keys | grep '{{ server.gpg.keypair_id }}'
Filip Pytloun95347292015-10-06 16:28:31 +0200166 - require:
167 - file: aptly_gpg_key_dir
Filip Pytloun62dd72c2017-02-24 17:34:59 +0100168 - file: gpg_pub_key
Filip Pytloun95347292015-10-06 16:28:31 +0200169
170import_gpg_priv_key:
171 cmd.run:
Filip Pytloune8f28f82017-01-23 10:57:47 +0100172 - name: gpg --no-tty --allow-secret-key-import{% if server.gpg.get('homedir', None) %} --homedir {{ server.gpg.homedir }}{% endif %} --import {{ gpgprivfile }}
Filip Pytloun95347292015-10-06 16:28:31 +0200173 - user: aptly
Filip Pytloune8f28f82017-01-23 10:57:47 +0100174 - unless: gpg --no-tty{% if server.gpg.get('homedir', None) %} --homedir {{ server.gpg.homedir }}{% endif %} --list-secret-keys | grep '{{ server.gpg.keypair_id }}'
Filip Pytloun95347292015-10-06 16:28:31 +0200175 - require:
176 - file: aptly_gpg_key_dir
Filip Pytloun62dd72c2017-02-24 17:34:59 +0100177 - file: gpg_priv_key
Filip Pytloun23cee8d2016-12-12 12:29:02 +0100178 - require_in:
179 - cmd: aptly_installed
Filip Pytloun95347292015-10-06 16:28:31 +0200180
181{%- endif %}
182
Filip Pytloun95347292015-10-06 16:28:31 +0200183{%- endif %}
184