LINUX.ORG.RU
ФорумAdmin

Как перенести сервер на CentOS 7 с Virtuozzo VPS в Kronos Cloud?

 , ,


0

2

Всем привет!

Столкнулся с задачкой: хостер меняет Virtuozzo VPS на Kronos Cloud, соотвественно возникала необходимость переноса сервера на CentOS 7 (минимальная сборка с cli) в Kronos Cloud. Есть ли простые способы, чтобы перенести все настройки и пакеты (сеть, ssh через pki, iptables, скрипты, OpenVPN сервер, задачи в cron, установленные пакеты и тд) в новый CentOS?

Спасибо)

… хостер меняет …

А что у хостера нет тех. поддержки?

З.Ы.: Вы всё ещё не используете Ansible? Тогда мы идём к вам!!!

AlexVR ★★★★★ ()
Ответ на: комментарий от AlexVR

Есть, они предложили платный перенос с последующей настройкой) Но это личная vps’ка для фильтрации рекламы - 5 лет пашет почти без изменений - уже забыл, что и как там настраивал)

JohnnyW ()

Как с железной. Забэкапить кудато все. На новой загрузиться в рековери. Развернуть бэкап. Поправить grub, fstab может что-то ещё. Вроде всё.
Нарыл прошлогоднее письмо от хетзнера https://wiki.hetzner.de/index.php/How_to_migrate_vServers_to_Cloud/ru
Может поможет в качестве более детальной инструкции.

anc ★★★★★ ()

1) Установи в отдельную директорию (чрут) нужный тебе дистрибутив

dnf --installroot=

В указанной директории настрой его, как тебе нужно.

2) Установи boobstrap

git clone https://github.com/sp00f1ng/boobstrap.git
cd boobstrap
make install

С его помощью упакуй настроеный CentOS 7 в initramfs-образ.

# mkinitramfs `mktemp -d` --overlay "CentOS7-chroot/" --output initramfs.img

Теперь возьми ядро из CentOS 7 (оно лежит в /lib/modules/*/vmlinuz скорее всего, если ЦентОС == Шляпа == Лёня), и вместе с этим initramfs.img положи в директорию:

# mkdir iso/boot/
# cp CentOS7-chroot/lib/modules/*/vmlinuz iso/boot/vmlinuz
# cp initramfs.img iso/boot/initrd

Сделай загрузочный ISO

# mkbootisofs iso/ > mycentos.iso

Теперь загрузи этот ISO на свою VDS и перезагрузи виртуалку, чтобы загрузиться с ISO.

Всё готово, твой дистрибутив работает прямо в tmpfs загруженный с ISO-образа.

Жёсткий диск /dev/vda можешь форматировать за ненадобностью и использовать как зашифрованный контейнер для данных.

Spoofing ★★★★★ ()
Ответ на: комментарий от Spoofing

Всё готово, твой дистрибутив работает прямо в tmpfs загруженный с ISO-образа.

Вопрос при миграции — не миграция самой ОС, а миграция ПО с нужными зависимостями.

По вашей задаче — используйте Acronis

https://www.acronis.com/en-us/business/backup/linux-server/

Вкратце:

1) Cтавите агент на сервере откуда надо переехать, линкуете с вашей подпиской в личном кабинете, создаете копию системы.

2) Загружаетесь с ISO на сервере куда надо переехать, вводите логин/пароль от вашего личного кабинета. Выбираете копию системы и разворачиваете на текущем новом сервере.

int13h ★★★★★ ()
Ответ на: комментарий от AlexVR

Вы всё ещё не используете Ansible? Тогда мы идём к вам!!!

Ansible. Просто, как декларативная конфигурация, но без, собственно, декларативной конфигурации.

Его штучная VPSка — так себе cattle, и выделки, соответственно, не стоит.

t184256 ★★★★★ ()
Последнее исправление: t184256 (всего исправлений: 2)
Ответ на: комментарий от Spoofing

Жёсткий диск /dev/vda можешь форматировать

в своп.

t184256 ★★★★★ ()
Ответ на: комментарий от int13h

не миграция самой ОС, а миграция ПО с нужными зависимостями

эта панятна, поэтому я предложил решить вопрос на корню >_>, чтобы когда в следующий раз встанет вопрос ??? эмиграции он загрузил уже имеющийся ISO со всеми его настройками на другой хостинг и точно так же с него загружал ОС. UwU

а когда надо обновиться, он обновляется в своём чруте, пересобирает образ командой mkinitramfs, загружает initrd на хостинг и выполняет kexec -l /vmlinuz --initrd=/initrd && kexec -e чтобы целиком переключиться в новый обновлённый initramfs. хау~~~

простите.

Spoofing ★★★★★ ()
Ответ на: комментарий от t184256

Его штучная VPSка — так себе cattle, и выделки, соответственно, не стоит.

А вот тут я не соглашусь.

ТС писал:

уже забыл, что и как там настраивал

А посмотрел бы он в плайбук и рецепты и за 10 мин. вспомнил.

Время освоения Ansible минимально. У ТС всего-то несколько приложений и один сервак - это идеальный полигон для знакомства (а большего и не надо). Для каждой из его задач есть примеры рецептов для Ansible.

Кроме этого Ansible отвязал бы его от провайдера, и дал возможность в любое время его сменить.

AlexVR ★★★★★ ()
Ответ на: комментарий от Spoofing

а когда надо обновиться...

Вы уверены, что такой подход разрешит работодатель? Если можно просто работать? Я думаю, что нет. Хотите миграцию сделать — возьмите резервную копию/снапшот и перенесите.

Ваш инструмент интересен и хорош для определенных задач, но если такое делать на production, то вряд ли кто такой подход одобрит.

int13h ★★★★★ ()
Ответ на: комментарий от AlexVR

А с учётом того, что undo Ansible не даёт и каждый раз все равно придётся все редеплоить: чем (для случая ТС, естественно) Ansible будет сильно лучше, не знаю, портянки на баше?

t184256 ★★★★★ ()
Ответ на: комментарий от t184256

О каком «undo» идёт речь?

Всё что перечислил ТС реализуется путём:

  • Должен быть установлен такой-то пакет + такой-то конфиг файл.
  • Если есть изменения то перезапустить службу (опционально).

Умноженное на N ролей.

Если не удачный конфиг, то берём предыдущий из git-а.

портянки на баше?

Не надо думать как отлавливать изменения, передавать файлы, расшифровывать пароли, ну и тупо в 100500 раз проще и упорядочение?

AlexVR ★★★★★ ()

Что бы было понятно:

"Здравствуйте. Я Саша и я Ansibla-голик.

Несколько лет назад я в первый раз попробовал Ansible.

Мне надо было обновить небольшой вычислительный кластер, который управлялся дорогой и старой как мамонт системой управления от Fujitsu, у которой заканчивалась лицензия.

Я прочитал несколько статей про Ansible и решил попробовать, я думал что это не заразно.

Но даже не заметил как стал каждый день писать роли. Это очень затягивает. Я в каждый день получал порцию удовольствия. И через пару месяцев снёс к чертям развёрнутый за кучу бабла систему. Развернув новую через божественный Ansible.

В этот момент я окончательно подсел на него. Теперь даже в самой простой ситуации, я вижу как идеально ложится Ansible на решение тех или иных задач. А моя память стала меня подводить, я уже плохо вспоминаю как настраивал ту или иную службу пару дней назад. Хорошо что есть ещё божественный Mercurial GIT…."

AlexVR ★★★★★ ()
Ответ на: комментарий от AlexVR

Если не удачный конфиг, то берём предыдущий из git-а.

И осознаем, что система от этого в прошлое состояние не вернулась, и теперь надо сочинять ещё один конфиг, который выльется в такое императивные действие, чтобы починились все дрова, наломанные неудачным конфигом. Ну или редеплой.

Не, это весело поначалу, а потом узнаешь, что можно было вместо этого нормально.

t184256 ★★★★★ ()
Ответ на: комментарий от AlexVR

Не надо думать как отлавливать изменения, передавать файлы, расшифровывать пароли, ну и тупо в 100500 раз проще и упорядочение?

А ТСу это все и не надо.

t184256 ★★★★★ ()
Ответ на: комментарий от AlexVR

Это хорошо. Попробовал бы NixOS, вообще б лопнул.

t184256 ★★★★★ ()
Ответ на: комментарий от t184256

починились все дрова, наломанные неудачным конфигом.

Это что за конфиг такой и про тестирование изменений перед заливкой на прод не слышал?

FireFighter ★★★ ()
Последнее исправление: FireFighter (всего исправлений: 1)
Ответ на: комментарий от AlexVR

есть примеры рецептов

Даже куча готовых хороших ролей есть.

FireFighter ★★★ ()
Ответ на: комментарий от FireFighter

Это что за конфиг такой

Совершенно любой, пока Ansible что-то меняет и не умеет в декларативное управление.

и про тестирование изменений перед заливкой на прод не слышал?

А тестировать их как, через редеплой стэйджа каждый раз? Вот радости ТСу для его штучной ВПСки.

Ansible хорош в своих задачах. Не натягивайте сову на глобус и не приписывайте ему отсутствующих свойств.

t184256 ★★★★★ ()
Ответ на: комментарий от Spoofing

а когда надо обновиться, он обновляется в своём чруте, пересобирает образ командой mkinitramfs, загружает initrd на хостинг и выполняет kexec -l /vmlinuz –initrd=/initrd && kexec -e чтобы целиком переключиться в новый обновлённый initramfs. хау~~~

Тут я вижу усложнение конструкции: хостер меняется существенно реже, чем выходят обновления системы) Текущая vps сама обновляется и требует минимального внимания.

JohnnyW ()

Возникла проблема после миграции при помощи rsync: новый сервер перестал грузится из-за Failed to load SELinux policy. При этом selinux не включен ни на одной из машин: SELinux status: disabled

НО при этом в исходном сервере в /etc/sysconfig/selinux:

SELINUX=enforcing
SELINUXTYPE=targeted

А в новом:

SELINUX=disabled
SELINUXTYPE=targeted

Команда rsync такая: rsync --exclude-from="/root/exclude.txt" --delete --numeric-ids -avpogtStlHz -e "ssh -pxxxx" / root@ip_KVM>:

В exclude.txt

/boot
/proc
/sys
/tmp
/dev
/var/lock
/var/log
var/spool/clientmqueue
/etc/fstab
/etc/mtab
/etc/conf.d/net
/etc/network/interfaces
/etc/networks
/etc/sysconfig/network*
/etc/sysconfig/hwconf
/etc/sysconfig/ip6tables-config
/etc/sysconfig/kernel
/etc/hostname
/etc/HOSTNAME
/etc/modprobe*
/etc/modules
/net
/lib/modules
/etc/rc.conf
/usr/share/nova-agent*
/usr/sbin/nova-agent*
/etc/init.d/nova-agent*
/etc/ips
/etc/ipaddrpool
/etc/ips.dnsmaster
/etc/sysconfig/network-scripts/ifcfg-eth0

Как пофиксить? По логике rsync должен был все перенести на новый сервер, в т.ч. и настройки, пакеты, отвечающие за selinux.

JohnnyW ()
Последнее исправление: JohnnyW (всего исправлений: 1)

В итоге плюнул и решил перенастроить новый сервер, используя /etc из старой системы.

JohnnyW ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.