misc updates on states

This commit is contained in:
Paul 2021-12-29 15:45:48 +01:00
parent 8a0dda416e
commit 8663641632
25 changed files with 233 additions and 26 deletions

View File

@ -30,7 +30,7 @@ def get_apikey(configfile="/root/.config/syncthing/config.xml"):
def get_config(url, verify, apikey): def get_config(url, verify, apikey):
fullurl = f"{url}/rest/system/config" fullurl = f"{url}/rest/config"
req = Request(method="GET", req = Request(method="GET",
url=fullurl) url=fullurl)
req.add_header("X-API-Key", apikey) req.add_header("X-API-Key", apikey)
@ -44,7 +44,7 @@ def get_config(url, verify, apikey):
def set_config(url, verify, apikey, config): def set_config(url, verify, apikey, config):
fullurl = f"{url}/rest/system/config" fullurl = f"{url}/rest/config"
req = Request(method="POST", req = Request(method="POST",
url=fullurl, url=fullurl,
data=json.dumps(config).encode()) data=json.dumps(config).encode())
@ -64,7 +64,7 @@ def set_config(url, verify, apikey, config):
def insync(url, verify, apikey): def insync(url, verify, apikey):
fullurl = f"{url}/rest/system/config/insync" fullurl = f"{url}/rest/config/restart-required"
req = Request(method="GET", req = Request(method="GET",
url=fullurl) url=fullurl)
req.add_header("X-API-Key", apikey) req.add_header("X-API-Key", apikey)

View File

@ -36,3 +36,9 @@ arduino-shortcut:
- onchanges: - onchanges:
- arduino-archive-extract - arduino-archive-extract
- arduino-symlink - arduino-symlink
arduino-cleanup:
software.cleanup:
- name: arduino
- path: {{ arduino.release_dir }}
- version: "{{ arduino.version }}"

View File

@ -35,4 +35,4 @@ dkron-cleanup:
software.cleanup: software.cleanup:
- name: dkron - name: dkron
- path: {{ dkron.release_dir }} - path: {{ dkron.release_dir }}
- version: {{ dkron.version }} - version: "{{ dkron.version }}"

View File

@ -21,4 +21,4 @@ golang-cleanup:
software.cleanup: software.cleanup:
- name: go - name: go
- path: {{ golang.release_dir }} - path: {{ golang.release_dir }}
- version: {{ golang.version }} - version: "{{ golang.version }}"

View File

@ -34,12 +34,6 @@ influxdb-archive-extract:
- watch_in: - watch_in:
- service: influxdb-service - service: influxdb-service
influxdb-cleanup:
software.cleanup:
- name: influxdb
- path: {{ influxdb.release_dir }}
- version: {{ influxdb.version }}
influxdb-bin-symlink: influxdb-bin-symlink:
file.symlink: file.symlink:
- name: {{ influxdb.install_dir }}/influxdb - name: {{ influxdb.install_dir }}/influxdb
@ -59,3 +53,9 @@ influxdb-{{ bin }}-symlink:
- name: /usr/local/sbin/{{ bin }} - name: /usr/local/sbin/{{ bin }}
- target: {{ influxdb.install_dir }}/influxdb/{{ bin }} - target: {{ influxdb.install_dir }}/influxdb/{{ bin }}
{%- endfor %} {%- endfor %}
influxdb-cleanup:
software.cleanup:
- name: influxdb
- path: {{ influxdb.release_dir }}
- version: "{{ influxdb.version }}"

View File

@ -23,4 +23,4 @@ ipbl-cleanup:
software.cleanup: software.cleanup:
- name: ipbl - name: ipbl
- path: {{ ipbl.release_dir }} - path: {{ ipbl.release_dir }}
- version: {{ ipbl.version }} - version: "{{ ipbl.version }}"

View File

@ -20,4 +20,4 @@ lego-cleanup:
software.cleanup: software.cleanup:
- name: lego - name: lego
- path: {{ lego.release_dir }} - path: {{ lego.release_dir }}
- version: {{ lego.version }} - version: "{{ lego.version }}"

View File

@ -18,14 +18,14 @@ nextcloud-install-link:
- target: {{ nextcloud.release_dir }}/nextcloud-{{ nextcloud.version }} - target: {{ nextcloud.release_dir }}/nextcloud-{{ nextcloud.version }}
- force: true - force: true
nextcloud-cleanup:
software.cleanup:
- name: nextcloud
- path: {{ nextcloud.release_dir }}
- version: {{ nextcloud.version }}
nextcloud-datadirectory: nextcloud-datadirectory:
file.directory: file.directory:
- name: {{ nextcloud.config.datadirectory }} - name: {{ nextcloud.config.datadirectory }}
- user: {{ nextcloud.user }} - user: {{ nextcloud.user }}
- group: {{ nextcloud.group }} - group: {{ nextcloud.group }}
nextcloud-cleanup:
software.cleanup:
- name: nextcloud
- path: {{ nextcloud.release_dir }}
- version: "{{ nextcloud.version }}"

View File

@ -0,0 +1,45 @@
## {{ salt['pillar.get']('salt_managed', default='Salt Managed') }}
server {
include http;
server_name {{ vhost_name }};
return 301 https://$server_name$request_uri;
}
server {
include https;
{%- if internal_access %}
include access;
{%- endif %}
server_name {{ vhost_name }};
{%- if not proxy %}
root "{{ root_dir }}";
ssl_certificate /etc/acme/certs/services-rd.cert;
ssl_certificate_key /etc/acme/keys/services-rd.key;
{%- endif %}
location / {
{%- if proxy %}
proxy_pass {{ proxy_pass }};
{%- if not cache %}
proxy_no_cache 1;
proxy_cache_bypass 1;
{%- endif %}
{%- endif %}
{%- if autoindex %}
autoindex on;
autoindex_localtime on;
{%- else %}
index index.html index.rss;
{% endif %}
}
{%- for dir in dirs %}
location {{ dir.name }} {
alias {{ dir.alias }};
}
{%- endfor %}
location /robots.txt {
return 200 "User-agent: *\r\nDisallow: /";
}
}

View File

@ -0,0 +1,27 @@
---
{%- from "openvpn_server/map.jinja" import openvpn_server with context %}
{%- for key, instance in openvpn_server.config.items() %}
openvpn-server-{{ key }}-config:
file.managed:
- name: /etc/openvpn/{{ key }}.conf
- source: salt://openvpn_server/templates/{{ key }}.conf.j2
- user: root
- group: root
- mode: 0600
- template: jinja
- context:
ca: |
{{ instance.ca|indent(8) }}
cert: |
{{ instance.cert|indent(8) }}
key: |
{{ instance.key|indent(8) }}
dh: |
{{ instance.dh|indent(8) }}
routes: {{ instance.routes }}
config: {{ instance.config }}
tunnel: {{ instance.tunnel }}
dns: {{ instance.dns }}
- watch_in:
- service: openvpn-server-{{ key }}-service
{%- endfor %}

View File

@ -0,0 +1,18 @@
---
openvpn_server:
enabled: true
config:
vpn:
name: vpn
ca: ""
cert: ""
key: ""
dh: ""
tunnel:
ip: '10.99.99.0'
netmask: '255.255.255.0'
config: {}
ccd: None
dns:
- '1.1.1.1'
- '1.0.0.1'

View File

@ -0,0 +1,5 @@
---
include:
- .install
- .config
- .service

View File

@ -0,0 +1,9 @@
---
openvpn-server-install:
pkg.installed:
- name: openvpn
openvpn-server-ccd-dir:
file.directory:
- name: /etc/openvpn/ccd/
- mode: 0600

View File

@ -0,0 +1,8 @@
{%- import_yaml "openvpn_server/defaults.yaml" as defaults %}
{%- set openvpn_server = salt['pillar.get'](
'openvpn_server',
default=defaults.openvpn_server,
merge=True
)
-%}

View File

@ -0,0 +1,8 @@
---
{%- from "openvpn_server/map.jinja" import openvpn_server with context %}
{%- for key, instance in openvpn_server.config.items() %}
openvpn-server-{{ key }}-service:
service.running:
- name: openvpn@{{ key }}
- enable: True
{%- endfor %}

View File

@ -0,0 +1,62 @@
<ca>
{{ ca }}
</ca>
<cert>
{{ cert }}
</cert>
<key>
{{ key }}
</key>
<dh>
{{ dh }}
</dh>
proto udp6
port 1194
dev tun
client-config-dir /etc/openvpn/ccd
client-to-client
topology subnet
user root
group root
duplicate-cn
username-as-common-name
keepalive 5 30
compress lzo
fast-io
persist-key
persist-tun
server {{ tunnel.ip }} {{ tunnel.netmask }}
{%- for route in routes %}
{%- if not route.push %}
route {{ route.ip }} {{ route.netmask }} {{ route.hop }}
{%- endif %}
{% endfor -%}
{% for route in routes -%}
push "route {{ route.ip }} {{ route.netmask }} {{ route.hop }}"
{% endfor -%}
push "dhcp-option DNS {{ dns|join(" ") }}"
# IPv6
#server-ipv6 2a01:e0a:97:8311::/64
#tun-ipv6
#push tun-ipv6
#ifconfig-ipv6 2a01:e0a:97:8311::1 2a01:e0a:97:8311::2
#ifconfig-ipv6-pool 2a01:e0a:97:8311::101/64
#push "route-ipv6 2a01:e0a:97:8311::/64"
#push "route-ipv6 ::/0"
#push "redirect-gateway-ipv6 def1"
{% if config.auth == "pam" %}
plugin /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so /etc/pam.d/login
{% endif %}
status {{ config.status|default("/var/log/openvpn/vpn.status") }}

View File

@ -23,4 +23,4 @@ qrz-cleanup:
software.cleanup: software.cleanup:
- name: qrz - name: qrz
- path: {{ qrz.release_dir }} - path: {{ qrz.release_dir }}
- version: {{ qrz.version }} - version: "{{ qrz.version }}"

View File

@ -20,4 +20,4 @@ rclone-cleanup:
software.cleanup: software.cleanup:
- name: rclone - name: rclone
- path: {{ rclone.release_dir }} - path: {{ rclone.release_dir }}
- version: v{{ rclone.version }} - version: "v{{ rclone.version }}"

View File

@ -26,7 +26,6 @@ repo-{{ repo['name'] }}:
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
- refresh: true
{%- else %} {%- else %}
repo-{{ repo['name'] }}: repo-{{ repo['name'] }}:

View File

@ -10,6 +10,7 @@ KillMode=process
NotifyAccess=all NotifyAccess=all
LimitNOFILE=8192 LimitNOFILE=8192
ExecStart=/usr/local/bin/salt-minion ExecStart=/usr/local/bin/salt-minion
TimeoutStopSec=10s
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@ -34,4 +34,4 @@ telegraf-cleanup:
software.cleanup: software.cleanup:
- name: telegraf - name: telegraf
- path: {{ telegraf.release_dir }} - path: {{ telegraf.release_dir }}
- version: {{ telegraf.version }} - version: "{{ telegraf.version }}"

View File

@ -52,4 +52,4 @@ telegram-cleanup:
software.cleanup: software.cleanup:
- name: telegram - name: telegram
- path: {{ telegram.release_dir }} - path: {{ telegram.release_dir }}
- version: {{ telegram.version }} - version: "{{ telegram.version }}"

14
states/tests/init.sls Normal file
View File

@ -0,0 +1,14 @@
#!py
import os
import requests
def update_status(url="https://www.paulbsd.com", data={}):
req = requests.request(url=url, method="POST", json=data)
return req.text
def run():
a = update_status(data={"test":"test"})
with open("/tmp/test.txt", "w+") as f:
f.write("abcd")
return {}

View File

@ -11,7 +11,7 @@ transmission:
bind-address-ipv4: "0.0.0.0" bind-address-ipv4: "0.0.0.0"
bind-address-ipv6: "::" bind-address-ipv6: "::"
blocklist-enabled: true blocklist-enabled: true
blocklist-url: "http://john.bitsurge.net/public/biglist.p2p.gz" blocklist-url: "https://git.paulbsd.com/paulbsd/transmission-blocklist/releases/2021.12.29/blocklist.gz"
cache-size-mb: 4 cache-size-mb: 4
dht-enabled: true dht-enabled: true
download-dir: "/mnt/PAULBSDPOOL/downloads" download-dir: "/mnt/PAULBSDPOOL/downloads"

View File

@ -46,3 +46,8 @@ nnoremap <silent> <C-b> :NERDTreeToggle<CR>
" Support for end-of-lines " Support for end-of-lines
" au BufWritePre * :set binary | set noeol " au BufWritePre * :set binary | set noeol
" au BufWritePost * :set nobinary | set eol " au BufWritePost * :set nobinary | set eol
vnoremap <C-a> g<C-a>
vnoremap <C-x> g<C-x>
vnoremap g<C-a> <C-a>
vnoremap g<C-x> <C-x>