Administración de sistemas, scripts, Virtualización

Migrar contenedores Lxc entre servidores

Print Friendly, PDF & Email

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!

Tagged , ,

2 thoughts on “Migrar contenedores Lxc entre servidores

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.