INT 21h

Hi, I am Vladimir Smagin, SysAdmin and Kaptain. Telegram Email / GIT / Thingiverse / RSS / GPG

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

№ 8540 В разделе "Sysadmin" от 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 *

*

Яндекс.Метрика

Fortune cookie: There was a young lady named Bower Who dwelt in an Ivory Tower. But a poet from Perth Laid her flat on the earth, And proceeded with penis to plough her.