пятница, 13 декабря 2024 г.

metabase: Database has migration lock (с h2 базой), в докере

 При обновлении метабазы можно поймать

INFO db.liquibase :: Database has unrun migrations. Checking if migration lock is taken... metabase | 2024-12-11 13:50:58,579 WARN util.jvm :: auto-retry metabase.db.liquibase$wait_for_migration_lock$fn__45690@5bfa25f0: Database has migration lock; cannot run migrations. You can force-release these locks by running `java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar migrate release-locks`.

Фикс (блоком кода)

docker compose down docker ps # обязательно проверяем, что нет лишних запусков, иначе всё сломается docker compose run -ti --entrypoint /bin/bash metabase cd /app #### Обязательно указать валидный файл, иначе просто создаст новую базу. Путь тоже именно такой, иначе создаст metabase.db.mv.db.mv.db export MB_DB_TYPE=h2 export MB_DB_FILE=/metabase.db/metabase.db java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar migrate release-locks java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar migrate up ### Обязательно выходить через exit 0, иначе контейнер будет пытаться рестартоваться exit 0

и дальше штатный запуск

понедельник, 9 декабря 2024 г.

openmediavault + zfs

 В китае был куплен комп на N100 под небольшой домашний NAS, и по мере изучения было решено "а чего бы не изучить openmediavault". Добавлен второй диск (обычный sata на 2Тб, механика), поставлен omv. Из коробки вообще довольно много занятного, включая поддержку k8s, podman.

Но захотелось добавить zfs, штатно его нет, нагуглилось что нужен https://wiki.omv-extras.org/. Только оказалось, что он не открывается из РФ, будто это кому-то сделает плохо (нет). 2 минуты, тор браузер, выкушена строка установки по адресу

https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/packages/master/install :

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash

И.. всё появляется.

Можно через веб, система - плагины - в поиск zfs, можно прямо в консоли

apt install -y openmediavault-zfs

Далее обновляем веб интерфейс и хранилище - zfs - pools - создать, можно отдать просто диск/раздел (предварительно надо будет очистить), можно например lvm том отдать. 

Единственное, "создать раздел" у меня не получилось, если прямо на физический диск делать пул, принимает или lvm, или диск целиком..

вторник, 3 сентября 2024 г.

вторник, 20 августа 2024 г.

про обновления Dell

 > Firmware update with iDRAC fail with RED007: Unable to verify Update Package signature.

Такое можно поймать, если вообще забили на обновления и idrac версии типа 2.21.21.21 (актуальная 86)

Pre 2.40.x.x_xx version -> 2.40.40.40_A00 -> 2.63.60.61_A00 -> 2.70.70.70_A00 -> 2.84.84.84_A00 […]

https://www.itechlounge.net/2024/06/servers-firmware-update-with-idrac-fail-with-red007-unable-to-verify-update-package-signature/

Пакеты Dell Update Package (DUP) iDRAC7 и iDRAC8 больше не содержат цифровых подписей SHA-1. Это изменение DUP было введено в микропрограмме iDRAC 2.61.60.60 и более поздних версиях. В iDRAC7 и iDRAC8 версии 2.40.40.40 или более поздних версий добавлена поддержка проверки подписей SHA256. iDRAC должен работать под управлением одной из следующих версий для поддержки полезных нагрузок SHA-256 DUP с помощью обновлений по дополнительному каналу.

(с трусливо сбежавшего сайта делл)

И момент: если старый драк то при попытке войти можно получить ошибку

sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: denyAfter constraint check failed: SHA1 used with Constraint date: Tue Jan 01 01:00:00 CET 2019 [...]

https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0101395

Нужно обновить драк и/или выполнить фикс в конфиге по примеру из линка (удалить SHA1 usage SignedJAR & denyAfter 2019-01-01)

понедельник, 12 августа 2024 г.

ansible: ограничить количество одновременных хостов

 Штатно, ansible катит по 5 хостов за раз. Но бывает нужно как больше, так и меньше, например если мы катим какой-то сервис, то одновременный перезапуск всех инстансов сразу -- это проблема (всякие canary deploy и прочее опустим, тут другой инструмент). Вообще, раньше работала опция --forks=10 (и --forks=1 тоже), в 2.9 уже не работает. Но есть второе решение, очень неочевидное если не знать об этом: serial

Можно указывать как штуки, так и проценты.

вторник, 6 августа 2024 г.

angie+grafana

https://angie.software/configuration/grafana/

1) проверить, что есть

include prometheus_all.conf;

2) добавить блок для статов (и лучше вообще на отдельный порт, с этим работать проще)

    location =/p8s {
        prometheus all;
    }

! Нюанс: если данная лока смотрит не на локалхост, обязательно или добавить авторизацию, или конструкцию вида

allow 127.0.0.1;
allow 192.168.0.0/16;
deny all;

3) в prometheus

scrape_configs:
  - job_name: "angie"
    scrape_interval: 15s
    metrics_path: "/p8s"
    static_configs:
      - targets: ["192.168.1.100:80"]

4) в графану добавляем график 20719

PS Если нужно просто смотреть статы одной ноды, графана не нужна:

https://angie.software/configuration/monitoring/

ставим Console Light пакет, несколько строк конфига, и будет https://console.angie.software/

четверг, 11 июля 2024 г.

mysql медленная репликация

 Бывает что слейв начинает отставать от мастера, поскольку на слейве репликация прокатывается в один поток. И тут помогает (для mariadb):

https://mariadb.com/kb/en/parallel-replication/

Впрочем, был подсказан ещё вариант, менее надёжный, более быстрый (на слейве):

SET GLOBAL sync_binlog = 0; SET GLOBAL  innodb_flush_log_at_trx_commit = 0;

суббота, 15 июня 2024 г.

Компактные домашние NAS

 Требования (мои) к компактному, домашнему хранилищу:

1) размеры, все коробки даже под 3.5" достаточно большие

2) поддержка m.2

3) достаточная тишина

4) полностью готовое, условный запуск в работу - максимум 10 минут от момента распаковки.

5) минимум обслуживания

6) для дома означает разумный бюджет, synology тут вообще никаким боком, разве что ежедневно мониторить авито на предмет того ds126 + не соответствие п.1 по размеру. Туда же всякие asustor

Да, есть rpi + всякие модули, типа radxa hat или вообще usb to sata конвертер или внешний сата диск, очень кастом, но требует много времени и сил - отпадает по п.4. Как и клоны rpi с набортным m.2 слотом по той же причине. Да, там много решений, но смотрим п.4 + п.5 + п.6

Что же в принципе есть?

KubeSail + pibox, под 2.5" SSD, на базе raspbian CM4, что даёт много возможностей, и да, из коробки k3s. Можно просто на свой rpi поставить pibox. Но проект выглядит полузаброшенным, а купить в рф очень проблемно

ORICO CD2510. Утилита управления называется weline, есть на телефоны.

NasCloud Angel 1 - размер минимален, но дисков не содержит вообще, как и места под них, то есть подключать надо по usb.

Да и как-то всё... дополню если что-то адекватное ещё найду.

ЗЫ был найден orico за 6к и он и был взят.

среда, 5 июня 2024 г.

ansible, docker, Error connecting: Error while fetching server API version: Not supported URL scheme http+docker

 FAILED! => {"changed": false, "msg": "Error connecting: Error while fetching server API version: Not supported URL scheme http+docker"}

фикс

pip install requests==2.31.0

https://github.com/docker/docker-py/issues/3256

что-то не первый раз косяк с этим requests

понедельник, 3 июня 2024 г.

amazon aws s3 - path styles

https://community.aws/content/2biM1C0TkMkvJ2BLICiff8MKXS9/format-and-parse-amazon-s3-url

Суть:

есть масса форматов путей у S3, включая особенности про дефолтный регион (вне его такое не работает) - и просто не прочитав про это, можно долго думать что не так.

Если используется амазон и S3 - читать обязательно.

суббота, 1 июня 2024 г.

Форк nginx без маразма: встречаем angie

 Оказывается, существует форк nginx: angie

Суть проблемы: nginx (почти) остановился в развитии, вкладывая основные силы в nginx plus, и масса нужных вещей, таких как предварительный опрос апстримов, толковая работа балансировки, статистика не в 3 строчки, нативные экспортеры в тот же node_exporter - извольте платить (есть несколько вариантов типа VTS, но разработчикам не нравится что их жадность обходят и не рекомендуют такое). 

ЦЕНА. Тут они вообще поехали крышей, "Стоимость Nginx Plus составляет от $2500 до $5000" - в год. На каждый сервер. пример (учесть что это за 2 года). Даже западные мастодонты типа оракла более адекватные. Вообще никому не советую брать плюс. Если выкинуть поддержку 24/7 - цена этой лицензии баксов 100 максимум, тогда можно рассмотреть.

Но. Теперь можно просто перейти на angie, и сразу видим

То есть минус VTS, полностью

  • Режим привязки сессий, при котором все запросы в рамках одной сессии будут направляться на один и тот же проксируемый сервер.

  • Механизм плавного ввода проксируемого сервера в работу после сбоя с помощью опции slow_start директивы server.

То есть уже большой кусок плюса - есть. Да, это далеко не всё (смотрим сайт про Энджи про), но именно мне перекинуты очень нужные вещи. При этом если открыть раздел динамические модули, есть и инструкция по переходу с nginx, и настройка prometheus и grafana.

К большому удивлению, даже vts есть из коробки, только непонятно зачем - это по сути экспортер prometheus.


четверг, 30 мая 2024 г.

Docker hub всё?

 Что имеем: Docker hub перестал работать в России

Кому интересно - в комменты, там много всего.

И небольшой итог:

1) поднимаем кэш

https://docs.docker.com/docker-hub/mirror/ (2)

2) настраиваем короткие пути

https://www.redhat.com/en/blog/be-careful-when-pulling-images-short-name

3) хельмчарт как пример

https://artifacthub.io/packages/helm/docker-registry-mirror/docker-registry-mirror

4) зеркала, но без пуша, писать в /etc/docker/daemon.json, ключ "registry-mirrors": [] (подобрать сами прокси) (https://mirror.gcr.io работает у большинства)


https://gallery.ecr.aws/

https://mirror.gcr.io

https://cloud.google.com/artifact-registry/docs/pull-cached-dockerhub-images

https://daocloud.io

https://c.163.com

https://registry.docker-cn.com

5) не забываем про /etc/containerd/config.toml

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]

        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]

          endpoint = ["https://registry-1.docker.io", "https://mirror.gcr.io"]

Так штатно работает например docker pull nginx

(не забываем сказать systemctl reload docker.service, если не помогло то повторяем с restart)

понедельник, 20 мая 2024 г.

defunct процессы

 # ps -ef | grep defunct

sshd     2094514 2094513  0 Feb15 ?        00:00:00 [sshd] <defunct>

# ps auxww | grep ssh

root     2094513  0.0  0.1  16760  8652 ?        Ss   Feb15   0:00 sshd: unknown [priv]

sshd     2094514  0.0  0.0      0     0 ?        Z    Feb15   0:00 [sshd] <defunct>

Итак, что видим: defunct процесс (2094514) в Z state == zombie. Нужно прибить его родителя (2094513) и его отпустит, напрямую его прибить невозможно, даже с kill -9 2094514 ему ничего не будет.