Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 1 | {%- 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 Pytloun | 23cee8d | 2016-12-12 12:29:02 +0100 | [diff] [blame] | 7 | {%- if server.source.engine == 'pkg' %} |
| 8 | |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 9 | aptly_packages: |
| 10 | pkg.installed: |
Petr Michalec | fed2a69 | 2016-12-20 23:14:54 +0100 | [diff] [blame] | 11 | - names: {{ server.source.pkgs }} |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 12 | - refresh: true |
Filip Pytloun | 248eb03 | 2016-12-15 16:17:01 +0100 | [diff] [blame] | 13 | - require_in: |
| 14 | - user: aptly_user |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 15 | |
Filip Pytloun | 23cee8d | 2016-12-12 12:29:02 +0100 | [diff] [blame] | 16 | aptly_installed: |
| 17 | cmd.wait: |
| 18 | - name: "aptly version" |
| 19 | - watch: |
Petr Michalec | 6292d85 | 2016-12-27 11:19:37 +0100 | [diff] [blame] | 20 | - pkg: aptly_packages |
Filip Pytloun | 23cee8d | 2016-12-12 12:29:02 +0100 | [diff] [blame] | 21 | - require: |
| 22 | - user: aptly_user |
| 23 | |
Filip Pytloun | 248eb03 | 2016-12-15 16:17:01 +0100 | [diff] [blame] | 24 | {%- elif server.source.engine == 'docker' %} |
Filip Pytloun | 23cee8d | 2016-12-12 12:29:02 +0100 | [diff] [blame] | 25 | |
| 26 | aptly_wrapper: |
| 27 | file.managed: |
| 28 | - name: /usr/local/bin/aptly |
Filip Pytloun | 248eb03 | 2016-12-15 16:17:01 +0100 | [diff] [blame] | 29 | - source: salt://aptly/files/aptly |
Filip Pytloun | 23cee8d | 2016-12-12 12:29:02 +0100 | [diff] [blame] | 30 | - template: jinja |
| 31 | - defaults: |
chnyda | d923370 | 2017-11-06 10:49:09 +0100 | [diff] [blame] | 32 | image: {{ server.source.registry + "/" if server.source.registry is defined else "" }}{{ server.source.image|default('tcpcloud/aptly') }} |
Filip Pytloun | 23cee8d | 2016-12-12 12:29:02 +0100 | [diff] [blame] | 33 | aptly_home: {{ server.home_dir }} |
| 34 | aptly_root: {{ server.root_dir }} |
| 35 | - mode: 755 |
| 36 | |
| 37 | aptly_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 Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 49 | aptly_user: |
| 50 | user.present: |
Filip Pytloun | 248eb03 | 2016-12-15 16:17:01 +0100 | [diff] [blame] | 51 | - name: {{ server.user.name }} |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 52 | - home: {{ server.home_dir }} |
Filip Pytloun | 248eb03 | 2016-12-15 16:17:01 +0100 | [diff] [blame] | 53 | - 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 | |
| 64 | aptly_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 Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 73 | |
| 74 | aptly_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 | |
| 83 | aptly_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 | |
| 92 | aptly_pub_dir: |
| 93 | file.directory: |
| 94 | - name: {{ server.root_dir }}/public |
| 95 | - user: aptly |
| 96 | - group: aptly |
| 97 | - require: |
Martin Polreich | 935a51c | 2017-04-04 16:08:07 +0200 | [diff] [blame] | 98 | - file: aptly_root_dir |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 99 | |
Filip Pytloun | 248eb03 | 2016-12-15 16:17:01 +0100 | [diff] [blame] | 100 | {%- if server.no_config|default(False) == True %} |
| 101 | aptly_conf: |
| 102 | file.directory: |
| 103 | - name: {{ server.home_dir }} |
| 104 | {%- else %} |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 105 | aptly_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 Pytloun | 248eb03 | 2016-12-15 16:17:01 +0100 | [diff] [blame] | 115 | {%- endif %} |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 116 | |
| 117 | aptly_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 | |
| 127 | aptly_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 | |
| 137 | gpg_priv_key: |
| 138 | file.managed: |
| 139 | - name: {{ gpgprivfile }} |
Filip Pytloun | 248eb03 | 2016-12-15 16:17:01 +0100 | [diff] [blame] | 140 | - contents: {{ server.gpg.private_key|yaml }} |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 141 | - user: aptly |
| 142 | - group: aptly |
| 143 | - mode: 600 |
| 144 | - require: |
| 145 | - file: aptly_gpg_key_dir |
| 146 | |
| 147 | gpg_pub_key: |
| 148 | file.managed: |
| 149 | - name: {{ gpgpubfile }} |
Filip Pytloun | 248eb03 | 2016-12-15 16:17:01 +0100 | [diff] [blame] | 150 | - contents: {{ server.gpg.public_key|yaml }} |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 151 | - user: aptly |
| 152 | - group: aptly |
| 153 | - mode: 644 |
| 154 | - require: |
| 155 | - file: aptly_gpg_key_dir |
| 156 | |
| 157 | import_gpg_pub_key: |
| 158 | cmd.run: |
| 159 | - name: gpg --no-tty --import {{ gpgpubfile }} |
| 160 | - user: aptly |
Filip Pytloun | e8f28f8 | 2017-01-23 10:57:47 +0100 | [diff] [blame] | 161 | - unless: gpg --no-tty{% if server.gpg.get('homedir', None) %} --homedir {{ server.gpg.homedir }}{% endif %} --list-keys | grep '{{ server.gpg.keypair_id }}' |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 162 | - require: |
Filip Pytloun | 62dd72c | 2017-02-24 17:34:59 +0100 | [diff] [blame] | 163 | - file: gpg_pub_key |
Filip Pytloun | 6467a28 | 2017-05-26 11:35:56 +0200 | [diff] [blame] | 164 | - cmd: import_gpg_priv_key |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 165 | |
| 166 | import_gpg_priv_key: |
| 167 | cmd.run: |
Filip Pytloun | e8f28f8 | 2017-01-23 10:57:47 +0100 | [diff] [blame] | 168 | - name: gpg --no-tty --allow-secret-key-import{% if server.gpg.get('homedir', None) %} --homedir {{ server.gpg.homedir }}{% endif %} --import {{ gpgprivfile }} |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 169 | - user: aptly |
Filip Pytloun | e8f28f8 | 2017-01-23 10:57:47 +0100 | [diff] [blame] | 170 | - unless: gpg --no-tty{% if server.gpg.get('homedir', None) %} --homedir {{ server.gpg.homedir }}{% endif %} --list-secret-keys | grep '{{ server.gpg.keypair_id }}' |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 171 | - require: |
| 172 | - file: aptly_gpg_key_dir |
Filip Pytloun | 62dd72c | 2017-02-24 17:34:59 +0100 | [diff] [blame] | 173 | - file: gpg_priv_key |
Filip Pytloun | 23cee8d | 2016-12-12 12:29:02 +0100 | [diff] [blame] | 174 | - require_in: |
| 175 | - cmd: aptly_installed |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 176 | |
| 177 | {%- endif %} |
| 178 | |
Andrey | 437e249 | 2017-10-24 17:38:28 -0500 | [diff] [blame] | 179 | include: |
| 180 | - aptly.server.repos |
| 181 | - aptly.server.mirrors |
| 182 | |
Filip Pytloun | 9534729 | 2015-10-06 16:28:31 +0200 | [diff] [blame] | 183 | {%- endif %} |
| 184 | |