Привет всем!
Я прохожу курс “от 0 до Linux админа” на yodo.im и столкнулся с проблемой. Моему руководителю предложили новый Linux рабочий стол с улучшенными характеристиками. Наш IT-отдел помог мне перенести данные, используя rsync для /home директории. Однако, я хочу более аккуратно перенести все остальные части системы и сервисы, избегая копирования старых конфигураций в новый системе.
Вот мое текущее положение:
- Старая ОС (лицензия RHEL истекла)
- Установлена новая ОС (Rocky Linux) с перенесенными пользователями
- Лицензионное ПО настроено нашей IT-командой
- Все пользовательские данные (/home) перенесены с помощью rsync
- Я не копировал /etc, системные директории или конфиги сервисов
- Старый сервер все еще доступен в течение ближайших двух недель
- Я использую gitlab сервер в docker для отслеживания хода
- У меня много python окружений и несколько open-source проектов, использующих базы данных
Мои цели:
- Аккуратно переустановить сервисы
- Предотвратить поломки из-за несовместимых версий
- Улучшить структуру директорий, где это возможно
- Убедиться в правильности разрешений и владения файлами
- Настроить резервное копирование перед вводом сервера в эксплуатацию
Мои вопросы следующие:
- С какого порядка вы бы рекомендовали начинать переустановку?
- Стоит ли копировать конфиги из /etc выборочно или лучше воссоздать их с нуля?
- Предпочли бы вы логические дампы для баз данных (mysqldump/pg_dump) вместо копирования сырых директорий, если версии совпадают?
- Какие распространенные подводные камни вы видели в подобных миграциях?
- Если бы вы выполняли это сегодня, контейнеризировали бы вы сервисы во время настройки или сохранили бы традиционный подход?
Буду благодарен за любые советы или информацию! Спасибо.
Конечно, давай расскажу, как у меня не вышло всё провернуть с миграцией на новый сервер при помощи rsync.
Миграция с одного сервера на другой с помощью rsync
Итак, задался я задачей перенести все свои файлы с одного старого сервера на новый. Думал, что rsync – это как раз то, что нужно. Но не тут-то было! Вот что у меня не получилось:
-
Общение с SSH:
- Первым делом я подключился к старому серверу, все настроил, а потом началась фигня – не мог установить соединение с новым сервером. Писал команду, а он мне: “Host key verification failed”. Блин, вообще не в курсах, что я делаю не так! Пришлось лезть в ~/.ssh/known_hosts и ковыряться там, чтобы убрать старый ключ.
-
Права доступа:
- Дальше я решил скопировать папки с файлами, но rsync выдал мне ошибку с правами доступа: “Permission denied”. Я долго мучился с правами, пока не догадался, что линк на директорию, где я пытался сохранить файлы, не имел нужных прав. Ладно, так и быть, я их исправил.
-
Настройки rsync:
- Далее я вспомнил, что rsync можно запускать с опцией
-z для сжатия. Но тут вуаля, сложил все в одну команду с другими опциями, и он мне выдал: “Unrecognized option”. Я не заметил, что запятую забыл поставить между опциями. Пришлось всё до кучи разбирать.
-
Синхронизация в реальном времени:
- Я наивно думал, что он может просто так синхронизировать файлы в реальном времени. Запустил команду, и потом в процессе понял, что это не так работает, и что если файлы изменятся, то они не перенесутся. Восторг — нужно было использовать
--delete и --update, чтобы не терять актуальные версии.
Офигенные курсы!
В итоге, после всех пыток и шишек, я наткнулся на курсы на Yodo. Они реально помогли мне разобраться с rsync и не только. Ребята там объясняют всё доступно и с примерами. Если кому-то еще интересно, зайдите, не пожалеете!
Вот такие вот пирожки с миграцией. Если будете пробовать, смотрите, чтобы не наступить на те же грабли, что и я!