mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-11 01:04:41 +02:00
feat(auth): annuaire Authentik + portail consoles Guacamole (#76)
- k8s/apps/authentik : IdP OIDC (auth.lab.local), namespace auth — server + worker 2026.5.3, Redis in-cluster, PG sur storage-01, PVC media - k8s/apps/guacamole : portail consoles SSH web s01/g01 (portail.lab.local) — guacd + webapp 1.6.0, SSO OIDC vers Authentik, Job initdb idempotent - ansible : rôle console_user (user sans sudo pour les consoles, s01 + g01), bases PG authentik/guacamole, secrets vault (mdp PG + clé SSH console) - doc : admin/k8s/auth-portal.md (déploiement, config initiale, pièges) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
09ca0be469
commit
87b786eb57
21 changed files with 775 additions and 64 deletions
27
ansible/roles/console_user/README.md
Normal file
27
ansible/roles/console_user/README.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# Rôle `console_user`
|
||||
|
||||
Crée l'utilisateur **`console`** (non privilégié, sans sudo) sur les hôtes AlmaLinux.
|
||||
C'est le compte que **Guacamole** (`portail.lab.local`) utilise pour ouvrir les
|
||||
consoles SSH web vers storage-01 et gpu-01.
|
||||
|
||||
## Variables
|
||||
|
||||
| Variable | Défaut | Rôle |
|
||||
|---|---|---|
|
||||
| `console_user_name` | `console` | Nom du compte |
|
||||
| `console_user_home` | `/home/console` | Home |
|
||||
| `console_user_public_key` | clé ed25519 (défauts) | Clé publique autorisée — appairée avec `vault_console_ssh_private_key` |
|
||||
|
||||
## Caveats
|
||||
|
||||
- La **clé privée** correspondante est dans le vault (`vault_console_ssh_private_key`) ;
|
||||
elle se colle dans les paramètres de connexion Guacamole (UI → stockée dans la base
|
||||
`guacamole` sur storage-01). `make vault-view` pour la récupérer.
|
||||
- `exclusive: true` sur `authorized_keys` : toute clé ajoutée à la main sur ce compte
|
||||
sera supprimée au run suivant.
|
||||
- **Pas de sudo** volontairement. Pour de l'administration, ouvrir une session avec un
|
||||
compte admin classique, pas via le portail.
|
||||
- Rotation de clé : régénérer une paire ed25519, remplacer la clé publique ici et la
|
||||
privée dans le vault + dans les connexions Guacamole, puis re-appliquer le rôle.
|
||||
|
||||
Doc portail complète : `admin/k8s/auth-portal.md`.
|
||||
7
ansible/roles/console_user/defaults/main.yml
Normal file
7
ansible/roles/console_user/defaults/main.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
console_user_name: console
|
||||
console_user_home: /home/console
|
||||
|
||||
# Clé publique appairée avec vault_console_ssh_private_key (vault) — la clé privée
|
||||
# est collée dans les paramètres de connexion Guacamole (UI, stockée dans sa base).
|
||||
console_user_public_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKdt0yocK6OvPewhO8l3zHT3t37D+agl9sl0oj4r1OgT console@guacamole-portail"
|
||||
19
ansible/roles/console_user/tasks/main.yml
Normal file
19
ansible/roles/console_user/tasks/main.yml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
# Utilisateur non privilégié pour les consoles SSH du portail Guacamole
|
||||
# (portail.lab.local). Pas de sudo : les utilisateurs du portail observent,
|
||||
# l'administration reste sur les comptes habituels.
|
||||
|
||||
- name: Create console user
|
||||
ansible.builtin.user:
|
||||
name: "{{ console_user_name }}"
|
||||
shell: /bin/bash
|
||||
home: "{{ console_user_home }}"
|
||||
create_home: true
|
||||
state: present
|
||||
|
||||
- name: Authorize Guacamole SSH key
|
||||
ansible.posix.authorized_key:
|
||||
user: "{{ console_user_name }}"
|
||||
key: "{{ console_user_public_key }}"
|
||||
exclusive: true
|
||||
state: present
|
||||
Loading…
Add table
Add a link
Reference in a new issue