Как обновить Ubuntu 12.04 LTS до Ubuntu 14.04 LTS

Вступление

Ubuntu имеет два типа выпусков: стандартную и долгосрочную поддержку (или «LTS»). Стандартные обновления выпускаются каждые шесть месяцев и получают обновления безопасности от Ubuntu не менее девяти месяцев, в то время как обновления LTS выпускаются каждые два года и поддерживаются не менее пяти лет.

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

[.предупреждение]##

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

Чтобы избежать этих проблем, когда это возможно, мы рекомендуем перейти на новый сервер Ubuntu 14.04, а не обновлять его на месте. Возможно, вам все равно придется рассмотреть различия в конфигурации программного обеспечения при обновлении, но ядро ​​системы, вероятно, будет иметь большую стабильность. Вы можете следить за нашей серией статей оhow to migrate to a new Linux server, чтобы узнать, как мигрировать между серверами.

[[шаг-один -—- резервное копирование-существующих-данных]] == Шаг первый - Резервное копирование существующих данных

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

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

Синхронизировать файлы с локальным компьютером

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

Вы можете использовать следующую команду для копирования файловой системы сервера, позаботившись об изменении учетных данных сервера, отмеченных вred. Если вы используете аутентификацию на основе ключей 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 сообщаютrsync о необходимости сохранения важных атрибутов файла, таких как разрешения, права собственности и время модификации. Если вы используете Docker или другой инструмент виртуализации, вам следует добавить флагS, чтобыrsync правильно обрабатывал разреженные файлы, например виртуальное хранилище.

Note:rsync доступен только для операционных систем на базе Unix, таких как Linux и OS X. Если ваш локальный компьютер работает под управлением Windows, вы можете скопировать файлы своего сервера с помощью клиента SFTP, например Filezilla:How To Use Filezilla to Transfer and Manage Files Securely on your VPS

Если позже вам нужно будет восстановить части файлов вашего сервера, вы можете снова использоватьrsync с обратными параметрами источника и назначения, например:sudo rsync -aAXv -e 'ssh -i /path/to/private_key' ~/backup/ root@SERVER_IP_ADDRESS:/*

Сделайте снимок капли DigitalOcean

Если вы используете DigitalOcean, вы можете создать снимок капли, который вы можете легко восстановить, если что-то пойдет не так. Начиная с октября 2016 года, моментальные снимки стоят $ 0,05 за гигабайт в месяц, исходя из количества используемого пространства в файловой системе. Если этот вариант доступен для вас, рекомендуется использовать оба метода резервного копирования для обеспечения избыточности, а не выбирать один метод вместо другого. Вы можете удалить моментальный снимок после того, как убедитесь, что обновление завершено без проблем.

Во-первых, выключите сервер, чтобы сохранить его текущее состояние для моментального снимка. Хотя можно сделать моментальный снимок работающей системы, чтобы обеспечить согласованность данных на диске, лучше отключить питание:

sudo poweroff

Затем войдите в свою панель управления DigitalOcean и выберите каплю, которую вы собираетесь обновить. Перейдите на панельSnapshots, введите имя для вашего нового снимка и выберитеTake Snapshot.

Take Snapshot

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

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

[[шаг-два -—- подготовка-к-обновлению]] == Шаг второй - Подготовка к обновлению

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

Мы будем использоватьapt для обновления нашего локального индекса пакета, а затем обновим установленное в настоящее время программное обеспечение:

sudo apt-get update
sudo apt-get upgrade

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

apt-cache policy update-manager-core

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

sudo apt-get install update-manager-core

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

[[step-three -—- upgrade-to-14-04]] == Шаг третий - Обновление до 14.04

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

sudo do-release-upgrade

Хотя менеджер обновлений будет обрабатывать большинство деталей, связанных с переходом к следующему выпуску LTS, нам все же потребуется принять несколько решений по мере появления подсказок. Большинство из этих запросов будут спрашивать о перезаписи существующих файлов конфигурации. Действие по умолчанию - сохранить конфигурацию, которая уже существует, и, как правило, это лучший вариант для обеспечения стабильности. Тем не менее, внимательно прочитайте каждое приглашение, прежде чем выбрать какой-либо вариант, и не бойтесь искать соответствующий пакет, чтобы убедиться, что вы сделали правильный выбор.

В конце процесса обновления вам будет предложено перезагрузить сервер. Подтвердите «y», чтобы начать перезагрузку.

Ваш сеанс SSH будет отключен, поэтому вам нужно будет повторно подключиться, чтобы подтвердить, что обновление прошло, как и ожидалось. После повторного подключения используйтеlsb_release, чтобы подтвердить номер новой версии Ubuntu:

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, значит, вы успешно обновили свой сервер Ubuntu LTS!

[[step-four -—- upgrade-the-kernel]] == Шаг четвертый - Обновление ядра

Даже если вы загрузили новое ядро ​​для своего обновленного выпуска, ядро ​​может быть не активировано для использования программным обеспечением, используемым для размещения вашего сервера. Если вы используете DigitalOcean, программное обеспечение хостинга (называемое KVM) поддерживает ядро ​​вне образа сервера, и его необходимо будет обновлять отдельно.

Вы можете увидеть, какую версию ядра ваш сервер в настоящее время использует с помощьюuname:

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

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

Сначала войдите в панель управления DigitalOcean и выберите сервер, который вы собираетесь обновлять. На панелиSettings выберите вкладкуKernel.

Здесь вы увидите выпадающий список доступных ядер. Выберите ядро, которое соответствует дистрибутиву, выпуску и номеру версии того, которое вы скачали (3.13.0-39-generic в приведенном выше примере):

Change Kernel

После выбора ядра щелкнитеChange, чтобы загрузить это ядро ​​на свой сервер. Чтобы начать использовать новое ядро, вам нужно выключить сервер. Хотя вы можете сделать это на панели управления, это похоже на отключение питания от компьютера, поэтому вместо этого рекомендуется отключить питание через терминал:

sudo poweroff

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

Power Cycle

Теперь вы можете повторно подключиться к своему серверу через SSH и использоватьuname, чтобы подтвердить, что новое ядро ​​используется:

uname -ri

Вы должны увидеть вывод, похожий на следующий:

3.13.0-39-generic i686

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

Заключение

Теперь вы обновили свой сервер Ubuntu до последней версии LTS, предоставляя вам доступ к последним обновлениям программного обеспечения, а также обновлениям безопасности по крайней мере до 2019 года. Если вы столкнулись с проблемами совместимости с программой после обновления, проверьте документацию этой программы, чтобы увидеть, были ли какие-либо существенные изменения, которые требуют изменений в ее конфигурации.

Related