green-spider/devops/README.md

73 lines
1.8 KiB
Markdown
Raw Normal View History

2018-08-27 20:17:46 +02:00
# DevOps
Die Skripte in diesem Verzeichnis erlauben das weitgehend automatisierte
2018-08-27 20:17:46 +02:00
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
2018-08-27 20:17:46 +02:00
- 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.
2018-08-27 20:17:46 +02:00
## Spider starten
```nohighlight
2018-08-27 20:50:18 +02:00
devops/run-job.sh spider
```
2018-08-27 20:17:46 +02:00
## Screenshots erstellen
2018-08-27 20:17:46 +02:00
```nohighlight
2018-08-27 20:50:18 +02:00
devops/run-job.sh screenshotter
2018-08-27 20:17:46 +02:00
```
## Webapp deployen
```nohighlight
devops/deploy-webapp.sh
```
2019-05-05 22:42:48 +02:00
## Einloggen per SSH
```
2019-07-14 22:50:44 +02:00
devops/ssh.sh
2019-05-05 22:42:48 +02:00
```
## LetsEncrypt Zertifikat erneuern
Hostname: `green-spider.netzbegruenung.de`
Job-Verwaltung mit RQ, und vieles mehr (#149) * 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
2021-11-11 20:15:43 +01:00
```shell
2019-05-05 22:42:48 +02:00
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]
```