Обновление Ubuntu 12.04 LTS до Ubuntu 14.04 LTS

Система Ubuntu предоставляет релизы двух типов: стандартные и LTS (Long Term Support). Стандартные релизы выходят каждые полгода, в то время как релизы LTS обновляются каждые два года и поддерживаются, по крайней мере, пять лет.

Обновления системы безопасности Ubuntu 12.04 выйдут в октябре 2017 года. Чтобы продлить время поддержки системы и получить доступ к новым функциям и обновлениям, вы можете обновить систему до нового релиза LTS. В этом руководстве показано, как безопасно обновить сервер Ubuntu 12.04 до 14.04, при этом сохранив существующие конфигурации.

1: Резервное копирование

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

Синхронизация файлов с локальной системой

Существует несколько эффективных способов резервного копирования файлов в Ubuntu. Один из них подразумевает копирование файлов сервера в резервную папку на локальной машине при помощи rsync. Создать резервную копию полной файловой системы не получится, так как некоторые из каталогов предназначены для временного хранения запущенных процессов; нужно исключить эти папки из резервного копирования.

Используйте следующие команды для копирования файловой системы сервера. Имейте в виду: при использовании авторизации на основе SSH-ключей пользователь root не имеет пароля, потому нужно направить rsync на файл закрытого ключа (как правило, он находится в /home/username/.ssh/id_rsa). Так как файлы сервера загружаются на локальную машину, то команда должна быть выполнена на локальном компьютере, а не на сервере.

Примечание: Замените условные данные, выделенные красным, своими данными.

sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} -e 'ssh -i /path/to/private_key' root@SERVER_IP_ADDRESS:/* ~/backup/

Флаг aAX сохраняет важные атрибуты файлов (такие как права доступа, владельца, и время последнего изменения). При использовании Docker или другого инструмента для виртуализации необходимо добавить флаг S, чтобы команда rsync могла правильно обработать разреженные файлы (например, виртуальную память).

Примечание: Команда rsync доступна только в Unix-подобных системах типа Linux и OS X. Если на локальном компьютере используется Windows, можно скопировать файлы сервера при помощи SFTP-клиента Filezilla; подробнее – в статье «Безопасное управление файлами сервера с помощью Filezilla».

Чтобы в дальнейшем восстановить файлы сервера, можно снова использовать rsync, поменяв местами параметры источника и назначения:

sudo rsync -aAXv -e 'ssh -i /path/to/private_key'~/backup/ root@SERVER_IP_ADDRESS:/*

Примечание: Для большей безопасности данных можно также сделать снапшот – моментальный снимок файловой системы.

2: Подготовка к обновлению

Прежде чем приступить к обновлению системы, нужно убедиться, что все программы находятся в актуальном состоянии. Обновление ранее установленного программного обеспечения  позволяет значительно уменьшить количество пакетов, скачиваемых во время обновления всей системы, а значит – сократить вероятность ошибок.

Для этого используйте пакетный менеджер apt.

sudo apt-get update
sudo apt-get upgrade

Для обновления релиза рекомендуется использовать update-manager-core. Этот пакет установлен на большинстве серверов Ubuntu 12.04 по умолчанию; чтобы узнать, установлен ли необходимый пакет, используйте:

apt-cache policy update-manager-core

Если команда не вернула номер версии установленного пакета (выдаёт Installed: (none)), значит, данный пакет не установлен. Используйте apt, чтобы установить его.

sudo apt-get install update-manager-core

Теперь система готова к обновлению.

3: Обновление релиза

Далее нужно запустить команду do-release-upgrade с правами root. Этот скрипт автоматически загрузит последнюю версию релиза из репозитория Ubuntu и внедрит все обновления. Данный процесс может занять несколько минут. Кроме того, во время обновления система может задавать вам вопросы, запрашивать данные, просить подтверждения и т.п. Следите за сессией SSH, пока обновление не закончится.

sudo do-release-upgrade

Менеджер обновления выполнит большую часть задач, связанных с переходом на новую версию LTS, самостоятельно, но система всё-таки потребует ответить на некоторые вопросы. В основном система будет просить разрешение на перезапись существующих конфигурационный файлов. Рекомендуется выбрать стандартную опцию – сохранить существующие конфигурации; это самый стабильный вариант.

Примечание: Отвечая на вопросы системы во время обновления релиза, будьте предельно внимательны!

Когда процесс обновления будет выполнен, система попросит выполнить перезагрузку. Чтобы перезагрузить сервер, выберите y.

Сессия SSH будет прервана, потому вам нужно будет восстановить её, чтобы убедиться, что обновление прошло успешно. Вернувшись в сессию, используйте lsb_release, чтобы узнать номер версии ОС:

lsb_release -a

На экране должен появиться вывод:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:    14.04
Codename:   trusty

Обратите внимание: если всё прошло успешно, в строке Release будет находиться номер 14.04.

4: Обновление ядра

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

Чтобы узнать, какую версию ядра использует сервер, введите:

uname -ri

Результат будет примерно такой:

3.2.0-24-virtual i686

Если версия ядра ниже 3.13, значит, сервер ещё не поддерживает ядро Ubuntu 14.04. Конечно, маловероятно, что старое ядро вызовет проблемы с программным обеспечением, но новое ядро позволит улучшить производительность и получить доступ к новым полезным функциям.

В процессе обновления сервер загрузил новое ядро для Ubuntu 14.04. Чтобы узнать, какая версия ядра была загружена, проверьте каталог /lib/modules:

ls /lib/modules

На экране появится:

3.13.0-39-generic  3.2.0-24-virtual

Чтобы использовать новое ядро, нужно обновить его при помощи панели управления, затем отключить и запустить сервер.

Откройте панель управления и выберите сервер, ядро которого нужно обновить.

Как правило, в специальной вкладке содержится список доступных ядер. Выберите ядро, которое подходит для данного дистрибутива, релиза и версии (в данном случае это 3.13.0-39-generic).

Выбрав ядро, загрузите его на сервер. Чтобы сервер начал использовать новое ядро, его нужно отключить. Для этого рекомендуется использовать терминал:

sudo poweroff

Когда сервер будет полностью отключен, можете загрузить его снова.

Снова подключитесь к серверу по SSH и убедитесь, что теперь он использует новое ядро:

uname -ri

Команда должна вернуть версию нового ядра:

3.13.0-39-generic i686

Заключение

Теперь сервер Ubuntu обновлён до последнего релиза LTS, что предоставит вам доступ к последним обновлениям программного обеспечения и системы безопасности до 2019 года.

Столкнувшись с проблемами совместимости программ после обновления, проверьте документацию этой программы, чтобы узнать о возможных изменениях, которые нужно внести в её конфигурации.

Tags: ,

Добавить комментарий