Как обновить сервер до Ubuntu 16.04 LTS

Как обновить сервер до Ubuntu 16.04 LTSВнимание: Более ранняя версия этой статьи включала упоминание Ubuntu 14.04. Хотя обновление с версии 14.04 может успешно завершиться, обновления с одной версии LTS до следующей версии LTS по умолчанию отключены до момента выхода первого обновления новой версии LTS (point release). Мы рекомендуем не обновляться до выхода версии 16.04.1. На серверах Digital Ocean системы с Ubuntu 14.04 после обновления будут использовать старое ядро, которое в течение первого времени нельзя будет обновить.

Следующий LTS релиз Ubuntu версии 16.04 (Xenial Xerus) будет доступен с 21 апреля 2016 года.

Хотя эта версия ещё не доступна для обновления на момент написания данной статьи, в настоящее время возможно обновить систему с 15.10 до девелоперской версии 16.04. Это может быть полезно для тестирования процесса обновления и новых возможностей 16.04 до момента официального выхода новой версии.

Эта статья описывает процесс обновления для систем с Ubuntu 15.10 (включая, но не ограничиваясь дроплетами Digital Ocean).

Внимание: Как и в случае любого другого обновления операционной системы этот процесс подвержен риску потери данных и конфигураций программного обеспечения. Рекомендуем сделать бэкапы перед началом процесса обновления и тщательно тестировать свои сервера после обновления.

Перед началом

Инструкции в этой статье предполагают, что у вы используете Ubuntu 15.10. Перед началом убедитесь, что у вас есть не-рутовый пользователь с привилегиями sudo .

Потенциальные проблемы

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

Не следует обновлять production систему без предварительного тестирования всего установленного программного обеспечения и сервисов с новой версией в staging среде. Помните, что библиотеки, языки программирования и системные сервисы могли значительно измениться в обновлении. В Ubuntu 16.04 важными изменениями по сравнению с предыдущей LTS версией стали переход к использованию системы инициализации systemd вместо Upstart, особый акцент на поддержке Python 3, а также использование PHP 7 вместо PHP 5.

Перед обновлением рекомендуем ознакомиться со списком изменений в Xenial Xerus .

Шаг 1. Бэкап системы

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

В случае дроплета Digital Ocean самым простым способом создания бэкапа является выключения сервера и создание снимка системы (snapshot). Выключение сервера при этом гарантирует, что файловая система будет сохранена в целостном состоянии. Для ознакомления с этим процессом рекомендуем прочитать статью Как использовать снимки системы Digital Ocean для автоматизации бэкапов ваших дроплетов. После того, как вы убедитесь, что обновление прошло успешно, вы можете удалить снимок системы, чтобы сэкономить деньги на его хранении.

Для поиска более универсального способа создания бэкапов, который будет работать на любой системе с Ubuntu, рекомендуем ознакомиться со статьёй Как выбрать эффективную стратегию создания бэкапов для вашего виртуального сервера .

Шаг 2. Обновление установленных пакетов

Перед началом обновления системы лучше всего установить самые последние версии всех пакетов для текущей версии операционной системы .

Для этого сначала обновим список пакетов:

Далее обновим установленные пакеты до последних доступных версий:

Вам будет представлен список обновлений пакетов. Отвечайте y и нажимайте Enter для продолжения.

Этот процесс может занять некоторое время. После его завершения используйте команду dist-upgrade. которая выполнит обновления, затрагивающие зависимости пакетов, добавляя или удаляя пакеты при необходимости. В результате могут обновиться пакеты, которые не обновились в результате apt-get upgrade :

Отвечайте y для продолжения и дождитесь завершения установки обновлений пакетов.

Теперь, когда у вас есть полностью обновлённая версия Ubuntu 15.10, вы можете использовать do-release-upgrade для обновления до 16.04.

Шаг 3. Использование do-release-upgrade для обновления системы

Сначала убедимся, что у вас установлен пакет update-manager-core :

Традиционно дистрибутивы на базе Debian используют для обновления файл /etc/apt/sources. list. указывающий на список репозиториев пакетов для apt, а также используют команду apt-get dist-upgrade для выполнения самого обновления. Ubuntu основана на Debian, поэтому данный процесс, скорее всего, сработает. Тем не менее, мы будем использовать утилиту do-release-upgrade. предоставляемую проектом Ubuntu, которая проверяет наличие нового релиза, обновляет sources. list. а также выполняет ряд других действий. Это официально рекомендованный способ обновления серверов, который должен выполняться с помощью удалённого соединения.

Начнём с команды do-release-upgrade без каких-либо опций:

Если Ubuntu 16.04 ещё не доступна, вы увидите следующий вывод:

Для обновления до версии 16.04 до момента её официального релиза, укажите ключ — d для использования девелоперского релиза:

Если вы зашли на свой сервер через SSH (как, например, в случае использования дроплета Digital Ocean), вас спросят, хотите ли ли вы продолжить установку.

В случае дроплета обновляться через SSH безопасно. Вы всегда можете использовать консоль в панели управления Digital Ocean для подключения к серверу не используя SSH.

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

Ответьте y и нажмите Enter для продолжения:

Далее вас проинформируют, что do-release-upgrade запустит новый процесс sshd на порту 1022:

Нажмите Enter. Далее вы можете увидеть предупреждение о том, что зеркало для обновления не найдено. В системах Digital Ocean вы можете игнорировать это сообщение и продолжать обновление, поскольку локальное зеркало для 16.04 на самом деле является доступным. Введите y :

После того, как новый список пакетов будет загружен, вас спросят, хотите ли вы начать обновление. Введите y для продолжения:

Далее новые пакеты будут загружены, распакованы и установлены. Даже если ваша система имеет быстрое соединение, это займёт какое-то время.

В процессе установки вам могут задавать различные вопросы. Например, вас могут спросить, хотите ли вы автоматически перезапускать сервисы, когда это необходимо:

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

После установки пакетов вас спросят, хотите ли вы удалить ненужные пакеты. На новой системе без каких-либо изменений конфигурации вы можете ответить y. На системе, которую вы значительно модифицировали, вы можете ответить d и изучить предлагаемый для удаления список пакетов на случай, если вы захотите переустановить некоторые из них позже.

Наконец, если всё прошло успешно, вам сообщат, что обновление завершено и необходимо перезапустить машину. Введите y для продолжения:

При использовании SSH вы, скорее всего, увидите нечто похожее:

Возможно, вам придётся нажать любую клавишу для выхода в локальную консоль, поскольку ваша SSH сессия была прервана на стороне сервера. Подождите, пока система перезагрузится и войдите в неё снова. В процессе логина вы должны увидеть приветствие, подтверждающее установку Xenial Xerus:

Заключение

Теперь у вас должен быть работающий сервер с Ubuntu 16.04. Далее вам, скорее всего, будет необходимо изучить требуемые изменения конфигурации сервисов и установленных приложений для работы с новой версии операционной системы. В следующие несколько недель мы начнём публиковать статьи от Digital Ocean на разные темы, касающиеся Ubuntu 16.04.