OpenFest 2016 – брат му на Eric

OpenFest 2016 в по-голямата си част вече е в миналото. Остават няколко задачи, които очакват екипа – flash-ване и връщане на техниката, обработка и публикуване на видео записите, postmortem обсъждане, оформяне на статистики to name a few.

Последните няколко феста стана традиция техническия екип да пише по блоговете си кой, какво и как е свършил. Тъ! Барабар Петко с мъжете реших и аз да се включа в таз годишното бложене по темата.

(покрай темата реших да реанимирам или по-точно съживя стария блог)

Една от относително важните задачки, които свърших беше backup-а на eric. За целта бях заделил идентичен сървър на eric. Втората машина е с повечко памет, три-четири-пет пъти по голям storage и по принцип търкаля VMware vSphere Hypervisor за разлика от Debian върху самото желязо (т.е. да е идентична, идентична, колко пък да е идентична). За целта реших да дигна eric2 като виртуалка.

Създаване на mirror на eric

Задачки покрай VMware-а

Management мрежата на hypervisor-а (отиде във VLAN 20 където му беше мястото)

Спиране на автоматичния startup на текущите виртуални машини (все пак текущата машина по принцип търкаля едно количество тестови виртуалки)

Настройка на виртуалните switch-ове:

  • един без VLAN за eth0 (интерфейса си е тагнат от switch-а) и се ползва само за VIDEO мрежата
  • един с VLAN ID 4095 (hypervisor-а позволява на виртуалната машина сама да се тагва ако е този “магически” VLAN)

Нов firewall на ESXI-я (за да е относително недостъпен отвъд прост ping)

Репликирай това!

Общо взето стандартно създаване на виртуална машина, на която й бяха връчени нужните ресурси (всичкото процесор на света, към 24 GB памет и достатъчно storage). За да инициализирам mount-нах едно ISO на стандартна Debian-ска инсталация, но вместо инсталация дадох repair.

Един fdisk по-късно и инициализация на partition-ите е готова (общо взето два: един за / и един за SWAP).

За да копирам самите файлове ми трябваше ssh и rsync – инструменти, които по принцип ги няма. За това се пуска нова стандартна инсталация на Debian, която се прекъсва след “Base system install”. След това се местят всички файлове от /target :

> mkdir /base
> mv /target/* /base
> mkdir -p /base/proc
> mkdir -p /base/sys
> mkdir -p /base/dev
> mkdir -p /base/target
> mkdir -p /target/proc
> mkdir -p /target/sys
> mkdir -p /target/dev

“Специалните” файлови системи proc, sys и dev се mount-ват посредством –bind, /target пък се bind-ва към /base/target

> mount --bind /proc /base/proc
> mount --bind /sys /base/sys
> mount --bind /dev /base/dev
> mount --bind /proc /target/proc
> mount --bind /sys /target/sys
> mount --bind /dev /target/dev
> mount --bind /target /base/target

Иначе казано вече може да се chroot-нем в /base и да инсталираме в /base openssh-server и rsync (предвид, че инсталираме в /base – всичко това реално се инсталира на ramdisk-а)

> chroot /base
> bash
$> apt-get install rsync openssh-server
$> apt-get install vim
$> /etc/init.d/ssh start

Следва логване на eric и пускане на синхронизация:

rsync --exclude='/proc*' \
      --exclude='/sys*' \
      --exclude='/dev*' \
      --exclude='/home/openwrt*' -HPave ssh root@eric2:/target/

Едно кафе по-късно машината се reboot-ва и се boot-ва отново с Debian-ското ISO. Този път целите са две (за да може да mount-не, машината разчита дисковете да са с определени UUID-та, пък и boot loader-а трябва да се “възстанови”):

tune2fs -U 1710f26d-3ba9-41b3-80a9-1d0dafb3d768 /dev/sda1
swaplabel -U cd1bd0c2-ace7-4b2b-a509-18d5821cb208 /dev/sda5
grub-install /dev/sda

След инсталационни

След поредния reboot трябва да се пипнат мрежовите настройки (иначе новия eric ще си дигне същите адреси, като своя брат близнак):

cp /etc/network/interfaces /etc/network/interfaces.bak
# За по-бързичко
sed -ri 's/10.([0-9]+).0.1/10.\1.0.2/' /etc/network/interfaces
# И коментиране на eth1.10 (публичния интерфейс)
vim /etc/network/interfaces
# И някаква различна идентификация за да не се обърка човек къде се е логнал
echo eric2 > /etc/hostname

Един reboot по-късно и ръчно спиране на dhcp-то всичко тръгна по мед и масло.

Пускането на failover-а бе планирано по ръчно-крачната система:

ssh root@eric2
cd /etc/network
mv interfaces interfaces.fo
mv interfaces.bak interfaces
reboot

Мухата в меда

Оказа се, че в меда има муха – иначе казано някой трябваше да се сети да спре radvd (в случая Крокодила)

/etc/init.d/radvd stop

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*