Migrar contenedores Lxc entre servidores
¿Cómo migrar contenedores lxc entre servidores?
Hay veces que tienes un la lista considerable de contenedores lxc que mover de un server a otro, por migrar o simplemente por conveniencia.
Os dejo un sencillo script que se encarga de hacerlo.
No borra las máquinas en origen, pero si las deja apagadas y las enciende en destino.
#!/bin/bash # Recibo un fichero de texto como párametro # El fichero debe contener una lista de nombres de máquinas, una por fila para migrar a otro servidor # Recibo el servidor a donde voy a migrar como segúndo parámetro # Paro las máquinas y realizo la migración con rsync y vuelvo a levantar el contenedor en el destino remoto # bash scriptmigra fichero servidor file=$1 server=$2 if [ "$1" == "-h" ]; then echo "Usage: `basename $0` " echo "Recibo un fichero de texto como primer parámetro" echo "El fichero debe contener una lista de nombres de máquinas, una por fila para migrar a otro servidor" echo "Paro las máquinas y realizo la migración" echo "El servidor de destino ha de tener mi llave pública en su fichero '/etc/ssh/authorized_keys' " echo "./scriptmigra fichero servidor" exit 0 fi for maq in $(cat<$file); do cd /var/lib/lxc lxc-stop -n $maq; rsync -azp -e 'ssh -i /root/.ssh/id_rsa' $maq root@$server:/var/lib/lxc/ -h --stats --numeric-ids echo $maq migrada ssh -i /root/.ssh/id_rsa root@$server "lxc-start -n $maq -d && exit" done
Es auto-explicativo pero básicamente le pasas como primer parámetro un fichero con una lista de máquinas y como segundo la ip a donde quieres migrarlas.
Espero que os sea útil.
Comentarios bienvenidos.
Si queréis más info de lxc podéis ver un taller sobre el tema en https://blog.hackingcodeschool.net/taller-de-virtualizacion-con-lxc/
Un saludo!
Estupendo Kao ! … me leiste el pensamiento, pues andaba buscando algo así… 🙂