INT 21h

Hi, I am Vladimir Smagin, sysadmin. Telegram Email GPG

Копирование и перенос контейнеров LXC

№ 8540 В разделе "Администрирование" от October 12th, 2017,

Понадобилось мне на днях перекинуть часть своих контейнеров на другой хост и призадумался я как же автоматизировать этот процесс. Ну, первое, что необходимо сделать это остановить контейнер. Далее его нужно сжать. После сжатия его можно сразу же стартовать, если вы просто копируете его.

Ниже приведен текст скрипта и я думаю вам не составит труда разобраться в нем самостоятельно.

Запускается root@boroda:~# ./lxc_move.sh inbox root@myserver.ru

#!/bin/bash
container_name="$1"
connect_string="$2"

if [ -z "$container_name" ];
then
 echo "Container name not given!"
 exit 1
fi

if [ -z "$connect_string" ];
then
 echo "Connect string not given!"
 exit 1
fi

#check status, if not STOPPED run again after tar
lxc_status=$(lxc-info -n $container_name|grep "STOPPED")

if [ -z "$lxc_status" ];
then
 lxc-stop -n "$container_name"
 run_again="yes"
fi

tar --numeric-owner -czvf /tmp/container_fs.tar.gz -C /var/lib/lxc/ $container_name

if [ -n "$run_again" ];
then
 lxc-start -n "$container_name"
fi

scp /tmp/container_fs.tar.gz $connect_string:/var/lib/lxc/
rm -f /tmp/container_fs.tar.gz
ssh $connect_string tar -xvf /var/lib/lxc/container_fs.tar.gz -C /var/lib/lxc/
ssh $connect_string rm -f /var/lib/lxc/container_fs.tar.gz

Хорошо бы еще добавить проверку на существование контейнера на удаленной машине. Вдруг он уже там? Но мне лень 🙂

Нет комментариев »

Leave a Reply

Your email address will not be published. Required fields are marked *

*


© Vladimir Smagin, 2005-2018. Копирование материалов без разрешения запрещено. GPG 0x29AE91B1A37721C3
Яндекс.Метрика