Homelab/CLAUDE.md

74 lines
2.4 KiB
Markdown
Raw Normal View History

2026-04-30 08:15:18 +00:00
# CLAUDE.md
## Commandes Terraform
Le `.env` est gitignore — le sourcer avant chaque commande Terraform :
```bash
source ~/homelab/.env
cd ~/homelab/terraform/proxmox
terraform apply
```
2026-04-30 08:15:18 +00:00
## Commandes Ansible
Toujours `--ask-vault-pass`, jamais `--vault-password-file`.
Toujours lancer depuis `~/homelab/ansible/` (ansible.cfg y est).
2026-04-30 08:15:18 +00:00
```bash
cd ~/homelab/ansible
2026-04-30 08:15:18 +00:00
# Déployer tout
ansible-playbook -i inventory/hosts.yml site.yml --ask-vault-pass
2026-04-30 08:15:18 +00:00
# Un seul playbook
ansible-playbook -i inventory/hosts.yml playbooks/forgejo.yml --ask-vault-pass
2026-04-30 08:15:18 +00:00
# Éditer le vault
ansible-vault edit inventory/group_vars/all/vault.yml --ask-vault-pass
```
## Déploiement d'une nouvelle VM
Ordre obligatoire :
```bash
cd ~/homelab/ansible
ansible-playbook -i inventory/hosts.yml playbooks/base.yml --limit <vm> --ask-vault-pass
ansible-playbook -i inventory/hosts.yml playbooks/docker.yml --limit <vm> --ask-vault-pass
ansible-playbook -i inventory/hosts.yml playbooks/<service>.yml --ask-vault-pass
2026-04-30 08:15:18 +00:00
```
## SSH agent (obligatoire avant Ansible)
```bash
eval $(ssh-agent -s) && ssh-add ~/.ssh/homelab
```
## Infrastructure
| Hôte | IP | Rôle |
|------|----|------|
| Proxmox | 192.168.1.242 | Hyperviseur |
| vm-gateway | 192.168.1.254 | WireGuard |
| vm-forgejo | 192.168.1.50 | Forgejo :3000 |
| vm-nextcloud | 192.168.1.51 | Nextcloud :8080 |
| vm-tools | 192.168.1.52 | Stirling PDF :8081 |
2026-04-30 10:07:23 +00:00
| vm-runner | 192.168.1.53 | Forgejo Actions Runner |
2026-04-30 08:15:18 +00:00
| VPS Scaleway | 51.158.126.113 | Caddy + WireGuard |
| QNAP | 192.168.1.208 | NAS NFS/SMB |
## Vault — variables clés
`vault_forgejo_db_password`, `vault_forgejo_domain`, `vault_nextcloud_db_password`,
`vault_nextcloud_admin_user`, `vault_nextcloud_admin_password`, `vault_nextcloud_domain`,
2026-04-30 10:07:23 +00:00
`vault_admin_password`, `vault_wg_*`, `vault_forgejo_runner_token`
2026-04-30 08:15:18 +00:00
## Pièges connus
- Les VMs Rocky Linux utilisent `firewalld`, le VPS Debian utilise `ufw`
- Docker gère lui-même les règles firewalld — ne pas les gérer dans les playbooks
- `NEXTCLOUD_TRUSTED_DOMAINS` n'est lu qu'au premier démarrage — utiliser `occ` pour modifier après install
- Le VPS a `ansible_user: Elewyn` (root SSH désactivé)
- Forgejo runner : la registration nécessite `user: "0:0"` et `working_dir: /data` — sinon permission denied sur `.runner`
- Terraform : `clone.datastore_id` et `initialization.datastore_id` doivent être explicites — `local-lvm` n'existe plus sur ce Proxmox