среда, 24 мая 2023 г.

Proxmox ZFS howto find Linked Clone disks

id 200 - proxmox template

id 201 - VM with Linked Clone disk

zfs list -o name,origin
...
rpool/data/vm-201-disk-0 rpool/data/base-200-disk-0@__base__

вторник, 23 мая 2023 г.

NetworkManager vlan on bond interface

nmcli con add type bond con-name bond0 ifname bond0

nmcli con modify bond0 bond.options "mode=802.3ad,xmit_hash_policy=layer2+3,miimon=100,lacp_rate=1"

nmcli con add type ethernet slave-type bond con-name bond0-eno1 ifname "eno1" master bond0

nmcli con add type ethernet slave-type bond con-name bond0-eno2 ifname "eno2" master bond0

nmcli con mod bond0 ipv4.method disabled

nmcli con mod bond0 ipv6.method ignore


nmcli con add type vlan con-name bond0.2222 ifname bond0.2222 dev bond0 id 2222

nmcli con mod bond0.2222 ipv4.addresses '10.0.0.5/24'

nmcli con mod bond0.2222 ipv4.gateway '10.0.0.1'

nmcli con mod bond0.2222 ipv4.dns '8.8.8.8,8.8.4.4'

nmcli con mod bond0.2222 ipv4.method manual 

понедельник, 15 мая 2023 г.

haproxy slowstart backend

Столкнулся с ошибкой приложения при работе с БД в схеме Percona xtradb cluster + Haproxy при рестарте одной из нод кластера

app.CRITICAL: An exception occurred while executing a query: SQLSTATE[08S01]: Communication link failure: 1047 WSREP has not yet prepared node for application use

backend bk_mysql
    mode tcp
    option mysql-check user haproxy
    default-server slowstart 30s weight 100
    server mysql-1 10.0.0.11:3306 check
    server mysql-2 10.0.0.12:3306 check
    ...

haproxy после перевода бэкенда в UP за указанный промежуток времени линейно поднимет его вес  с 0 до 100%, что значительно снизит число ошибок до перехода ноды в wsrep_ready ON.

haproxy tcp acl example

RTFM: https://www.haproxy.com/blog/use-haproxy-response-policies-to-stop-threats/#reject

frontend xxx_ft
        bind 10.0.0.10:29000
        mode tcp
        acl whitelist src 10.0.0.0/24
        tcp-request connection reject if !whitelist
        use_backend xxx_bk
backend xxx_bk
        mode tcp
        server ctcmedia 10.0.0.20:9000

вторник, 22 декабря 2020 г.

Расширение раздела без перезагрузки системы

fdisk /dev/sda

Удалить раздел, создать новый, сохранить


partprobe

Error: Partition(s) 1 on /dev/sda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.


partx -u /dev/sda

partprobe


xfs_growfs /

суббота, 29 июня 2019 г.

Создание wildcard сертификата Let's Encrypt

Создание wildcard сертификата возможно только через DNS challenge. Для подтверждения владения доменом необходимо создать TXT запись вида _acme-challenge.example.com с определенным значением.

Используем docker certbot в ручном режиме
sudo docker run -it --rm -v /docker/volumes/etc/letsencrypt:/etc/letsencrypt -v /docker/volumes/var/lib/letsencrypt:/var/lib/letsencrypt -v /docker/volumes/var/log/letsencrypt:/var/log/letsencrypt certbot/certbot certonly --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory --register-unsafely-without-email --agree-tos --manual-public-ip-logging-ok -d *.example.com
 Вывод:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:
pFIaptscrhj_BZsXNcl_wgj99X-Tuyb9x-_1l9o_bhk
Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

После правки DNS зоны _acme-challenge.example.com сертификат будет сгенерирован в каталоге:
/docker/volumes/etc/letsencrypt/live/

Была идея использовать локальный bind9 c добавлением TXT записей через RFC 2136 Dynamic Updates через плагин certbot-dns-rfc2136, но до практической реализации пока не дошли руки.

понедельник, 6 февраля 2017 г.

XenServer: скрипт очистки диска Dom0 после установки обновлений

После установки обновлений можно очистить место на диске Dom0 XenServer.
#!/bin/sh
PATCHLIST=`xe patch-list params=uuid | awk '{print $5}'`
for UUID in $PATCHLIST
do
        echo "Cleanup patch $UUID"
        xe patch-pool-clean uuid=$UUID
done
Идея скрипта: http://discussions.citrix.com/topic/371712-xenserver-low-root-disk-space-cleaup-script-for-patches/

Для работы скрипта на единичном сервере без пула можно использовать команду xe patch-clean, но фактически patch-pool-clean отрабатывает корректно.

Проверяем свободное место на диске df -h и содержимое каталога /var/patch/
# ls /var/patch/
applied
Содержимое каталога /var/patch/applied не трогать и не удалять!

Также не забываем периодически удалять лог-файлы XenServer.