Update peertube.md
This commit is contained in:
parent
de742d0537
commit
3928b36bce
278
peertube.md
278
peertube.md
@ -1,14 +1,208 @@
|
||||
# Desplegament de PeerTube en LXC no privilegiat amb NFS via Proxmox
|
||||
|
||||
## 1. Objectiu
|
||||
## Objectiu
|
||||
|
||||
Aquest document descriu el desplegament d'un servidor PeerTube sobre un contenidor LXC no privilegiat en Proxmox.
|
||||
Aquest document descriu el desplegament d'un servidor PeerTube sobre un contenidor LXC no privilegiat dins d'un Proxmox.
|
||||
|
||||
L'emmagatzematge persistent dels vídeos es proporciona des d'un dataset de TrueNAS exportat per NFS. El muntatge NFS es realitza al host Proxmox i es presenta al contenidor mitjançant un bind mount.
|
||||
|
||||
> **Decisió tècnica:** no es munta NFS directament dins del contenidor perquè es vol mantenir el LXC com a no privilegiat.
|
||||
|
||||
## 2. Arquitectura
|
||||
# Punt zero: accés al laboratori amb túnels SSH
|
||||
|
||||
## 0. Objectiu
|
||||
|
||||
Abans de començar el desplegament de PeerTube, cal definir com accedirem als diferents serveis interns de la infraestructura.
|
||||
|
||||
En aquest escenari, el servidor Proxmox té accés públic per SSH, però alguns serveis interns només són accessibles des de la xarxa privada del laboratori. Per aquest motiu utilitzarem túnels SSH.
|
||||
|
||||
Els túnels SSH permeten obrir un port local al nostre ordinador i redirigir-lo cap a un servei remot que només és visible des del servidor al qual ens connectem.
|
||||
|
||||
## 0.1 Arquitectura d'accés
|
||||
|
||||
```text
|
||||
Ordinador local
|
||||
│
|
||||
│ SSH
|
||||
▼
|
||||
Host Proxmox amb IP pública
|
||||
│
|
||||
├── accés a xarxa privada
|
||||
│
|
||||
├── TrueNAS
|
||||
│
|
||||
├── contenidors LXC
|
||||
│
|
||||
└── serveis web interns
|
||||
```
|
||||
|
||||
> **Decisió tècnica:** no exposarem directament tots els serveis interns a Internet. Accedirem a les interfícies d'administració mitjançant túnels SSH quan sigui necessari.
|
||||
|
||||
## 0.2 Túnel SSH simple
|
||||
|
||||
Un túnel local SSH segueix aquesta estructura:
|
||||
|
||||
```bash
|
||||
ssh -L PORT_LOCAL:IP_DESTI:PORT_DESTI usuari@servidor_ssh
|
||||
```
|
||||
|
||||
On:
|
||||
|
||||
```text
|
||||
PORT_LOCAL → port que obrim al nostre ordinador
|
||||
IP_DESTI → IP vista des del servidor SSH
|
||||
PORT_DESTI → port real del servei intern
|
||||
usuari → usuari SSH
|
||||
servidor_ssh → màquina pública a la qual sí que podem entrar
|
||||
```
|
||||
|
||||
## 0.3 Exemple: accedir a la GUI de Proxmox
|
||||
|
||||
Si Proxmox escolta al port `8006`, podem crear un túnel així:
|
||||
|
||||
```bash
|
||||
ssh -L 8006:127.0.0.1:8006 root@IP_PUBLICA_PROXMOX
|
||||
```
|
||||
|
||||
Després, al navegador local obrim:
|
||||
|
||||
```text
|
||||
https://localhost:8006
|
||||
```
|
||||
|
||||
> **Nota:** el navegador pot mostrar un avís de certificat perquè estem entrant per `localhost` però el certificat no està emès per aquest nom.
|
||||
|
||||
## 0.4 Exemple: accedir a TrueNAS des de fora
|
||||
|
||||
Si TrueNAS té la IP privada `192.168.100.101` i la seva interfície web escolta al port `443`, podem fer:
|
||||
|
||||
```bash
|
||||
ssh -L 8443:192.168.100.101:443 USER@IP_PUBLICA_PROXMOX
|
||||
```
|
||||
|
||||
Després obrim al navegador:
|
||||
|
||||
```text
|
||||
https://localhost:8443
|
||||
```
|
||||
|
||||
En aquest cas:
|
||||
|
||||
```text
|
||||
localhost:8443
|
||||
│
|
||||
▼
|
||||
SSH cap a Proxmox
|
||||
│
|
||||
▼
|
||||
192.168.100.101:443
|
||||
```
|
||||
|
||||
## 0.5 Exemple: accedir a un servei web dins d'un LXC
|
||||
|
||||
Si el contenidor PeerTube té una IP privada, per exemple `192.168.100.150`, i el servei web escolta al port `9000`:
|
||||
|
||||
```bash
|
||||
ssh -L 9000:192.168.100.150:9000 USER@IP_PUBLICA_PROXMOX
|
||||
```
|
||||
|
||||
Després obrim:
|
||||
|
||||
```text
|
||||
http://localhost:9000
|
||||
```
|
||||
|
||||
## 0.6 Exemple: accedir per SSH a un contenidor intern
|
||||
|
||||
Si el contenidor no té SSH exposat públicament, però és visible des del host Proxmox, podem fer un túnel cap al seu port 22:
|
||||
|
||||
```bash
|
||||
ssh -L 2222:192.168.100.150:22 USER@IP_PUBLICA_PROXMOX
|
||||
```
|
||||
|
||||
Després, en una altra terminal:
|
||||
|
||||
```bash
|
||||
ssh admin@localhost -p 2222
|
||||
```
|
||||
|
||||
Això equival a entrar per SSH al contenidor passant a través del host Proxmox.
|
||||
|
||||
## 0.7 Mantenir el túnel obert sense shell remota
|
||||
|
||||
Si només volem obrir el túnel però no volem quedar-nos dins d'una shell interactiva del servidor, podem afegir `-N`:
|
||||
|
||||
```bash
|
||||
ssh -N -L 8443:192.168.100.101:443 USER@IP_PUBLICA_PROXMOX
|
||||
```
|
||||
|
||||
Si també volem enviar-lo al background:
|
||||
|
||||
```bash
|
||||
ssh -f -N -L 8443:192.168.100.101:443 USER@IP_PUBLICA_PROXMOX
|
||||
```
|
||||
|
||||
> **Atenció:** si s'envia el túnel al background amb `-f`, després pot ser menys evident recordar quin procés SSH l'està mantenint obert.
|
||||
|
||||
## 0.8 Veure túnels SSH actius
|
||||
|
||||
Per veure processos SSH oberts:
|
||||
|
||||
```bash
|
||||
ps aux | grep ssh
|
||||
```
|
||||
|
||||
Per veure ports locals escoltant:
|
||||
|
||||
```bash
|
||||
ss -ltnp
|
||||
```
|
||||
|
||||
Exemple de sortida esperada:
|
||||
|
||||
```console
|
||||
LISTEN 0 128 127.0.0.1:8443 0.0.0.0:* users:(("ssh",pid=12345,fd=5))
|
||||
```
|
||||
|
||||
## 0.9 Tancar un túnel SSH
|
||||
|
||||
Si el túnel està obert en una terminal, es pot tancar amb:
|
||||
|
||||
```text
|
||||
CTRL + C
|
||||
```
|
||||
|
||||
Si està en background, cal localitzar el procés:
|
||||
|
||||
```bash
|
||||
ps aux | grep ssh
|
||||
```
|
||||
|
||||
I matar-lo:
|
||||
|
||||
```bash
|
||||
kill PID
|
||||
```
|
||||
|
||||
Per exemple:
|
||||
|
||||
```bash
|
||||
kill 12345
|
||||
```
|
||||
|
||||
## 0.10 Recomanació d'ús
|
||||
|
||||
Per aquesta documentació utilitzarem túnels SSH per accedir temporalment a serveis interns com:
|
||||
|
||||
```text
|
||||
- interfície web de TrueNAS
|
||||
- serveis web interns de contenidors LXC
|
||||
- SSH cap a contenidors sense exposició pública
|
||||
```
|
||||
|
||||
Aquesta estratègia redueix l'exposició directa de serveis administratius a Internet i permet treballar sobre la xarxa interna del laboratori amb més control.
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```text
|
||||
TrueNAS
|
||||
@ -23,6 +217,73 @@ LXC no privilegiat
|
||||
│
|
||||
▼
|
||||
Docker Compose + PeerTube
|
||||
|
||||
# Dataset TrueNAS per a PeerTube
|
||||
|
||||
## Objectiu
|
||||
|
||||
Crear un dataset específic a TrueNAS per emmagatzemar les dades persistents de PeerTube i exportar-lo per NFS cap al host Proxmox.
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```text
|
||||
TrueNAS
|
||||
│
|
||||
│ export NFS
|
||||
▼
|
||||
Host Proxmox
|
||||
│
|
||||
│ bind mount
|
||||
▼
|
||||
LXC Ubuntu no privilegiat
|
||||
```
|
||||
|
||||
## Dataset creat
|
||||
|
||||
```text
|
||||
Pool: AV
|
||||
Dataset: PeerTube
|
||||
Path: /mnt/AV/PeerTube
|
||||
```
|
||||
|
||||
## Opcions del dataset
|
||||
|
||||
```text
|
||||
Compression: lz4
|
||||
Atime: Off
|
||||
Share type: Generic
|
||||
```
|
||||
|
||||
> **Decisió tècnica:** el muntatge NFS es farà al host Proxmox, no dins del contenidor LXC, per mantenir el contenidor com a no privilegiat.
|
||||
|
||||
## Export NFS
|
||||
|
||||
```text
|
||||
Path: /mnt/AV/PeerTube
|
||||
Authorized host: IP_DEL_PROXMOX
|
||||
```
|
||||
|
||||
## Prova de muntatge des de Proxmox
|
||||
|
||||
```bash
|
||||
mkdir -p /mnt/truenas-peertube
|
||||
mount -t nfs 192.168.100.101:/mnt/AV/PeerTube /mnt/truenas-peertube
|
||||
```
|
||||
|
||||
## Comprovació
|
||||
|
||||
```bash
|
||||
df -h | grep peertube
|
||||
touch /mnt/truenas-peertube/prova-escriptura.txt
|
||||
ls -lah /mnt/truenas-peertube
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
## 3. Convencions de documentació
|
||||
@ -82,7 +343,7 @@ localhost:8443 del teu ordinador
|
||||
Pas 6. Obre TrueNAS al navegador
|
||||
Ara, al navegador del teu ordinador local, obre:
|
||||
https://localhost:8443
|
||||
Accepta l’avís de certificat si surt.
|
||||
Accepta l'avís de certificat si surt.
|
||||
Hauries de veure la pantalla de login de TrueNAS.
|
||||
|
||||
|
||||
@ -94,3 +355,12 @@ Hauries de veure la pantalla de login de TrueNAS.
|
||||
mount.nfs: Operation not permitted
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user