На proxmox в lxc-контейнере вертелись два инстанса freeipa. После неудачного обновления контейнеры откатили на неделю назад штатными средствами бекапов proxmox. После этого перестало пускать в веб-морду:
Login failed due to an unknown reason.
и отрабатывать sudo-правила, хотя авторизация по ключу на сами сервера работают, сервисы которые были завязаны на ldap получают учетки.
В логах сыпет такое:
Sep 26 15:47:17 ipa.tc.example.ru systemd[1]: ipa-dnskeysyncd.service holdoff time over, scheduling restart.
Sep 26 15:47:17 ipa.tc.example.ru systemd[1]: Stopped IPA key daemon.
Sep 26 15:47:17 ipa.tc.example.ru systemd[1]: Started IPA key daemon.
Sep 26 15:47:21 ipa.tc.example.ru ipa-dnskeysyncd[18373]: ipa-dnskeysyncd: CRITICAL Kerberos authentication failed: Major (851968): Unspecified GSS failure. Minor code may provide more information, Minor (2529639106): Credentials cache permissions incorrect (filename: /tmp/ipa-dnskeysyncd.ccache)
Sep 26 15:47:21 ipa.tc.example.ru systemd[1]: ipa-dnskeysyncd.service: main process exited, code=exited, status=1/FAILURE
Sep 26 15:47:21 ipa.tc.example.ru systemd[1]: Unit ipa-dnskeysyncd.service entered failed state.
Sep 26 15:47:21 ipa.tc.example.ru systemd[1]: ipa-dnskeysyncd.service failed.
Файла, на который ругается, нет:
# ls -la /tmp/ipa-dnskeysyncd.ccache
ls: cannot access /tmp/ipa-dnskeysyncd.ccache: No such file or directory
# ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
ntpd Service: STOPPED
pki-tomcatd Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful
ntp не стартует т.к. он внутри контейнера, как я понимаю. Не помню - работал ли он до восстановления из бекапа.
фиксануть что-то – пожалуйста. Участвуй в движухе opensource на здоровье
ну да, читаем прекрасную новость с опеннета:
После перехода на новую модель сопровождения дистрибутива, допускающую применение собственных патчей, разработчики Alma Linux устранили в пакете iperf3 уязвимость (CVE-2023-38403) и попытались передать подготовленное исправление в CentOS Stream, так как уязвимость оставалась неисправленная в RHEL и CentOS Stream. Сотрудник Red Hat отказался принимать исправление, сославшись на правило, допускающее устранение только важных проблем.
Уязвимость CVE-2023-38403 была оценена инженерами Red Hat как несущественная, а исправления для подобных проблем включаются в пакеты лишь при необходимости, обусловленной наличием запросов от клиентов или потребностями бизнеса. Представитель Alma Linux выразил недоумение, так как для включения в CentOS Stream передан уже готовый патч, устраняющий проблему, и от Red Hat не требовалось самостоятельно создавать исправление, а нужно было лишь рецензировать готовое изменение, принятое в кодовую базу проекта iperf.
Мой кейс: я отлаживаю сложный диалплан на Lua для Asterisk на тестовом сервере. Docker и прочие контейнеры тут не подходят - есть работа с железом (DAHDI).
Сейчас я просто ковыряюсь в NeoVim через SSH, но дошел до той стадии когда пора заливать в Git.
И тут вилка:
Продолжить ковырять через SSH с периодическими коммитами (бакап)
Писать на десктопе, но это будут постоянные качели пуш/пулл между сервером и рабочей машиной.
Через что-то вроде remote плагин для VSCode.
Идеологически правильным вижу второй вариант - он же и останется после введения сервера в продакшн. Но что-то как-то муторно на каждый чих commit => push > pull > module relad pbx_lua.so
Может есть какой-то метод про который я не слышал?
Хотелка такая: максимально близкий аналог по функциям к DokuWiki, но хранение файлов не в txt, а md. Соответственно основной синтаксис - Markdown.
Никаких БД для хранения самих статей - хотелось бы иметь git с бекапом.
Поддержка LDAP/SSO обязательна.
Из ближайшего что подходит - Gitea. Но специализированного ничего нет? Просто предполагается что ей будут пользоваться не только бородатые программисты, а простые смертные.
Понадобилось мне тут накидать небольшой CRUD, я по старой памяти рачехлил Flask,а заодно и решил донастроить neovim как Python IDE с помощью новомодных lsp/pyright/cmp. И тут же наступил ногами в жир:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
class User(db.Model): ■ Expected type expression but received "type"
id = db.Column(db.Integer, primary_key=True)
I’m removing Flask-SQLAlchemy from my code entirely. I’ve moved most references of db.* to sa.* and sa.orm.* so I could get type checking. Next step: replacing db.Model with a custom base model, then db.session.
This has been a nightmare year with perfectly functional code falling apart every few months as various framework libraries refactor themselves to fit into the constraints of static typing.
Static type checking has been an excellent development for Python – it’s significantly reduced the need for test coverage of data types, or defensive code to evaluate function parameters – but it’s also shrunk the dynamic nature of Python to the subset recognised by type checkers. My project now has an average of five # type: ignore lines per Python file, and I’ve spent way too much time this year on (a) researching ways to make an idiom type-compatible, and (b) giving up and adding an ignore.
Если в настройках экрана отключить встроенный экран, а оставить только внешний, подключенный по HDMI, то начинаются лютые фризы и тормоза. При этом в логах X-ов появляется:
(EE) AMDGPU(0): drmmode_do_crtc_dpms cannot get last vblank counter
Тут же возращаешь настройки назад и все ОК.
Гугл говорит что у народа такое бывает при выходе из спящего режима с отключением монитора.
Linphone Desktop - самый полноценный и рабочий вариант, но с 4 версии весь завязан на их фирменные сервисы и даже presence не включить без ковыряния в BD). Мы такое не любим.
Jitsi Desktop - мёртв, последняя версия вышла в 2020 году, толком не развивался с 2016. Все бы ничего, но я даже контакт не могу добавить в список - тупо неактивна кнопка Add. Еще на Java - фу!
Blink Qt - корявенько и нефункционально. Например, нельзя добавить в контакт из истории вызовов. Перевод вызовов и Presence вроде зявлены, но я не нашел как.
В итоге - все тот же MicroSIP через Wine. Единственный минус - не работает видео.
Вышла новая версия KeePassXC — кроссплатформенного менеджера паролей с графическим интерфейсом. Исходный код распространяется под лицензией GPLv2 или GPLv3.
Одновременно представлены выпуски LTS-веток — Asterisk 18.15.0 и Asterisk 16.29.0 с исправлением ошибок и включением части перечисленных в новости нововведений.
Разработка ПО и доработка существующего на C++/Qt
Работа с проектом KDE
Разработка, мантейнерство пакетов
Работа с opensource сообществом проекта KDE
Разработка преимущественно десктоп приложений. Много работы с GUI, поэтому ищем человека с хорошим чувством вкуса и знанием основных принципов UX.
Какие варианты видим?
fly-dm не взлетел и стоит задача переезда на KDE
fly-dm таки таки ворует наработки KDE. KDE Frameworks под LGPL
Проблема - в zabbix постоянно висят две ошибки по обоим дискам:
sda: Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m)
sdb: Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m)
Оба диска собраны в RAID1:
md2 : active raid1 sda4[2] sdb4[3]
392050688 blocks super 1.2 [2/2] [UU]
bitmap: 0/3 pages [0KB], 65536KB chunk
md0 : active raid1 sda2[2] sdb2[3]
87824384 blocks super 1.2 [2/2] [UU]
md1 : active (auto-read-only) raid1 sda3[2] sdb3[3]
7806976 blocks super 1.2 [2/2] [UU]
Сервер совершенно не нагружен.
Обратил внимание, что когда после аварийной перезагрузки пересобирался RAID, то ошибка под диску sda пропала. Ну и по графику видно - как только появляется реальная активность на дисках, то значения «Disk read/write request responses» падают.
В первом томе свого монументального труда А.В. Столяров пытается мне донести опасность побочных эффектов, приводя в пример функции и процедуры Pascal. И как C плох тем, что в нем только функции. В своем интерьвю он тоже про это упоминает.
Но я ничего не понел.
Возьмем его же пример свободной от побочных эффектов процедуры:
procedure NegotiateSize(var res: integer);
var
h: integer;
begin
repeat
write('Enter H: ');
readln(h)
until (h > 0) and (h mod 2 = 1);
res := h
end;
И аналогичную функцию с побочным эффектом:
function NegotiateSize: integer;
var
h: integer;
begin
repeat
write('Enter H: ');
readln(h)
until (h > 0) and (h mod 2 = 1);
NegotiateSize := h
end;
Одновременно представлены выпуски LTS-веток — Asterisk 18.8.0 и Asterisk 16.22.0 с исправлением ошибок и включением части перечисленных в новости нововведений.
Я всю жизнь пользовался aptitude и там можно было сделать так:
$ aptitude -t bullseye-backports search ~U
i A libldap-2.4-2 - OpenLDAP libraries
i A libldap-common - OpenLDAP common files for libraries
i mdadm - Tool to administer Linux MD arrays (software RAID)
i zabbix-agent - network monitoring solution - agent
В apt наконец тоже завезли шаблоны и я на него уже почти полностью перелез, но держит одна фигня:
$ apt -t bullseye-backports list --upgradable
E: Command line option 't' [from -t] is not understood in combination with the other options.
$ apt -t bullseye-backports list ~U
E: Command line option 't' [from -t] is not understood in combination with the other options.
$ apt -t bullseye-backports search ~U
Sorting... Done
Full Text Search... Done
$
$
$ sudo apt -t bullseye-backports full-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
libldap-2.4-2 libldap-common mdadm zabbix-agent
4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1 382 kB of archives.
After this operation, 37,9 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Что за фигня, почему ключ -t работает только с install/upgrade?!
Пока вы обсуждаете всякую малозначащую ерунду типа systemd или pipewire, в мире Linux остаются действительно очень важные нерешенные проблемы, которые простой ЛОРовец стесняется обсуждать.
Одина из таких - какой стиль команд использовать простому крестьянину в tar?
Традиционный:
tar cfv etc.tar /etc
Модный UNIX:
tar -cvf etc.tar /etc
Или, может быть, вы любите длинные, но однозначные опции в GNU-style?
tar –create –file etc.tar –verbose /etc
Нам надо наконец-то решить и принять единый стиль - твердо и четко.