Category: it

Category was added automatically. Read all entries about "it".

Cat-light

Этот шаловливый systemd-logind

Что-то я в очередной раз всё проспал.

В systemd начиная с версии 230 настройка "KillUserProcesses" по умолчанию выставлена в значение "yes". Это означает ровно следующее.

Допустим, вы залогинились в какой-нибудь условный Gnome. Открыли там gnome-terminal. В нём запустили screen или tmux. А внутри оных что-нибудь ещё, ну пусть будет rsync или wget. Потом вышли из системы (разлогинились). Этот ваш screen / tmux тоже сдохнет следом, потому что его прибьёт systemd-logind, ибо session scope станет abandoned.

Я вот словил такого "нежданчика", ага.

Варианта два. Либо явно прописывать "KillUserProcesses=no" в "/etc/systemd/logind.conf". Либо запускать screen (или tmux) вот так:

systemd-run --scope --user screen

Ох, понапридумывают же разной фигни... раньше было как-то проще.

Cat-light

Бэкап удаленного Linux-сервера

В отличие от всяких там форточек, для Linux-а есть целых три инструмента бэкапа: tar, cp и rsync. Всё остальное — обвески над ними. В зависимости от решаемой задачи их можно применять по-разному. Ниже будет один из возможных способов. Вероятно, читатель сочтёт его далеко не оптимальным. Но тут всё зависит от вводных.

Collapse )
Cat-angry

BMC на некросервачках

Есть у меня некоторое количество некросервачков типа IBM System X 3550 M2. Самая засада — это попасть к ним в графическую консоль на BMC-шку (она же IMM, она же XClarify). В основном потому, что они (так же как и Dell-ы) используют у себя внтури готовые Avocent-овские KVM-ы с тухлым говнокодом внутри. И разумеется, по причине End-of-Life никаких обновлений ждать не приходится. Поэтому приходится извращаться. А именно.


  1. Установить восьмую (да-да, именно восьмую) Java. В более свежих не будет работать клавиатура по причине
    "Exception in thread "AWT-EventQueue-1" java.lang.NoSuchMethodError: 'java.awt.peer.ComponentPeer java.awt.Window.getPeer()'"
    Ну да. Конструкции "getPeer" выпилили из современных версий. В актуальных дистрибутивах Linux восьмой жавы уже не водится, поэтому проще всего поставить Adopt-овскую.

  2. Поставить пакетик "icedtea-netx", чтобы иметь возможность запускать JNLP-шки.

  3. Если он будет ругаться на неподписанный код, то в конфиге "java.security" из строчки "jdk.jar.disabledAlgorithms=бла-бла-бла" убрать "MD5".

Правильнее всего в подобной ситуации, конечно, активировать Serial over LAN и пользовать его. Но с нахрапу на этих IBMовских сервачках сделать это у нас не получилось.

Но вообще, конечно, забавно. Какой-то там несчастный ASUS умудряется делать BMCшки, пригодные для работы даже в самых свежих Java-х спустя десятилетие после выпуска матплаты. С SuperMicro-й тоже никогда подобных проблем не было. А IBM, что, не осилит что ли?

Cat-light

Confluence & system-wide Java

"Из коробки" вместе с confluence приезжает её собственная "комплектная" Java (AdoptOpenJDK). Таким образом, при инсталляции оной, ставить дополнительно отдельно JDK не требуется.

Однако, впоследствии по каким-то причинам может захотеться обновить жаву, но не трогать при этом дистрибутив с Confluence. В таком случае нужно как-то сказать ей, что нужно использовать system-wide Java, а не её собственную.

Решение.

Открываем файл "/opt/atlassian/confluence/bin/setjre.sh". Дальше есть два варианта.


  1. Меняем в последней строчке значение переменной "JRE_HOME" на то, которое нам нужно.

  2. Просто комментируем последнюю строчку, но при этом добавляем в "/etc/profile.d" файлик примерно нижеследующего содержания.

В моём примере я использую Zulu-шную сборку.

После этого остаётся только перезапустить сервис Confluence. Подозреваю, что данный способ подходит и для остальных Atlassian-овских продуктов.

Cat-light

Запуск Debian 10 в тухлой Virtuozzo

При попытке запустить контейнер с Debian 10 на достаточно тухлой Virtuozzo мы можем словить всевозможные странные спецэффекты. Самый характерный: она скажет что-нибудь типа

Failed to start the CT: PRL_ERR_VZCTL_OPERATION_FAILED (Details: /usr/sbin/vzctl: relocation error: /lib/x86_64-linux-gnu/libnss_files.so.2: symbol __libc_readline_unlocked, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference

Могут наблюдаться и какие-нибудь другие странные грабли.

Правильный способ решения: обновить Virtuozzo до последней актуальной версии.

Костыль: остановить контейнер, примонтировать на хост-машину его файловую систему, грохнуть с неё файл "/etc/ld.so.cache", отмонтировать, запустить контейнер.

Подстава: эту операцию придётся проделывать каждый раз заново перед всяким стартом контейнера. Так что лучше всё-таки использовать "правильный способ".

Примерный порядок действий.


  1. vzctl mount <много цифр и букв>

  2. rm /vz/root/<много цифр и букв>/etc/ld.so.cache

  3. vzctl umount <много цифр и букв>

  4. prlctl start <много цифр и букв>

Также не лишним будет, раз уж всё равно остановили контейнер, сделать "prl_disk_tool compact --hdd /vz/private/<много цифр и букв>/root.hdd". Оно освободит немного места на физических дисках. Правда, может выполняться долго. В зависимости от степени запущенности и аптайма контейнера.

А вообще, контейнеризация — зло. По возможности избегайте этого. Ох не по своей доброй воле мне приходится опять мараться об эту OpenVZ / Virtuozzo.

Cat-light

Бессвязного дыбра псто #56

... У меня прямо таки горит-сияет-полыхает от SELinux. Хочется придушить сразу двух персон: того, кто его придумал и того, кто запретил его отключать. По старой привычке сделал SVN Checkout в папке "/etc", чтобы выборочно сохранять-версионировать критичные конфиги. Сто раз так делал. Но при включенном SELinux-е коммиты вполне нормально проходят, а апдейты (svn update) — фиг вам. Причем, за полчаса гугления я так и не понял, как ему (SELinux-у) объяснить, чтобы не мешал мне это делать. Сцобака. И вот казалось бы, чем svn update отличается от тупо копирования файла в папочку? Бред какой-то. Ну и второй вопрос: на фиг вообще нужна такая супер-безопасная операционная система, с котрой ты сам ничего сделать не можешь?

Collapse )
Cat-light

Бессвязного дыбра псто #55

... Купил себе на "али" пульсоксиметр. Даже два. На всякий случай. За 20 баксов. Меряет он, прямо скажем, не очень. Примерно погоду на Марсе. Это потом уже мне знающие люди объяснили, что в хорошем пульсоксиметре должно быть две пары "фонарик-датчик". А тот, что с одной парой, точностью, мягко говоря, не блещет. Эх, век живи, век учись...

Collapse )
Lynx

Холивар про /etc/hostname

Есть два варианта, что можно написать в "/etc/hostname".

  • Просто одно слово, оно же "static hostnmame". Пример: "supercomp".

  • Имя компа вместе с доменом, оно же FQDN. Пример: "supercomp.mycompany.com".

С одной стороны, в официальных красношапковых рекомендациях вроде бы советуют писать туда "короткое" имя в одно слово. С другой стороны, почему-то всякие инструменты типа того же CloudInit-а по умолчанию запихивают в этот файл FQDN. Да и Anaconda (центосёвый инсталлятор) на вкладке настройки сети настаивает указывать в формате "localhost.localdomain".

А как делаете вы? И самое главное, почему?

Давайте пофлудим на эту тему. Я вот, например, с нахрапу не смог нагуглить или вспомнить явных доводов "за" или "против" того или иного подхода.

Blackcat

Загадка про Linux

Вот вам, товарищи линуксоиды и им сочувствующие, загадка.


  1. Берем свежеустановленную минимальную CentOS 7 или 8 с самыми что есть "искаробочными" дефолтными-раздефолтными настройками.

  2. Создаем в системе пользователя "vasya". Кладём в /home/vasya/.ssh/authorized_keys открытый SSH-ключ Васи. Проверяем права на папки-файлы внутри ".ssh". Убеждаемся, что Вася нормально заходит по ключу.

  3. Отключаем на SSH-сервере вход по паролю (PasswordAuthentication=no). Еще раз убеждаемся, что Вася нормально заходит по ключу.

  4. Продолжаем эксперимент.

  5. Создаем каталог(и) "/home/petya/.ssh/".

  6. Кладём в "/home/petya/.ssh/authorized_keys" открытый SSH-ключ Пети.

  7. Создаём в системе пользователя "petya".

  8. Проверяем права на папки-файлы внутри "/home/petya".

  9. Убеждаемся, что Петя ни хрена не может зайти по SSH, его ключ сервер не принимает.

Вопрос "на три": почему? Вопрос "на пять": как теперь минимальным количеством манипуляций таки впустить Петю в систему по SSH по его ключу?

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

И отгадка на ситуацию с проблемным баребоном вот из этого поста.

Там обнаружились аж три независимых беды. Отгорел контакт на разъеме с батарейкой, деградировал блок питания, что-то случилось то ли с самой SSDшкой, то ли со шлейфом. Потому что после замены блока питания и SSDшки на NVMe-шную все глюки исчезли.

Такие дела.