Beispiel Caddy Webserver
Aufgabe
- caddy aus dem Internet downloaden und nach /opt/caddy entpacken
- Systemd konfiguration nach
/etc/systemd/system
verlinken - Systemd neu starten
/opt/caddy/caddy
nach/usr/local/bin/
verlinken- System-Benutzer und Gruppe
caddy
anlegen - Ein Doc-Root anlegen
- Content verteilen
- Eine minimale Webserverkonfiguration ausrollen
- Webserver starten
- Caddy soll beim Booten starten
Man lese:
/opt/caddy/init/linux-systemd/README.md
Software auf dem Master hinterlegen
mkdir /srv/salt/linux/caddy
cd /srv/salt/linux/caddy
curl -s "https://caddyserver.com/download/build?os=linux&arch=amd64&features="|tar xzf -
State /srv/salt/linux/caddy/init.sls
definieren:
{% if grains['cpuarch'] != 'x86_64' %}
always-fails:
test.fail_without_changes:
- name: Requirement not met.Only 64bit supported.
- failhard: True
{% endif %}
/usr/local/bin/caddy:
file.managed:
- source: salt://linux/caddy/caddy
- user: root
- group: root
- mode: 777
caddy-group:
group.present:
- name: caddy
- system: true
caddy:
user.present:
- fullname: Caddy Webserver
- shell: /usr/sbin/nologin
- home: /srv/caddy
- createhome: true
- system: true
- groups:
- caddy
- require:
- caddy-group
/etc/caddy:
file.directory:
- user: root
- group: caddy
- require:
- user: caddy
/etc/caddy/Caddyfile:
file.managed:
- contents: |
http://0.0.0.0:8080 {
root /srv/caddy
}
- user: root
- group: caddy
caddy-start:
cmd.run:
- name: nohup caddy >/dev/null 2>&1 &
- runas: caddy
- unless: pgrep caddy
- require:
- file: /usr/local/bin/caddy