blob: 632ea456961414c1011f26a81697100a79846005 [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
Filip Pytloun23cee8d2016-12-12 12:29:02 +01007{%- if server.source.engine == 'pkg' %}
8
Filip Pytloun95347292015-10-06 16:28:31 +02009aptly_packages:
10 pkg.installed:
Petr Michalecfed2a692016-12-20 23:14:54 +010011 - names: {{ server.source.pkgs }}
Filip Pytloun95347292015-10-06 16:28:31 +020012 - refresh: true
Filip Pytloun248eb032016-12-15 16:17:01 +010013 - require_in:
14 - user: aptly_user
Filip Pytloun95347292015-10-06 16:28:31 +020015
Filip Pytloun23cee8d2016-12-12 12:29:02 +010016aptly_installed:
17 cmd.wait:
18 - name: "aptly version"
19 - watch:
Petr Michalec6292d852016-12-27 11:19:37 +010020 - pkg: aptly_packages
Filip Pytloun23cee8d2016-12-12 12:29:02 +010021 - require:
22 - user: aptly_user
23
Filip Pytloun248eb032016-12-15 16:17:01 +010024{%- elif server.source.engine == 'docker' %}
Filip Pytloun23cee8d2016-12-12 12:29:02 +010025
26aptly_wrapper:
27 file.managed:
28 - name: /usr/local/bin/aptly
Filip Pytloun248eb032016-12-15 16:17:01 +010029 - source: salt://aptly/files/aptly
Filip Pytloun23cee8d2016-12-12 12:29:02 +010030 - template: jinja
31 - defaults:
chnydad9233702017-11-06 10:49:09 +010032 image: {{ server.source.registry + "/" if server.source.registry is defined else "" }}{{ server.source.image|default('tcpcloud/aptly') }}
Filip Pytloun23cee8d2016-12-12 12:29:02 +010033 aptly_home: {{ server.home_dir }}
34 aptly_root: {{ server.root_dir }}
35 - mode: 755
36
37aptly_installed:
38 cmd.wait:
39 - name: "/usr/local/bin/aptly version"
40 - watch:
41 - file: aptly_wrapper
42 - require:
43 - user: aptly_user
44 - file: aptly_root_dir
45 - file: aptly_home_dir
46
47{%- endif %}
48
Filip Pytloun95347292015-10-06 16:28:31 +020049aptly_user:
50 user.present:
Filip Pytloun248eb032016-12-15 16:17:01 +010051 - name: {{ server.user.name }}
Filip Pytloun95347292015-10-06 16:28:31 +020052 - home: {{ server.home_dir }}
Filip Pytloun248eb032016-12-15 16:17:01 +010053 - shell: /bin/bash
54 {%- if server.user.uid is defined %}
55 - uid: {{ server.user.uid }}
56 {%- endif %}
57 {%- if server.user.gid is defined %}
58 - gid: {{ server.user.gid }}
59 {%- endif %}
60 - system: True
61 - groups:
62 - aptly
63
64aptly_group:
65 group.present:
66 - name: {{ server.user.group }}
67 {%- if server.user.gid is defined %}
68 - gid: {{ server.user.gid }}
69 {%- endif %}
70 - system: True
71 - require_in:
72 - user: aptly_user
Filip Pytloun95347292015-10-06 16:28:31 +020073
74aptly_home_dir:
75 file.directory:
76 - name: {{ server.home_dir }}
77 - user: aptly
78 - group: aptly
79 - mode: 755
80 - require:
81 - user: aptly_user
82
83aptly_root_dir:
84 file.directory:
85 - name: {{ server.root_dir }}
86 - user: aptly
87 - group: aptly
88 - mode: 755
89 - require:
90 - user: aptly_user
91
92aptly_pub_dir:
93 file.directory:
94 - name: {{ server.root_dir }}/public
95 - user: aptly
96 - group: aptly
97 - require:
Martin Polreich935a51c2017-04-04 16:08:07 +020098 - file: aptly_root_dir
Filip Pytloun95347292015-10-06 16:28:31 +020099
Filip Pytloun248eb032016-12-15 16:17:01 +0100100{%- if server.no_config|default(False) == True %}
101aptly_conf:
102 file.directory:
103 - name: {{ server.home_dir }}
104{%- else %}
Filip Pytloun95347292015-10-06 16:28:31 +0200105aptly_conf:
106 file.managed:
107 - name: {{ server.home_dir }}/.aptly.conf
108 - source: salt://aptly/files/aptly.conf
109 - template: jinja
110 - user: aptly
111 - group: aptly
112 - mode: 664
113 - require:
114 - file: aptly_pub_dir
Filip Pytloun248eb032016-12-15 16:17:01 +0100115{%- endif %}
Filip Pytloun95347292015-10-06 16:28:31 +0200116
117aptly_mirror_update_script:
118 file.managed:
119 - name: /usr/local/bin/aptly_mirror_update.sh
120 - source: salt://aptly/files/aptly_mirror_update.sh
121 - user: root
122 - group: root
123 - mode: 755
124
125{%- if server.secure %}
126
127aptly_gpg_key_dir:
128 file.directory:
129 - name: {{ server.home_dir }}/.gnupg
130 - user: aptly
131 - group: aptly
132 - mode: 700
133 - require:
134 - file: aptly_home_dir
135
136
137gpg_priv_key:
138 file.managed:
139 - name: {{ gpgprivfile }}
Filip Pytloun248eb032016-12-15 16:17:01 +0100140 - contents: {{ server.gpg.private_key|yaml }}
Filip Pytloun95347292015-10-06 16:28:31 +0200141 - user: aptly
142 - group: aptly
143 - mode: 600
144 - require:
145 - file: aptly_gpg_key_dir
146
147gpg_pub_key:
148 file.managed:
149 - name: {{ gpgpubfile }}
Filip Pytloun248eb032016-12-15 16:17:01 +0100150 - contents: {{ server.gpg.public_key|yaml }}
Filip Pytloun95347292015-10-06 16:28:31 +0200151 - user: aptly
152 - group: aptly
153 - mode: 644
154 - require:
155 - file: aptly_gpg_key_dir
156
157import_gpg_pub_key:
158 cmd.run:
159 - name: gpg --no-tty --import {{ gpgpubfile }}
160 - user: aptly
Filip Pytloune8f28f82017-01-23 10:57:47 +0100161 - 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 +0200162 - require:
Filip Pytloun62dd72c2017-02-24 17:34:59 +0100163 - file: gpg_pub_key
Filip Pytloun6467a282017-05-26 11:35:56 +0200164 - cmd: import_gpg_priv_key
Filip Pytloun95347292015-10-06 16:28:31 +0200165
166import_gpg_priv_key:
167 cmd.run:
Filip Pytloune8f28f82017-01-23 10:57:47 +0100168 - 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 +0200169 - user: aptly
Filip Pytloune8f28f82017-01-23 10:57:47 +0100170 - 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 +0200171 - require:
172 - file: aptly_gpg_key_dir
Filip Pytloun62dd72c2017-02-24 17:34:59 +0100173 - file: gpg_priv_key
Filip Pytloun23cee8d2016-12-12 12:29:02 +0100174 - require_in:
175 - cmd: aptly_installed
Filip Pytloun95347292015-10-06 16:28:31 +0200176
177{%- endif %}
178
Andrey437e2492017-10-24 17:38:28 -0500179include:
180- aptly.server.repos
181- aptly.server.mirrors
182
Filip Pytloun95347292015-10-06 16:28:31 +0200183{%- endif %}
184