7 заметок с тегом

Debian

Debian ([ˈdɛbiən]) — операционная система, состоящая из свободного ПО с открытым исходным кодом. В настоящее время Debian GNU/Linux — один из самых популярных и важных дистрибутивов GNU/Linux, в первичной форме оказавший значительное влияние на развитие этого типа ОС в целом. Также существуют проекты на основе других ядер: Debian GNU/Hurd, Debian GNU/kFreeBSD и Debian GNU/kNetBSD. Debian может использоваться как в качестве операционной системы для серверов, так и для рабочих станций.

Debian имеет наибольшее среди всех дистрибутивов хранилище пакетов — готовых к использованию программ и библиотек, — и если даже не по их числу, то по числу поддерживаемых архитектур: начиная с ARM, используемой во встраиваемых устройствах, наиболее популярных x86 и PowerPC, новых 64-разрядных AMD, и заканчивая IBM S/390, используемой в мейнфреймах. Для работы с хранилищем разработаны разные средства, самое популярное из которых — Advanced Packaging Tool (APT).

Debian стал основой целого ряда дистрибутивов. Самые известные из них (в алфавитном порядке) — Adamantix, Bioknoppix, Clusterix, Dreamlinux, Gnoppix, Knoppix, Libranet, Linspire, Linux Mint, Maemo, MEPIS, SteamOS, Ubuntu, Xandros Desktop OS. Название «Debian» составлено из имён основателя проекта Яна Мёрдока (Ian Murdock) и его подруги (впоследствии — жены, ныне — бывшей) Дебры Линн (Debra Lynn).

Привет nginx’a дебианщикам

При попытке обновить программное обеспечение на  Debian 7/8 получаем милое сообщение о том, что ключик-то того — имел место истечь и неплохо бы его обновить:

W: A error occurred during the signature verification. 
The repository is not updated and the previous index files will be used. 
GPG error: http://nginx.org wheezy Release: The following signatures were invalid: KEYEXPIRED 1471427554

W: Failed to fetch http://nginx.org/packages/debian/dists/wheezy/Release
W: Some index files failed to download. They have been ignored, or old ones used instead.

Выясняем, что истекло:

apt-key list | grep "expired:"

Оказывается, вот что:

pub   2048R/7BD9BF62 2011-08-19 [expired: 2016-08-17]

Обновляем то, что истекло:

apt-key adv --recv-keys --keyserver keys.gnupg.net 7BD9BF62
2016   Debian   nginx

OVH, you failed your /etc/issue!

После заметки о проблемах установки VestaCP на серверах OVH, обнаружилось, что версия дистрибутива указывается не только в Debian, но в на других операционных системах: Ubuntu / CentOS. Почему оно так случилось в последних релизах ISOшников сказать сложно, но случилось и на эту тему придется что-то думать. Самый простой способ, скорее всего, административный — помимо универсального инсталлятора давать ссылки на инсталляторы для каждой операционной системы. Ничего позорного здесь в общем-то нет.

Второй вариант чуть более экзотический и попахивает чисто инженерным подходом. Есть мысль, что нужно при определении операционной системы использовать два источника: т. е. не только /etc/issue, но и скажем /etc/os-release. Сравнивая данные выбирать, в среде какой операционной системы мы находимся. Причем основным источником видимо придется считать именно os-release.

PS: Благодаря автоматическому выбору операционной системы сложности могут быть только у владельцев Debain/Ubuntu. Как видно из элегантного кода пользователи CentOS всегда в выигрыше:

# Detect OS
case $(head -n1 /etc/issue | cut -f 1 -d ' ') in
    Debian)     type="debian" ;;
    Ubuntu)     type="ubuntu" ;;
    *)          type="rhel" ;;
esac
2016   CentOS   Debian   Kimsufi   OVH   Ubuntu   VestaCP

Патч для phpmyadmin

В рамках поддержки проекта VestaCP занялся патчем для phpmyadmin. Основная проблема в том, что дополнительные функции из коробки не работают, также как и contoluser. Многим пользователям функционал по сути не нужен, он избыточен. Правда, не очень приятно видеть при входе сообщение о том, что у тебя часть функций отключено и не работает — «The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated».

За вечер пятницы удалось изобразить скрипт, который правит конфигурационный файл и добавляет недостающие таблицы. Чтобы не возиться с определением версии операционной системы, сделал 3 разных скрипта для centos/debian/ubuntu. И еще слегка упростил себе жизнь — не стал изобретать генератор паролей, использовал дополнительный пакет.

Интереснее было в процессе отладки. Выянил, что пихать много запросов в mysql из баша — это не очень хорошо, далеко не все отрабатывает. Гораздо правильнее разбить на несколько. Как оказалось, 3 и 4 ветка phpmyadmin имеют некоторые отличия. В четвертой ветке некоторые значения задаются явно и в дампе несколько больше таблиц, нежели в 3 версии. Довольно странное отличии в количестве нижних подчеркиваний в названии таблиц: в третьей — одно, в четвертой — два. Думаю, в следующих версиях увеличат :)

По моим прикидкам скрипт успели протестировать более чем на полусотне серверов, не считая мои и тестовые — все вроде ровненько прошло. На неделе, наверное, закинем на гитхаб прогоним тесты повторно.. возможно мой вроде-код даже появится в релизе VestaCP. Код добавил на Github, никакого терпения не хватило :)

PS: Слегка удивило, что фикс никто не сделал раньше и не сэкономил мне время (специально поискал в интернетах), вроде ничего сложного не было. Подозреваю, что все-таки пользователи тратят на это 5-10 минут и забывают или забивают вовсе :-)

VestaCP Forum — phpmyadmin fixer
Github — Fixes for phpmyadmin (configuration storage and some extended features)

Ubuntu

sudo wget --no-check-certificate 
https://raw.githubusercontent.com/skurudo/phpmyadmin-fixer/master/pma-ubuntu.sh 
&& chmod +x pma-ubuntu.sh && ./pma-ubuntu.sh

Debian

wget --no-check-certificate 
https://raw.githubusercontent.com/skurudo/phpmyadmin-fixer/master/pma-debian.sh 
&& chmod +x pma-debian.sh && ./pma-debian.sh

CentOS

wget --no-check-certificate 
https://raw.githubusercontent.com/skurudo/phpmyadmin-fixer/master/pma-centos.sh 
&& chmod +x pma-centos.sh && ./pma-centos.sh
2016   CentOS   Debian   MySQL   php   phpmyadmin   Ubuntu   VestaCP   код

OVH, you failed your Debian 8!

При попытке установить VestaCP на Debian 8 на сервере от Kimsufi натолкнулся на ошибку. Мне встречалась такая ошибка однажды, а раз уж встретилась повторно, то нужно задокументировать.

cut: /etc/redhat-release: No such file or directory
grep: /etc/redhat-release: No such file or directory
vst-install-rhel.sh: line 20: [: : integer expression expected
Error: No access to Vesta repository

А все потому, что мудрые европейские ребята решили, что незачем писать версию дистрибутива в /etc/issue. Панель управления в свою очередь не может определить версию операционной системы и не может установиться. Для решения недоработки хостера достаточно указать версию и проблема будет решена.

PS: Хочу заметить, что в инсталляциях с предыдущей версией Debain 7 версия указана корректно — Debian GNU/Linux 7.8

2015   Debian   Kimsufi   OVH   VestaCP

Nginx — too many open files

Самое распространенное решение с ошибкой «too many open files», когда увеличение лимитов ulimit (/etc/sysctl.conf и /etc/security/limits.conf) не помогает:

worker_rlimit_nofile 16384;

Общеизвестное и разрекламированное решение, ноги его растут из документации. Однако в связи с широким появлением systemd в Debian 8 Jessie / CentOS 7, может возникнуть ситуация, когда перечисленные методы могут и не сработать. Идея фикса в принципе та же, но со стороны модной systemd:

$ mkdir -p /etc/systemd/system/nginx.service.d/
$ nano /etc/systemd/system/nginx.service.d/limits.conf

Оглашаем лимиты для сервиса:

[Service]
LimitNOFILE=22222

Перезапускаем сервис и радуемся жизни.
Решение применимо и для других сервисов.

2015   CentOS   Debian   nginx   systemd   Ubuntu

php 5.4 все

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

php5 (5.4.45-0+deb7u2) wheezy-security; urgency=medium
  * PHP 5.4 has reached end-of-life on 14 Sep 2015 and as a result there
    will be no more new upstream releases.  The security support of PHP
    5.4 in Debian will be best effort only and you are strongly advised
    to upgrade to latest stable Debian release that includes PHP 5.6 that
    will reach end of security support on 28 Aug 2017.
 -- Ondřej Surý <ondrej@debian.org>

Меня больше смущает другой момент — как будет с поддержкой некоторых скриптов. Понимаю, что некоторые и так застряли с версией 5.3 и по-другому не работают никак. Но что будет с новыми версиями еще не ясно, что-нибудь да всплывет. Вспоминается история с libxml в ее реализации с php 5.3 и её работе в php 5.4 — вот уж капкан соблазнов.

Уничтожить перед передачей

Перед тем как отдать старый сервер в плане переезда значилось: «не забыть почистить данные на дисках». Редко, но все же случаются оказии, когда клиенту вместо чистого сервера достается бывший в употреблении и не переустановленный экземпляр. На моей памяти была пара таких эпизодов. Не смотря на то, что особой секретности данные вроде бы не представляют, пароли на новом сервере новые, как-то не безопасненько отдавать сервер как есть.

Сначала удалили данные пользователей и самих пользователей. Потому удалили и деинсталлировали базу данных, apache2 / nginx и некоторые другие. Затем удалили конфигурационные файлы и данные. Проверили, что рейд синхронизировался, и на втором диске то же, что и на первом. Для уверенности «dd if=/dev/zero of=/dev/drive bs=4M» на обоих дисках. Более простым вариантом, чтобы слегка потешить паранойю, загрузились с внешнего диска и вновь прошлись dd по обоим дискам. Подозрительность может спать спокойно, враг не пройдет.