91 lines
2.5 KiB
Markdown
91 lines
2.5 KiB
Markdown
|
|
# Ansible Gitea Setup
|
|
|
|
Gitea Setup als Ansible-Rolle. 🎉
|
|
|
|
## TODO
|
|
|
|
- [Alle Umgebungsvariablen](https://docs.gitea.io/en-us/config-cheat-sheet/) unterstützen.
|
|
- Alle Datenbanken unterstützen **oder** eine bestimmet Datenbank unterstützen
|
|
- von mysql zu mariadb migrieren?
|
|
|
|
## Manuelle Schritte
|
|
|
|
Das alles muss man selber machen. ⬇️
|
|
|
|
### Vorbereitung
|
|
|
|
- Einen Reverse-Proxy einrichten
|
|
|
|
#### Benötigte Variablen
|
|
|
|
Damit die Rolle funktioniert muss eine Reihe an Variablen für alle Hosts bereitgestellt werden.
|
|
|
|
| Variable | Beschreibung | Werte |
|
|
|----------|--------------|-------|
|
|
| `gitea['hostname']` | Gitea Hostname | (String) |
|
|
| `gitea['domain']` | Gitea Domain | (String) |
|
|
| `gitea['app_name']` | Titel für die Startseite | (String) |
|
|
| `gitea['database']['db_type']` | Datenbanktyp **(nur "mysql" unterstützt)** | (String) |
|
|
| `gitea['database']['docker_image_tag']` | Docker-Image Tag |
|
|
|
|
Im Inventory sieht das dann in etwa so aus:
|
|
|
|
```yaml
|
|
gitea:
|
|
app_name: Beispiel Gitea Server
|
|
hostname: gitea
|
|
domain: int.example.com
|
|
```
|
|
|
|
#### Optionale Variablen
|
|
|
|
Gitea hat sehr viele Optionen, die per Umgabungsvariablen gesetzt werden. Einige davon werden von dieser Rolle unterstützt. Welche Variablen genau unterstützt werden, kann man in [diesem Template](templates/environment.env.j2) sehen.
|
|
|
|
> **Eine Besonderheit:** Booleans der Gitea Konfiguration müssen als String angegeben werden, da sich Ansibles Boolean-Format von der Gitea Config unterscheidet.
|
|
|
|
Hier eine Beispielkonfiguration:
|
|
|
|
```yaml
|
|
system:
|
|
hostname: example-gitea
|
|
domain: int.example.com
|
|
gitea:
|
|
version: 1.17.3
|
|
app_name: Beispiel Gitea
|
|
service:
|
|
disable_registration: "false"
|
|
require_signin_view: "true"
|
|
register_email_confirm: "false"
|
|
default_keep_email_private: "false"
|
|
default_allow_create_organization: "true"
|
|
default_enable_timetracking: "true"
|
|
repository:
|
|
enable_push_create_user: "true"
|
|
enable_push_create_org: "true"
|
|
default_push_create_private: "false"
|
|
attachment:
|
|
enabled: "true"
|
|
max_files: 5
|
|
max_size: 10
|
|
ssh:
|
|
minimum_key_sizes:
|
|
dsa: -1 # Disable DSA
|
|
rsa: -1 # Disable RSA
|
|
```
|
|
|
|
Für die Definition des Datenbankpassworts werden zusätzlich noch die Variablen `db_secret` und `db_root_secret` aus dem Vault benötigt. Hier ein Beispiel-Vault, um die Struktur klar zu machen:
|
|
|
|
```yaml
|
|
vault:
|
|
example-gitea:
|
|
ansible_become_pass: bgnafeuginae
|
|
gitea:
|
|
db_secret: riasneudfgisn
|
|
db_root_secret: uiqfageksfhgfhgsk
|
|
```
|
|
|
|
### Nachbereitung
|
|
|
|
- Initiales Setup von Gitea via Web Gui durchführen.
|