qubes-apply
python script to automate qubes saltstack
git clone https://9o.is/git/qubes-apply.git
init.sls
(1326B)
1 {% set wg = salt['pillar.get']('wireguard') %}
2
3 /rw/config/wireguard:
4 file.directory:
5 - dir_mode: 0700
6 - file_mode: 0600
7
8 /rw/config/rc.local.d/290-wireguard-symlink.rc:
9 file.managed:
10 - mode: 0755
11 - makedirs: True
12 - contents: |
13 #!/usr/bin/bash
14 rm -rf /etc/wireguard
15 ln -s /rw/config/wireguard /etc/wireguard
16
17 {% for name in wg.imports %}
18
19 {% set config = wg.config.default %}
20 {% set _ = config.update(wg.config[name]) %}
21
22 /rw/config/wireguard/{{ name }}.conf:
23 file.managed:
24 - mode: 0600
25 ini.options_present:
26 - separator: "="
27 - sections:
28 Interface:
29 Address: {{ config.Address }}
30 PrivateKey: {{ config.PrivateKey }}
31 PostUp: {{ config.PostUp }}
32 Peer:
33 PublicKey: {{ config.PublicKey }}
34 AllowedIPs: {{ config.AllowedIPs }}
35 Endpoint: {{ config.Endpoint ~ ':' ~ config.Port }}
36
37 {% endfor %}
38
39 {% if wg.autoconnect %}
40
41 /rw/config/rc.local.d/299-wireguard-autoconnect.rc:
42 file.managed:
43 - mode: 0755
44 - makedirs: True
45 - contents: |
46 #!/usr/bin/bash
47 [[ "${HOSTNAME}" =~ ^.+-dvm$ ]] && exit 0
48 connect {{ wg.autoconnect }}
49
50 {% endif %}
51
52 /usr/local/bin/connect:
53 file.managed:
54 - source: salt://{{ slspath }}/files/connect
55 - mode: 0755
56 - makedirs: True