mirror of
https://github.com/netzbegruenung/green-spider.git
synced 2024-05-01 00:24:51 +02:00
Marian Steinbach
618e29d763
* CLI: remove 'jobs' command, add 'manager' * Add job definition * Move jobs to manage folder * Rename jobs to manager * Add rq and redis dependencies * Add docker-compose YAML * Downgrade to alpine 3.8 * Adjust paths in Dockerfile, remove entrypoint * Rename 'make spiderjobs' to 'make jobs' * Fix docker exectution * Adapt 'make jobs' * Fix metadata scheme * Add docker dependency * Rendomize queue (a bit) * Use latest image, remove debug output * Make docker-compose file downwards-compatible * Use latest instead of dev image tag * Update docker-compose.yaml * Adapt job start script * Fix redis connection in manager * Add support for increasing timeout via environment variable * Adapt load_in_browser to cookies table schema change * Fix execution * Mitigate yaml warning * Bump some dependency versions * Report resource usage stats for each job * checks/load_in_browser: Return DOM size, prevent multiple page loads * Update .dockerignore * Code update * Script update * Update README.md * WIP * WIP commit * Update Dockerfile to alpine:edge and chromium v90 * Update TestCertificateChecker * Set defaults for __init__ function * Detect sunflower theme * Update unit test for new datetime (zero-basing) * Set logging prefs from Chromium in a new way * Move datastore client instantiation As it is not needed for all commands * Change green-directory repository URL * Add git settings for cloning green-directory * Pin alpine version 3.14, fix py3-cryptography * Use plain docker build progress output * Add volumes to 'make test' docker run command * Fix bug * Update example command in README * Update dependencies * Add creation of Kubernetes jobs
73 lines
1.8 KiB
Markdown
73 lines
1.8 KiB
Markdown
# DevOps
|
|
|
|
Die Skripte in diesem Verzeichnis erlauben das weitgehend automatisierte
|
|
Provisionieren eines Servers, Ausführen von Jobs wie Spider und Screenshotter
|
|
und Entfernen des Servers.
|
|
|
|
**Warnung**: Die Scripte sind aktuell so einfach, dass die erzeugten Server nur nach erfolgreicher
|
|
Ausführung des Jobs entfernt werden. Im Fall eines Fehlers muss der provisionierte
|
|
Server unbedingt manuell entfernt werden, um unnötige Kosten zu vermeiden.
|
|
|
|
## Voraussetzungen
|
|
|
|
- SSH Public Key ist bei Hetzner hinterlegt und in den scripten eingetragen (siehe 'ssh_keys')
|
|
- API Token für Hetzner in Datei 'secrets/hetzner-api-token.sh' im Format 'export API_TOKEN=<token>'
|
|
- Service account JSON Datei mit Schreibrechten in 'secrets/datastore-writer.json'
|
|
- curl
|
|
- jq (https://stedolan.github.io/jq/)
|
|
- ssh
|
|
|
|
## Generelles
|
|
|
|
- Die Skripte müssen aus dem root-Verzeichnis des git repositories ausgeführt werden
|
|
- Der Terminal muss bis zum Ende der Ausführung geöffnet bleiben.
|
|
|
|
## Spider starten
|
|
|
|
```nohighlight
|
|
devops/run-job.sh spider
|
|
```
|
|
|
|
## Screenshots erstellen
|
|
|
|
```nohighlight
|
|
devops/run-job.sh screenshotter
|
|
```
|
|
|
|
## Webapp deployen
|
|
|
|
```nohighlight
|
|
devops/deploy-webapp.sh
|
|
```
|
|
|
|
## Einloggen per SSH
|
|
|
|
```
|
|
devops/ssh.sh
|
|
```
|
|
|
|
## LetsEncrypt Zertifikat erneuern
|
|
|
|
Hostname: `green-spider.netzbegruenung.de`
|
|
|
|
```shell
|
|
docker-compose stop webapp
|
|
docker run -it --rm -p 443:443 -p 80:80 --name certbot \
|
|
-v /etc/letsencrypt:/etc/letsencrypt \
|
|
-v /var/lib/letsencrypt:/var/lib/letsencrypt \
|
|
certbot/certbot certonly --standalone -n --email marian@sendung.de --agree-tos -d green-spider.netzbegruenung.de
|
|
docker-compose up -d webapp
|
|
```
|
|
|
|
## IPv6 "Floating IP" temporär an Device binden
|
|
|
|
```
|
|
sudo ip addr add 2a01:4f8:1c0c:811f::1 dev eth0
|
|
```
|
|
|
|
## curl-Zugriff mittels IPv6
|
|
|
|
```
|
|
curl https://[2a01:4f8:1c0c:811f::1]
|
|
```
|