Et sted å samarbeide om testing og levering av Discourse og Loomio til medlemmene våre på sikt.
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| common/playbooks | ||
| group_vars/all | ||
| loomio | ||
| .gitignore | ||
| .python-version | ||
| .sops.yaml | ||
| ansible.cfg | ||
| inventory.yaml | ||
| pyproject.toml | ||
| README.md | ||
| requirements.yaml | ||
| uv.lock | ||
Systemer
Et sted å samarbeide om testing og levering av Discourse og Loomio til medlemmene våre på sikt.
Oppsett
uv brukes til å håndtere Python og pakker slik at alle har samme versjoner. I tillegg bruker vi ansible-galaxy med requirements.txt for Ansible-pakker.
sops, som står for Secret OPerations, brukes til kryptering av hemmeligheter som er committed til dette repoet. Installasjon av sops ~3.11:
- macOS: brew install sops
age er et verktøy vi bruker til å kryptere hemmelighetene. Det funker sammen med sops. Installasjon av age ~1.2.1:
- macOS: brew install age
Om du ikke har brukt age før, må du:
- Lage en nøkkel:
mkdir ~/.sops && age-keygen -o ~/.sops/key.txt# TODO endre rettighetene til filen? - Konfigurere standardnøkkelen din i shell-profilen:
export SOPS_AGE_KEY_FILE="$HOME/.sops/key.txt"
Med uv, sops og age på plass kan du kjøre:
uv syncuv run ansible-galaxy install -r requirements.yaml
Tilgang
For å få tilgang til hemmeligheter må du dele den offentlige age nøkkelen:
- Kjør:
grep "public key:" ~/.sops/key.txtfor å finne din offentlige nøkkel. - Del nøkkelen med noen som har tilgang.
- De må legge nøkkelen inn i
.sops.yaml. - Deretter kan de kjøre:
sops updatekeys prod.env. - Opprett en PR til dette repoet.
For tilgang til selve VPS-en må du:
- Dele din offentlige SSH-nøkkel.
- Få noen med tilgang til å legge den til i
ssh.yaml. - De må opprette en PR til dette repoet.
- Kjøre
ansible-playbook -i inventory.yaml ssh.yamlnår PR-en er merget. - Da kan du teste tilgang med:
uv run ansible prod -m ping -i inventory.yaml.