Как обновить сервер до 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. Обновление установленных пакетов
Перед началом обновления системы лучше всего установить самые последние версии всех пакетов для текущей версии операционной системы.
Для этого сначала обновим список пакетов:
- sudo apt-get update
Далее обновим установленные пакеты до последних доступных версий:
- sudo apt-get upgrade
Вам будет представлен список обновлений пакетов. Отвечайте y и нажимайте Enter для продолжения.
Этот процесс может занять некоторое время. После его завершения используйте команду dist-upgrade
, которая выполнит обновления, затрагивающие зависимости пакетов, добавляя или удаляя пакеты при необходимости. В результате могут обновиться пакеты, которые не обновились в результате apt-get upgrade
:
- sudo apt-get dist-upgrade
Отвечайте y для продолжения и дождитесь завершения установки обновлений пакетов.
Теперь, когда у вас есть полностью обновлённая версия Ubuntu 15.10, вы можете использовать do-release-upgrade
для обновления до 16.04.
Шаг 3. Использование do-release-upgrade для обновления системы
Сначала убедимся, что у вас установлен пакет update-manager-core
:
- sudo apt-get install update-manager-core
Традиционно дистрибутивы на базе Debian используют для обновления файл /etc/apt/sources.list
, указывающий на список репозиториев пакетов для apt, а также используют команду apt-get dist-upgrade
для выполнения самого обновления. Ubuntu основана на Debian, поэтому данный процесс, скорее всего, сработает. Тем не менее, мы будем использовать утилиту do-release-upgrade
, предоставляемую проектом Ubuntu, которая проверяет наличие нового релиза, обновляет sources.list
, а также выполняет ряд других действий. Это официально рекомендованный способ обновления серверов, который должен выполняться с помощью удалённого соединения.
Начнём с команды do-release-upgrade
без каких-либо опций:
- sudo do-release-upgrade
Если Ubuntu 16.04 ещё не доступна, вы увидите следующий вывод:
ВыводChecking for a new Ubuntu release
No new release found
Для обновления до версии 16.04 до момента её официального релиза, укажите ключ -d
для использования девелоперского релиза:
- sudo do-release-upgrade -d
Если вы зашли на свой сервер через SSH (как, например, в случае использования дроплета Digital Ocean), вас спросят, хотите ли ли вы продолжить установку.
В случае дроплета обновляться через SSH безопасно. Вы всегда можете использовать консоль в панели управления Digital Ocean для подключения к серверу не используя SSH.
При использовании виртуальный серверов или серверов других провайдеров вам необходимо иметь в виду, что потеря SSH соединения несёт риски, особенно, если у вас нет другого способа удалённо зайти на вашу машину. В случае других ваших систем, помните, что безопаснее всего выполнять обновления операционной системы только если у вас есть физический доступ к машине.
Ответьте y и нажмите Enter для продолжения:
Reading cache
Checking package manager
Continue running under SSH?
This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.
If you continue, an additional ssh daemon will be started at port
'1022'.
Do you want to continue?
Continue [yN] y
Далее вас проинформируют, что do-release-upgrade
запустит новый процесс sshd
на порту 1022:
Starting additional sshd
To make recovery in case of failure easier, an additional sshd will
be started on port '1022'. If anything goes wrong with the running
ssh you can still connect to the additional one.
If you run a firewall, you may need to temporarily open this port. As
this is potentially dangerous it's not done automatically. You can
open the port with e.g.:
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT'
To continue please press [ENTER]
Нажмите Enter. Далее вы можете увидеть предупреждение о том, что зеркало для обновления не найдено. В системах Digital Ocean вы можете игнорировать это сообщение и продолжать обновление, поскольку локальное зеркало для 16.04 на самом деле является доступным. Введите y:
Updating repository information
No valid mirror found
While scanning your repository information no mirror entry for the
upgrade was found. This can happen if you run an internal mirror or
if the mirror information is out of date.
Do you want to rewrite your 'sources.list' file anyway? If you choose
'Yes' here it will update all 'trusty' to 'xenial' entries.
If you select 'No' the upgrade will cancel.
Continue [yN] y
После того, как новый список пакетов будет загружен, вас спросят, хотите ли вы начать обновление. Введите y для продолжения:
Do you want to start the upgrade?
6 installed packages are no longer supported by Canonical. You can
still get support from the community.
9 packages are going to be removed. 104 new packages are going to be
installed. 399 packages are going to be upgraded.
You have to download a total of 232 M. This download will take about
46 seconds with your connection.
Installing the upgrade can take several hours. Once the download has
finished, the process cannot be canceled.
Continue [yN] Details [d]y
Далее новые пакеты будут загружены, распакованы и установлены. Даже если ваша система имеет быстрое соединение, это займёт какое-то время.
В процессе установки вам могут задавать различные вопросы. Например, вас могут спросить, хотите ли вы автоматически перезапускать сервисы, когда это необходимо:
В этом случае вы можете ответить "Yes". В других случаях вас могут спросить, хотите ли вы заменить изменённый вами конфигурационный файл на файл по умолчанию распространяемый с устанавливаемым пакетом. Ответ на этот вопрос чаще всего требует знания специфики работы данного конкретного пакета, и находится за пределами тем, описываемых в данной статье.
После установки пакетов вас спросят, хотите ли вы удалить ненужные пакеты. На новой системе без каких-либо изменений конфигурации вы можете ответить y. На системе, которую вы значительно модифицировали, вы можете ответить d и изучить предлагаемый для удаления список пакетов на случай, если вы захотите переустановить некоторые из них позже.
Remove obsolete packages?
53 packages are going to be removed.
Continue [yN] Details [d]y
Наконец, если всё прошло успешно, вам сообщат, что обновление завершено и необходимо перезапустить машину. Введите y для продолжения:
System upgrade is complete.
Restart required
To finish the upgrade, a restart is required.
If you select 'y' the system will be restarted.
Continue [yN] y
При использовании SSH вы, скорее всего, увидите нечто похожее:
=== Command detached from window (Thu Apr 7 13:13:33 2016) ===
=== Command terminated normally (Thu Apr 7 13:13:43 2016) ===
Возможно, вам придётся нажать любую клавишу для выхода в локальную консоль, поскольку ваша SSH сессия была прервана на стороне сервера. Подождите, пока система перезагрузится и войдите в неё снова. В процессе логина вы должны увидеть приветствие, подтверждающее установку Xenial Xerus:
Welcome to Ubuntu Xenial Xerus (development branch) (GNU/Linux 4.4.0-17-generic x86_64)
Заключение
Теперь у вас должен быть работающий сервер с Ubuntu 16.04. Далее вам, скорее всего, будет необходимо изучить требуемые изменения конфигурации сервисов и установленных приложений для работы с новой версии операционной системы. В следующие несколько недель мы начнём публиковать статьи от Digital Ocean на разные темы, касающиеся Ubuntu 16.04.
0 Comments