MYCSS

14 лютого 2022 р.

Нотатка для себе. Proxmox easy HA script.

В деяких ситуаціях HA (High Availability) системи Proxmox для віртуальних машин не допомагає.

Такою ситуацією є випадок коли резервна копія віртуальної машини налаштована як stop mode, а не snapshot mode.

І бувають ситуації на кшталт цієї:

INFO: timeout waiting on systemd
command 'qm start 101 --skiplock' failed: exit code 255
ERROR: Backup of VM 101 failed - timeout waiting on systemd
INFO: Failed at 2022-02-11 01:15:48
INFO: Backup job finished with errors

Тому простий скрипт котрий запускає за розкладом crond вирішує цю задачу:

#!/bin/sh

vmlist="101 102"
for i in $vmlist; do
 status=$(/usr/sbin/qm status $i)
 echo $status
  if [ ! "${status}" = "status: running" ];then
   echo "BAD"
   /usr/sbin/qm start $i
  else
   echo "OK"
  fi
done
corontab -e
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

*/30 * * * *      /home/check-vm.sh 2>1 >/dev/null

Результат роботи скрипту

 


3 лютого 2022 р.

Нотатка. Оновлення запису DNS для DHCP CLIENT FreeBSD з використанням nsupdate

Є сервер FreeBSD, з використанням dhclient для мережевого інтерфейсу.

Задача, оновити  запис в власному сервері DNS з отриманим IP від DHCP сервером.

Встановлюю додатковий компонент pkg install samba-nsupdate.

nsupdate


dhclient

Створюю скрипт dhclient-exit-hooks для dhclient.

/etc/dhclient-exit-hooks
#!/bin/sh

/usr/bin/logger -t dhclient-exit-hooks REASON ${reason} IP: ${new_ip_address}
case "${reason}" in BOUND|RENEW|REBIND|REBOOT)
        echo ${new_ip_address} ${reason}
        /usr/local/etc/ddns/ddns.sh ${new_ip_address} ${reason}
;;
esac

 Створюю теку /usr/local/etc/ddns, там завантажую файл ключа ddns.key для оновлення DNS з RFC 2136 і також цей скрипт: 

 nsupdate

/usr/local/etc/ddns/ddns.sh

#!/usr/bin/env /bin/sh

IP=$1
KEY=/usr/local/etc/ddns/ddns.key
NSUPDATE=/usr/local/bin/samba-nsupdate
DNSSERVER=your_dns_server
DNSHOST=host.example.net

if [ ! -z ${IP} ];then
 echo updating:  ${IP} [ $2 ]  - ${USER}
 /usr/bin/logger -t dyndns updating:  ${IP} [ $2 ]  - ${USER}
 if [ -f ${KEY} ];then
  ${NSUPDATE} -4  -k ${KEY}  <<EOF
server ${DNSSERVER}  53
update delete ${DNSHOST}
update add ${DNSHOST} 300 A ${IP}
send
EOF
  else
   logger -t dyndns no key file ${KEY}
  fi
else
 echo IP missed
 logger -t dyndns IP missed
fi

BIND 

ddns-confgen -a hmac-sha512 -z host.example.net

# To activate this key, place the following in named.conf, and
# in a separate keyfile on the system or systems from which nsupdate
# will be run:
key "ddns-key.host.example.net" {
        algorithm hmac-sha512;
        secret "SdimvwKG5SDqeS7hD+C6ap89sRN4I2EuYrJKHFXtJ83CuUF6kbELxrv5OgVeVctzyqbafcQTGJgQh/svkv+/Yg==";
};

# Then, in the "zone" definition statement for "host.example.net",
# place an "update-policy" statement like this one, adjusted as
# needed for your preferred permissions:
update-policy {
          grant ddns-key.host.example.net zonesub ANY;
};

# After the keyfile has been placed, the following command will
# execute nsupdate using this key:
nsupdate -k 

15 січня 2022 р.

Нотатка: Динамічний таймер на базі "розумної" розетки SONOFF S26 з Tasmota та MQTT

Є завдання, вмикати освітлення у приміщенні тамбура перед квартирою, за певними персоналізованими умовами.

SONOFF S26 - Tasmota

Умови

  • ручне керування: вимикання, вмикання на короткий час, на довгий час
  • віддалене керування через MQTT брокер, вимикання, вмикання на короткий час, на середній час,на довгий час.
  • вимикання завжди за аварійним або контрольованим таймером

10 січня 2022 р.

Модифікація кнопки для дзвінка на кнопку з датчиком руху та індикацією стану розумного будинку на базі SONOFF/ESP/Tasmota

Задача на холодильник прикріпити магнітом кнопку - датчик.
Датчик руху дозволить ввімкнути освітлення і наступній кімнаті перед виходом з кухні.
А механічна кнопка, дозволить керувати розумним реле у кухні в ручному режимі на випадок не робочого стану логіки контролера розумного будинку.

В якості датчику руху використано мініатюрний модуль SR602.


 До кнопки додано магніт.

5 січня 2022 р.

Ремонт редуктора насадки блендера Mirta, Rotex

Від не розрахування густини рідини, шестерня редуктора стала прокручуватися на валу.
Швидкої заміни не було знайдено, а замовити первинний друк на 3D принтері не рентабельно. Тому знайдено рішення зробити надфілем насічки у внутрішньому отворі шестерні, а на вал намотати харчову фольгу, підвищеної товщини.
Після насадження на вал шестерні, редуктор знову працює.

IoT. Моніторинг температури централізованого опалення на ThingSpeak з сенсорів Tasmota і OpenWeather в OpenWRT

Графік змін температур

Поточні температури

Поточна температура централізованого опалення

 

Поточна температура на вулиці

17 грудня 2021 р.

Перший код в LUA. Скрипт для роутера з OpenWRT. MQTT та Telegram статус підключених WiFi clients.

З метою оптимізації мого попереднього коду (Нотатки : Простий скрипт для wifi device tracker в OpenWRT : відсилання повідомлень до MQTT ) в SHELL script так як його можливості дещо обмежені. Перевів код на LUA -  швидка і компактна скриптова мова програмування.

Мета коду - зробити автоматизацію вдома на основі присутності людей. Один з варіантів визначення присутності це за тим чи підключений мобільний телефон особи до домашньої Wi-Fi мережі.

Результати роботи визначення статусу в телеграм групі
Так як мобільний телефон при підключенні до мережі Wi-Fi використовує унікальні MAC адреси, то за активністю MAC адрес можна припустити по наявність особи вдома.

11 грудня 2021 р.

Нотатка для себе, Proxmox QEMU agent для VM - запуск команд

Як взаємодіє гіпервізор з віртуальними машинами ?
Один з варіантів використати агент для віртуальної машини. 

У Proxmox це qemu-agent [1],  від існує для різних операційних систем.
Так для FreeBSD існує версія пакунку "qemu-guest-agent-5.0.1  QEMU guest-agent utilities", з функціоналом але дещо обмеженим.

Для роботи з агентом є команда  qm guest.

 qm guest cmd <vmid> <command>
 qm guest exec-status <vmid> <pid>
 qm guest passwd <vmid> <username> [OPTIONS]
 qm guest exec <vmid> [<extra-args>] [OPTIONS]


Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready