73 lines
2.4 KiB
Markdown
73 lines
2.4 KiB
Markdown
# CLAUDE.md
|
|
|
|
## Commandes Terraform
|
|
|
|
Le `.env` est gitignore — le sourcer avant chaque commande Terraform :
|
|
|
|
```bash
|
|
source ~/homelab/.env
|
|
cd ~/homelab/terraform/proxmox
|
|
terraform apply
|
|
```
|
|
|
|
## Commandes Ansible
|
|
|
|
Toujours `--ask-vault-pass`, jamais `--vault-password-file`.
|
|
Toujours lancer depuis `~/homelab/ansible/` (ansible.cfg y est).
|
|
|
|
```bash
|
|
cd ~/homelab/ansible
|
|
|
|
# Déployer tout
|
|
ansible-playbook -i inventory/hosts.yml site.yml --ask-vault-pass
|
|
|
|
# Un seul playbook
|
|
ansible-playbook -i inventory/hosts.yml playbooks/forgejo.yml --ask-vault-pass
|
|
|
|
# É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
|
|
```
|
|
|
|
## 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 |
|
|
| vm-runner | 192.168.1.53 | Forgejo Actions Runner |
|
|
| 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`,
|
|
`vault_admin_password`, `vault_wg_*`, `vault_forgejo_runner_token`
|
|
|
|
## 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
|