-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
26 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,33 @@ | ||
# 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. | ||
Provisionieren eines Hetzner Cloud Servers, Ausführen von Spider Jobs und Entfernen des Servers nach Fertigstellung. | ||
|
||
**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' | ||
- 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 mit Schreibrechten für Google Cloud Datenbank als JSON-Datei in `secrets/datastore-writer.json` | ||
- curl | ||
- jq (https://stedolan.github.io/jq/) | ||
- [jq](https://jqlang.github.io/jq/) | ||
- ssh | ||
|
||
## Generelles | ||
|
||
- Die Skripte müssen aus dem root-Verzeichnis des git repositories ausgeführt werden | ||
- Die Skripte müssen aus dem root-Verzeichnis des lokalen clone dieses git Repositories ausgeführt werden. | ||
- Der Terminal muss bis zum Ende der Ausführung geöffnet bleiben. | ||
- Es sollte immer das Container Image verwendet werden, welches das letzte Release abbildet. TODO: Erklären, wie man das am einfachsten findet, und wo die Version angepasst werden muss. | ||
|
||
## Spider starten | ||
|
||
```nohighlight | ||
devops/run-job.sh spider | ||
``` | ||
|
||
## Screenshots erstellen | ||
|
||
```nohighlight | ||
devops/run-job.sh screenshotter | ||
``` | ||
|
||
## Webapp deployen | ||
|
||
```nohighlight | ||
|
@@ -42,31 +36,6 @@ devops/deploy-webapp.sh | |
|
||
## Einloggen per SSH | ||
|
||
``` | ||
```nohighlight | ||
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 [email protected] --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] | ||
``` |