Ubuntu Server. Настраиваем обновление.

  • Автор:

ubuntu-update.png

Не так давно мы рассказывали о настройке сервера на базе Ubuntu 9.04. С тех пор прошло не так уж много времени, но за это время успел увидеть свет дистрибутив 9.10 и было бы неплохо обновить сервер до последней версии. Также мы расскажем как настроить автоматическое обновление - залог стабильности и безопасности вашего сервера.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Обновление дистрибутива

Если вы не используете LTS версии Ubuntu Server, то потребность в переходе на новую версию будет возникать раз в полгода. Но стоит ли обновляться так часто? Наше мнение - стоит. Несмотря на то, что любая версия Ubuntu имеет 18 месячную поддержку (LTS версии 3 и 5 лет), это будут обновления безопасности, в то время как новая версия дистрибутива содержит последние версии используемого ПО. Мы советуем рассматривать новые выпуски Ubuntu Server как Service Pack Windows (ведь ни у кого не вызывает сомнений ставить их или нет), которые тоже содержат как обновления безопасности так и новые версии ПО.

Итак, мы решили обновить свой сервер под управлением Ubuntu Server 9.04 до версии 9.10. Сделать это несложно, все что вам нужно это аккуратность, работающий интернет канал и немного свободного времени. Не забудьте предупредить клиентов, которых обслуживает данный сервер о временных перебоях в обслуживании (а лучше всего это сделать в перерыв или во внерабочее время).

Сначала нужно установить update-manager-core (если он ещё не установлен):

 sudo apt-get install update-manager-core

Теперь выполним обновление дистрибутива:

sudo do-release-upgrade

Система проверит наличие нового релиза, обновит информацию о пакетах и репозиториях, и выдаст вам заключение, где будет указан размер архивов и предполагаемое время загрузки для вашего канала. Вы можете подтвердить или отказаться от обновления, например если скорость вашего интернета не позволяет скачать такой объем  трафика в течении перерыва.
Ubuntu-Server-9.04-2010-01-24-22-35-29.pngПо окончании загрузки пакетов начнется обновление системы. С этого момента процесс остановить нельзя и нужно следовать инструкциям на экране. Особое внимание следует уделить запросу на перезапись конфигурационных файлов. Если данные файлы относятся к настроенным нами ранее службам сервера, наиболее правильным решением будет отказаться от их перезаписи. В конце нам будет предложено перезагрузить систему, после чего следует убедиться в работоспособности всех служб сервера.

В нашем случае пришлось откорректировать конфигурационный файл прокси-сервера squid, изменив строку:

error_directory /usr/share/squid/errors/Russian-koi8-r

на:

error_directory /usr/share/squid/errors/ru

В любом случае, если что-то перестало работать, попробуйте вручную перезапустить нужные службы, скорее всего вы получите сообщение об ошибке или перезагрузите сервер и посмотрите логи (/var/log/syslog).

Автоматическая установка обновлений

Следующим важным шагом будет настройка автоматической установки обновлений безопасности. По умолчанию это действие производится вручную администратором, однако гораздо лучше если сервер будет устанавливать обновления сам, скажем раз в неделю. Для этих целей будем использовать планировщик cron. Сначала создадим файл скрипта в директории /etc/cron.weekly, что обеспечит ему еженедельное исполнение:

sudo touch /etc/cron.weekly/updates

Откроем его в редакторе Midnight Commander (F4) и внесем  следующий текст:

echo "**************" >> /var/log/updates 
date >> /var/log/updates
aptitude update >> /var/log/updates
aptitude safe-upgrade -o Aptitude::Delete-Unused=false --assume-yes --target-release `lsb_release -cs`-security >> /var/log/updates
echo "Security updates (if any) installed"

Сохраним (F2) и, выйдя из mc, добавим ему права на исполнение:

sudo chmod +x /etc/cron.weekly/updates

Теперь наш скрипт будет исполняться еженедельно записывая результат своей работы в
/var/log/updates, чтобы избежать излишнего разрастания лог-файла необходимо обеспечить его ротацию. Для этого воспользуемся штатной утилитой logrotate. Создадим файл:

sudo touch /etc/logrotate.d/updates

И внесем в него следующий текст:

/var/log/updates { 
rotate 2
weekly
size 250k
compress
notifempty
}

При указанных настройках файл будет заменяться новым каждую неделю (weekly) или по превышении им размера 250 кБ (size 250k), при этом будут сохранятся два предыдущих файла (rotate 2) в сжатом виде (compress), при пустом логе ротация не происходит (notifempty).

При необходимости можно легко изменить период установки обновлений. Достаточно переместить скрипт updates в соответствующую директорию. Например его перемещение из /etc/cron.weekly в /etc/cron.daily позволит устанавливать обновления ежедневно.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.


Loading Comments