Category: homelab

12.11.2023

Marvinator-а, брат на marvin, който съвсем скоро вдигнах имаше нужда от мониторинг. И тръгвам аз да инсталирам prometheus/alertsmanager/grafana и в един момент започнах да смятам колко рам ще ми е нужна. И понеже съм скръндза реших да изнеса целия мониторинг към Grafana.com и да им използвам безплатния tier, който като единствен минус към момента ми е, че metrics & log retention-а ми е само 14 дни, но yolo.

Инсталацията на агента, който е единственото нещо, което живее на моя хост е бърза и лесна, а откъм потребление към момента е около 140 MB RAM. Ако бях хостнал локално целия стак щеше със сигурност да бъде много повече.

A project of the day отива при tuning-primer – bash скрипт, който дава добър анализ на mysql/mariadb бази. Нужни са само root user/pass към базата и като резултат ви изплюва всичко, което му е харесало и което не е ок. Има доста данни покрай анализите и можете да си направите един добър fine tuning.

#100daysOfHomeLab – day 3

Време е за сетъп на k8s, rancher и nextcloud! Юхууу!

Tip №1 – за да не теглите ISO на любимата ви дистрибуция на вашата машина и после да upload-вате към proxmox (аз съм с някакъв абсурден сетъп с рутерче за сигурно 10 лв. и wifi е болезнен) можете да го wget-нете направо на сървъра по този начин:

wget -P /var/lib/vz/template/iso  https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso

В първия пост по темата си говорихме за това, че искам да използвам k8s, но за тези, които просто искат инсталиран nextcloud (или и k8s + docker) просто могат да го направят от инсталатора на Ubuntu Server:

А какво правим когато не можем да спрем/рестаритраме машината заради Proxmox can’t lock file ‘/var/lock/qemu-server/lock-xxx.conf’ – got timeout? Първо опитваме с built-in инструмента на Quemu/KVM VMM:

qm unlock 100

Ако не стане ще се наложи по грозния начин – да изтриете lock файла. Първо намираме кое е VM ID-то, което ни е нужно и после трием lock файла ръчно. Това сработи при мен:

nedko@minimicro:~# ls -l /run/lock/qemu-server/

-rw-r--r-- 1 root root 0 Jun 17 16:27 lock--1.conf
-rw-r--r-- 1 root root 0 Jun 17 17:42 lock-101.conf

rm -f /var/lock/qemu-server/lock-101.conf

Днес е голяма забава. Оказа се, че при инсталацията на Ubuntu 22.04 LTS при Proxmox & VMWare спира при curtin command in-target. Разрешението, както е описано е да се инсталираме Ubuntu без networking и в последствие да си го пуснем. И понеже трябва да си напишем yaml-а на ръка и е малко пипкаво оставям тук моето решение (което е стандартно такова, не съм открил топлата вода). Първо трябва да си знаем името на интерфейса, което ще вземем от /sys/class/net/ защото по default например нямаме netstat в ubuntu server така, че горното решение ще свърши работа при всяка Debian based машина:

nedko@k8s:~$ ls /sys/class/net/
ens18  lo
 
nedko@k8s:~$ sudo vim /etc/netplan/01-network-manager-all.yaml

Приемайки, че нашата мрежа е 192.168.1.1/24 с gateway 192.168.1.1 (и използваме DNS на Cloudflare, които предпочитам по ред причини) резултата изглежда такъв:

network:
    ethernets:
        ens18:
            dhcp4: false
            addresses: [192.168.1.110/24]
            gateway4: 192.168.1.1
            nameservers:
              addresses: [8.8.8.8,8.8.4.4,192.168.1.1]
    version: 2

След това apply-ваме промените (с –debug за да видим детайли ако нещо се омаже):

nedko@k8s:~$ sudo netplan --debug apply

И от толкова греди не ми остана време да инсталирам docker, rancher & k8s. Next time!

#100daysOfHomeLab – day 2

Понеже последно време покрай ОГРОМНИЯ избор на проекти, които мога да хостна и чуденките ми кой как да свържа с другия за да ми паснат на use case-а изпаднах в нещо наречено analysis paralysis, което в същността си е “задръстването” от информация, която поемаме за да направим нещо. Обикновено е съчетно и с желание за идеален сетъп от първия път, а това освен много напрежение ни добавя и нереалистични представи понякога.
Та когато се усетих, че съм си набелязал 20-тина сървиса и гледам някакви advanced pi-hole techniques и се спрях. Първата ми цел ще бъде да тествам nextcloud – проект, който искам да тествам в production от доста време.

И понеже старото ми аз би направило нова виртуалка на която да вдигна nextcloud се спрях и си реших да приключа веднъж завинаги с това и да започна да уча по-интензивно kubernetes, защото ще ми бъде много полезно за в бъдеще. И така планът е:

kubernetes на който върви Nextcloud –> да използвам volumes за mySQL (или noSQL по възможност, ще бъда щастлив) и основните директории на nextcloud (/var/www/html{custom_apps,config, data, themes}). Този целия сетъп след някакво време като дойде време за network hardening-а ще отиде на отделен VLAN и ще му орежа доколкото мога достъпа отвън за да няма изненади в последствие.

Също така тряба да се науча да правя и къдърни графики, че това с –> ми е навик от малък и не носи никаква информация освен ако не е нещо линейно.

#100daysOfHomeLab – day 1

Днес почистих HP MicroServer gen8 машината – смених паста, почистих от прахта, малко cable management и почистих кутията. Температурите спаднаха със средно градус-два като се замислям да сложа някакъв по-тих и с по-голям дебит вентилатор, но HP-тата винаги са били ********* и си ползват свои собствени стандарти и смяната на всеки вентилатор е болезнено и рисково. Освен това възнамерявам да ъпгрейдна към Xeon E5-1225 v2, който е почти 70 вата (срещу 17вата на текущия процесор) и още един вентилатор би му дошъл меко казано добре.

Освен това ъпгрейднах и iLO4 от 2.78 към 2.80. С времето iLO ми стана неизменен помощник и е супер полезен за много неща, някои от които:

  • Мога да управлявам машината без да закачам периферия по нея, директно през iLO като най-якото е, че имам достъп до него и когато машината НЕ Е ПУСНАТА!
  • Мога да инсталирам OS директно през iLO без да има нужда да правя USB-та и CD-та, мега удобно е
  • За някои системи можете да си наблюдавате и консума
  • Хардуерен мониторинг на системата
  • Insight agent
  • SNMP съобщения при определени събития (например така разбрах, че единия ми диск е гръмнал докато нямаше още го тествах и нямах мониторинг на него)

2.80 можете да изтеглите от тук, а след като го изтеглите можете да използвате този snippet за да разархивирате:

chmod +x ilo4_2.80.scexe

./ilo4_2.80.scexe --unpack=./iLO4

И ъплоудвате ilo4_28.bin в контролния панел на ILO. след 2-3 минути и рестарт на ILO всичко си идва на мястото.

Happy labbing!

100 Days of HomeLab – The HomeLab Challenge

TechnoTim даде една страхотна идея. Сто дни биха били достатъчни човек да изгради солиден навик. И понеже той е tech youtuber на който доста се кефя се зачудих като видях заглавието на клипа. Оказа се обаче, че не е само той, а буквално ВСИЧКИ технически youtubers,които говорят зa homelabs, инфраструктура, proxmox и хардуер. Ако сте фенове ви го препоръчвам.

Та по негов пример смятам да ъпдейтвам тук в блога какво съм правил и правя по моя homelab. Ще зацапам блога с много и кратки постове, но е по-добре отколкото един огромен пост тип changelog. Мислих си и за едно git repo (или gist), но така exposure-a ще е много по-малък и няма да усещам peer pressure-а :D Понеже няма как да правя всеки ден неща в продължение на толкова време си слагам таргет от 3 пъти седмично като това може да включва целия спектър – от стратегия през provisioning, хардуер и до networking. Надявам се да ви в полезно и да надъхам някой да направи същото или поне да се зачете за контейнери/хардуер/networking и т.н.

А защо го правя ще се запитате? Ще попитате нямам ли дете, бременна жена, семейство, хоби и т.н.? И ще ви отговоря. Освен, че ми е супер интересно тези предизвикателства са и супер полезни в професионален план. Пример – всеки е разцъквал docker, но до къде? Да вдигне един hello world или както направих аз да взема един прост ruby script и да го изпълня? Хубаво ама в реални условия може да речем да вдигнете един домашен plex за да си имате библиотека с филмите и сериалите, но искате достъпа до persistent volume-а да става от друга машина? Или да се стартира автоматично при пускането на машината? Или да се вдига наново ако нещо се строши? Това са елементарни примери, но са извън обикновеното – “Я да разгледам тоя docker” и всичко да приключи след 2 примера от нета. А кога сте правили конфигурирали VLAN за да сегментирате трафика между устройства? Това са все неща, които всеки е чувал как работят, някои са цъкали малко, но рядко някой е поддържал такива системи и лично е отговарял за тях поради една или друга причина. И точно тук идва моето нещо – цяла екосистема, която да е съвсем истински production за който аз да съм отговорен и да съм направил цялата архитектура и всичко около него. Това за мен би било супер близко до това, което правя на работа.