Theodem

Aus Stratum 0
Version vom 23:19, 14. Feb. 2019 von Daniel Bohrer (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Theodem
Beschreibung: VM für Vorstandsfoo
Ort: endor
Status: working (Was heißt das?)
Kontakt: Emantor, chrissi^

SSH-Keys

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

$ for i in  /etc/ssh/ssh_host_*.pub; do ssh-keygen -lf $i; done
1024 ea:74:1e:22:63:7e:48:29:eb:60:c7:0c:2f:3c:56:60 /etc/ssh/ssh_host_dsa_key.pub (DSA)
256 ad:de:1a:1f:2b:8f:e4:5c:cb:72:0a:e2:f3:48:73:b1 /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)
256 2e:f0:ac:eb:83:6d:5c:5a:20:8f:8f:16:7a:8a:e9:13 /etc/ssh/ssh_host_ed25519_key.pub (ED25519)
2048 a3:28:ca:9f:9a:f5:ee:b7:5e:13:7a:9d:35:db:94:ca /etc/ssh/ssh_host_rsa_key.pub (RSA)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCgAGBQJXeHGPAAoJELJBPGbdLD/qO2QP/1ATa80NxMB5CHzpyWBq3tqV
zZYMAH2Hx1CQWZDQ/ATTfzt4duGL9REOVlkWIjsYlIEKgCSWT5vv9fuuDJIbKjfj
otPgB7SHZ5J9O4HtduneKNxWFb2VQvZiW7GD0Rrps2WD7PHtHmF2BjjkemWwkL1a
9AdpxxHfUB8Jr+06ciIe/z94mFlCPpr4phe1HW5WvPP/AlrIf+GYVCZL3J3FIcxh
HUGcykabjAoYhW6LDKL8ovVJkn8tf38D3LUJv7fePOGb9SFk/xf6JO30mveIRChz
pMUhyqPg6/qlZ4itxzFAzYs61hovK8PnD6eBk87PtJS2GE5jWnMmyO2y2xmQpGQH
c10Zq477R6useUDjc7xq/R6Ays5wM6extw8KA5UrQRikifA0yS0MdVnlqWbTufYj
9mlV0BBGPYN/zA55ui/mp2cDA9ph5/m+ZM5AC3mh8jxYMTWPEUBhCAK4UWfYjDy3
W6aX/WxV+hcQAivG1K97Skd3DIdSsokCVFoYrJMJ8SvVmI3kTTZL5AwcmW4A1s8A
fW5Oq2kIc5h6indDyy8tgN3dQodMWl5Nd5okEomCaIiT4YFMP65k5rZMLA8PE9Fv
JVYo/6IA7M+8qs5/hMVAbSNqZnm1CntgKNmSM2T8OWlyNyuxzb1AR2lM2CdIcrFf
tsFJqwX82h1NsOre6Lec
=OiC3
-----END PGP SIGNATURE-----

Doku

  • Debian stretch, systemd
  • 512 MB RAM
  • 6 GB Platte
  • 2 CPU-Kerne
  • Netzwerk intern, statisch via /etc/systemd/network/eth0.network
  • gitolite3 in /var/lib/gitolite3/, user git
  • s0v-finanzen-Repo:
    • post-receive-Hook ist manuell im Repository angelegt, delegiert an
      • /var/lib/gitolite3/scripts/jverein-finance-report/hook.sh
        • benutzt virtualenv unter /var/lib/gitolite3/scripts/jverein-finance-report/venv
      • /var/lib/gitolite3/scripts/jverein-regressionstests/run_tests.sh
        • Verschickt die Reports an: rou***@c*.de, chr***@t*.de
  • SSH via Port-Forwarding von gandolf, Port 2222
  • Alle Dateien in /var/www/html werden auf regolas gesynct, sobald die Datei /var/www/html/.dirty angelegt wird (z.B. durch Ausführen von /usr/local/bin/regolas-rsync, was auch stündlich als Cronjob geschieht). Die Dateien sind damit unter https://data.stratum0.org erreichbar.

Skripte etc

/home/regolas-rsync/bin/regolas-rsync:

#!/bin/sh
rsync \
  --recursive --delete --stats \
  --chmod=D2755,F644 \
  --exclude='.*' \
  /var/www/html/ theodem-rsync@regolas:/var/www/data.stratum0.org/ | \ 
  sed 's/^/regolas-rsync: /'  

/etc/systemd/system/regolas-rsync.service:

[Unit]
Description=rsync everything from /var/www/html to regolas
Requires=network.target

[Service]
User=regolas-rsync
Group=www-data
ExecStart=/bin/sh -c '                            \
  while true; do                                  \
    if [ -r /var/www/html/.dirty ]; then          \
      /home/regolas-rsync/bin/regolas-rsync;      \
      rm -f /var/www/html/.dirty;                 \
    fi;                                           \
    sleep 1;                                      \                                                    
  done'
Restart=always

[Install]
WantedBy=multi-user.target

Services

  • Finanzreport (Schatzmeister)
    • Git-Hook in /var/lib/gitolite3/repositories/s0v-finanzen.git/hooks/post-receive


SSH-Config

Die folgende ~/.ssh/config ist ein Beispiel, wie theodem erreicht werden kann.

 Host theodem
     User chrissi
     Port 2222
     HostName theodem.stratum0.org

gitolite

Übersicht der eigenen Repositories

Man kann sich alle Repositories anzeigen lassen, auf die man zugriff hat:

$ ssh git@theodem

hello chrissi, this is git@theodem running gitolite3 3.6.6-1 (Debian) on git 2.11.0

  R W	gitolite-admin
  R W	s0v-dokumente
  R W	s0v-finanzen
  R W	s0v-mails2011
  R W	s0v-mails2012
  R W	s0v-mails2013
  R W	s0v-mails2014
  R W	s0v-mails2015
  R W	s0v-mails2016
  R W	s0v-mails2017
  R W	s0v-mails2018
  R W	s0v-mails2019
Repository klonen

Die URL eines Repositories ergibt sich aus seinem Namen und der Basisurl:

 git@theodem:<Name>

z.B.:

 git@theodem:s0v-dokumente