Beispiel Caddy Webserver

Aufgabe

  1. caddy aus dem Internet downloaden und nach /opt/caddy entpacken
  2. Systemd konfiguration nach /etc/systemd/system verlinken
  3. Systemd neu starten
  4. /opt/caddy/caddy nach /usr/local/bin/ verlinken
  5. System-Benutzer und Gruppe caddy anlegen
  6. Ein Doc-Root anlegen
  7. Content verteilen
  8. Eine minimale Webserverkonfiguration ausrollen
  9. Webserver starten
  10. 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

results matching ""

    No results matching ""