Page:
Actualización
Clone
This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Actualización
Mantén NetBox y sus componentes actualizados de forma segura.
Antes de Actualizar
1. Backup Completo
# Ejecutar script de backup
/root/backup-netbox.sh
# O manualmente
docker exec netbox-db pg_dump -U netbox netbox | gzip > netbox-pre-update-$(date +%Y%m%d).sql.gz
2. Verificar Notas de Release
- NetBox Releases
- LinuxServer Announcements
- Revisar breaking changes y migraciones de BD
3. Planificar Ventana de Mantenimiento
- Actualizar en horario de bajo uso
- Informar a usuarios
- Preparar rollback si es necesario
Actualizar NetBox
Método 1: Pull de Imagen
# 1. Backup
docker exec netbox-db pg_dump -U netbox netbox > netbox-pre-update.sql
# 2. Detener stack
docker stop netbox netbox-redis netbox-db
# 3. Actualizar imágenes
docker pull lscr.io/linuxserver/netbox:latest
# 4. Iniciar stack
docker start netbox-db
sleep 10
docker start netbox-redis
sleep 5
docker start netbox
# 5. Verificar logs
docker logs -f netbox
Método 2: Recrear Contenedores (Portainer)
- Ve al stack en Portainer
- Click en Pull and redeploy
- Verifica logs del contenedor
Verificar Actualización
# Ver versión actual
docker exec netbox python /app/netbox/manage.py version
# Ver logs de migración
docker logs netbox | grep -i migration
# Verificar en UI
# Admin → System → About
Actualizar PostgreSQL
De PostgreSQL 16 a 18
Si vienes de una versión anterior con PostgreSQL 16:
# 1. BACKUP CRÍTICO
docker exec netbox-db pg_dump -U netbox netbox > netbox-pg-migration-$(date +%Y%m%d).sql
# 2. Detener NetBox y Redis
docker stop netbox netbox-redis
# 3. Detener y eliminar PostgreSQL 16
docker stop netbox-db
docker rm netbox-db
# 4. Eliminar volumen antiguo
docker volume rm netbox_db
# 5. Recrear volumen
docker volume create netbox_db
# 6. Actualizar compose a postgres:18-alpine
# Editar docker-compose.yml si es necesario
# 7. Iniciar PostgreSQL 18
docker compose up -d netbox-db
# 8. Esperar que esté listo
sleep 10
docker exec netbox-db pg_isready -U netbox
# 9. Restaurar datos
cat netbox-pg-migration-20250101.sql | docker exec -i netbox-db psql -U netbox netbox
# 10. Iniciar servicios
docker start netbox-redis
sleep 5
docker start netbox
# 11. Verificar
docker logs -f netbox
Actualizar Redis
Redis 7 es muy estable, pero si necesitas actualizar:
# 1. Detener NetBox
docker stop netbox
# 2. Actualizar Redis
docker stop netbox-redis
docker pull redis:7-alpine
docker start netbox-redis
# 3. Reiniciar NetBox
docker start netbox
ℹ️ Redis solo almacena caché, no es crítico hacer backup
Actualizar Plugins
# Entrar al contenedor
docker exec -it netbox bash
# Ver plugins instalados
pip list | grep netbox
# Actualizar plugin específico
pip install --upgrade netbox-topology-views
# Actualizar todos los plugins
pip list --outdated | grep netbox- | cut -d' ' -f1 | xargs pip install --upgrade
# Salir
exit
# Reiniciar NetBox
docker restart netbox
Rollback (Si Algo Falla)
Rollback Rápido
# 1. Detener NetBox
docker stop netbox
# 2. Restaurar base de datos
gunzip < netbox-pre-update-20250101.sql.gz | docker exec -i netbox-db psql -U netbox netbox
# 3. Volver a imagen anterior (si guardaste el tag)
docker tag lscr.io/linuxserver/netbox:3.6.9 lscr.io/linuxserver/netbox:latest
# 4. Recrear contenedor
docker stop netbox
docker rm netbox
docker compose up -d netbox
# 5. Verificar
docker logs -f netbox
Rollback Completo
# Restaurar desde backup completo
# Ver sección "Restauración Completa" en Backup y Restauración
Automatizar Actualizaciones
Watchtower (No Recomendado para Producción)
Si quieres auto-actualizar (úsalo solo en dev/test):
services:
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 86400 --cleanup
Script de Actualización Controlada
#!/bin/bash
# /root/update-netbox.sh
# Backup pre-actualización
docker exec netbox-db pg_dump -U netbox netbox | gzip > /backups/netbox/netbox-pre-update-$(date +%Y%m%d).sql.gz
# Detener
docker stop netbox netbox-redis
# Actualizar imágenes
docker pull lscr.io/linuxserver/netbox:latest
docker pull redis:7-alpine
# Iniciar
docker start netbox-redis
sleep 5
docker start netbox
# Verificar
sleep 10
if docker ps | grep -q netbox; then
echo "✓ NetBox actualizado correctamente"
else
echo "✗ Error en actualización - revisar logs"
exit 1
fi
Ejecuta manualmente o programa:
# Cron mensual (primer domingo a las 3 AM)
0 3 1-7 * 0 /root/update-netbox.sh >> /var/log/netbox-update.log 2>&1
Verificación Post-Actualización
Checklist
- NetBox accesible vía web
- Login funciona
- API responde:
curl -H "Authorization: Token TOKEN" https://netbox.example.com/api/ - Plugins funcionan
- Datos intactos (verificar dispositivos/IPs)
- Webhooks operativos
- Scripts personalizados funcionan
Comandos de Verificación
# Versión
docker exec netbox python /app/netbox/manage.py version
# Migraciones pendientes
docker exec netbox python /app/netbox/manage.py showmigrations | grep "\[ \]"
# Estado de servicios
docker ps -a | grep netbox
# Uso de recursos
docker stats netbox netbox-db netbox-redis --no-stream
Próximos Pasos
- Backup - Automatiza backups post-actualización
- Solución de Problemas - Si encuentras problemas