Author: Недко

Author, writer, cyclist and a passionate DevOps/QA engineer that love to share his knowledge with everyone.

16.11.2022

Имам страхотни колеги. С това ще започна и свърша увода си. Един от колегите с които си говорим ежедневно спомена, че в последната версия на RouterOS има native support на docker, което е fucking mindblowing. С native support можете да си вземете един Mikrotik hAP lite за 50-60 лв и на него да си сложите, пак казвам, съвсем native, без нужда от префлаш, опасност от brick-ване и подобни приключения, един piHole с който да си филтрирате рекламите в youtube на телевизора и телефоните, например. Или да си защитите homelab-а с някакъв читав firewall или пък да си сложите един wireguard и си имате VPN.

Случая с моя Mikrotik, който събира прах по рафтовете е, че е старичък. Всъщност толкова стар, че wireless-а му работи само на 2.4GHz, а LAN портовете му на 100mbps. Реших все пак да опитам да ъпдейтна една major версия нагоре (от 6.х на 7.х) да видим дали ще се поддържа и о, чудо – ъпдейта мина супер flowless. Браво на Mikrotik, че си запазват поддръжката на ОS-а дори и при стари устройства.

Ако и на вас ви е интересно как стана магията всъщност беше супер лесно. Първо си ресетнах рутера като при изваден захранващ кабел натиснах reset бутона, след това сложих кабела и изчаках да започне да мига лампичката на USR. След това логин с admin без парола и отгоре в дясно, където са Quick Setup, WebFig и Terminal избрах Terminal (може и по сериен порт или ссх, но web е удобно ако човек иска да свърши нещо много бързо и не му се занимава със сертификати и подобни.

След това изпълних следните команди:


[admin@MikroTik] > system check-installation  

  status: installation is ok

[admin@MikroTik] > system package update set channel=upgrade 

[admin@MikroTik] > system package update check-for-updates  

            channel: upgrade

  installed-version: 6.49.6

     latest-version: 7.6

             status: New version is available

[admin@MikroTik] > system package update download

            channel: upgrade

  installed-version: 6.49.6

     latest-version: 7.6

             status: Downloaded, please reboot router to upgrade it

[admin@MikroTik] > system reboot 

Reboot, yes? [y/N]: Y

След успешен ъйдейт (логото горе в ляво ще ви покаже текущата весия) можем да разрешим и контейнерите. Имайте предвид, че за да направите това ви е нужен физически достъп до рутера, защото след изпълняване на долната команда трябва да го рестартирате. Може да ви е странно, но това е добра валидация, че собственика на рутера иска да разреши контейнерите (които са огромен security hole), а не някой, който е налучкал credentials.

[admin@MikroTik] > /system/device-mode/update container=yes  update: please activate by turning power off or pressing reset or mode button in 4m49s -- [Q quit|D dump|C-z pause]

Веднъж разрешени можете да започвате да си играете с контейнерите. Повече информация и настройка (networking, storage, etc) можете да прочетете тук – https://help.mikrotik.com/docs/display/ROS/Container

11.11.2022

Днес цял ден се боря с kubernetes. Ще станем приятели, но ще боли. :D

In other news:

  • Accidental $70k Google Pixel Lock Screen Bypass – ето как понякога не е нужно да разпоявате интегрални схеми за да дъмпите съдържанието на EEPROM-a на някое embedded device или в случая телефон. Тези логически flows са трудни за намиране и компании като гугъл понякога, както виждате, пускат неща, които не са перфектни.

09.11.2022

Още ми е странно като пиша, че сме 11 месец. В главата ми е да речем средата/края на Септември.

Вчера Злати по средата на битката с децата за вечер ми каза, че има изненада за мен – “Цялата вечер е твоя, аз ще се грижа за Оги”. Който няма деца може да не осъзнае каква жертва е това за човек, който изкарва по цял ден с децата докато аз съм на работа. А какво имаше снощи? Снощи беше релийза на God of War: Ragnarok – една от основните причини да си взема PlayStation 5.
Цъках от 00:00 (официалния release date) до 02:30 с малко прекъсване да нахраня Оги.

Първите ми впечатления (без да спойлвам ако мога) са, че Santa Monica Studios са слушали внимателно потребителите си. Историята вече е много, много по father-son, много повече интеракция има между персонажите, много нови неща излизат, а героите узряват повече и повече (особено Артей (Artheus) и Кратос). Като графика си е добре, но е да речем 15-20% по-добре от предната (поне до момента, после може да излезе нещо по-интересно, поне в ютуб има доста геймплей с едни страхотни пейзажи, едно чудо). Аз играя на PS5 и я въртя на 120хз на около 85 фрейма през цялото време, тоест играта се играе гладко, без засечки, без шумове (само от охлаждането на конзолата се чуват понякога малки стонове).

Не напразно IGN оцениха играта 10/10, а няколко студиа още преди няколко месеца започнаха да си оттеглят заглвията за 2023, защото беше ясно, че GoW ще е игра на годината.

08.11.2022

Днес ще го карам малко по-слънчево. Сутринта беше приятна, но динамична с двете деца (знам, но ще пиша за бебенцето когато му дойде времето, не искам да издекламирам само факта), после в офиса и сега боря нещото наречено BitBucket (май съм се разглезил около GitHub Actions и сега ми идва малко примитивно).

Мечтая си идните дни да изкарам колелото и да си направя традиция да го карам по обяд както бях по едно време през ляото (тогава проблема беше, че по обяд беше адски горещо).
И говорейки за мечти – мечта ми е багера, който рови на точно 2 метра от мен да не ми спре тока или интернета, но за това ще видим :D

Хах, преди само 3 години ми е била лекцията в dev.bg на тема security testing. Тя беше предшествана и от лекция на ISTACon. Интересното на тази за DEV.BG е, че направих видео по темата компилирано от многото бъзици и лафчета започайки от морето, Исуската, бялото платно, конвертирането от вода във вино и т.н. Та една сутрин към 6 се хванах, обиколих 5 магазина да намеря червен сок и вода, носих си стъклена чаша и към морето да заснема клипа. Беше много awkward, но пък feedback-a беше добър – забавно им е било на хората и даже са научили някакви неща. Какво повече мога да искам? Темата беше Security testing – from lizard to wizard in 40 minutes и се проведе в CampusX. Видеото можете да видите тук (смотания ми wordpress не прави preview на видеа от фейсбук), а събитието можете да видите тук. Залата беше препълнена и със стоящи отстрани хора, което беше много вълнуващо и направо леко насиращо :D

In other news:
SadServers e полезна услуга, която ви помага да си развиете troubleshooting skill-овете в посока Линукс

07.10.2022

Денят започва с покойния Честър, за който писах когато отне живота си. Наскоро попаднах на едно music react video в което The Charismatic Voice прави анализ на песен на LP, която не бях чувал от векове – Given Up. Бях забравил колко е яка. A live-а е жесток:

В един от анализите, които четох като си замина Честър някой някъде (имаше поне един журналист, който изпитва емпатия към него) беше казал – “Now all the lyrics makes sense”. И като се замислите повечето им песни са вик за помощ, а той говори открито за депресията си, но това не му попречи да си замине на 40.

И понеже докато писах този текст се върнах малко назад, сетих се за други заминали си таланти и просто нямаше как умът ми да не залитне с елегантна стъпка (представям си го носещ лачени обувки и тъмносин костюм) към физическото нещастие, което изпитах когато си замина Ленард Коен (и посмърнто издаденя му албум, за който писах). Хората на изкуството са два типа – едните са много, много екстравагантни (понякога клонящи към клоуни направо) или имат деликатна душа на творец и тъжни очи. Ленард Коен беше от вторите. Огромното наследство от най-прекрасни песни ще живее много, много дълго време. Един негов рецитал от Дъблин ме накара да подсмърчам като шестгодишен когато го открих съвсем случайно, споделям го с вас:

You came to me this morning and you handled me like meat. You’d have to be a man to know how good that feels, how sweet. My mirrored twin, my next of kin, I’d know you in my sleep and who but you would take me in
A thousand kisses deep
I loved you when you opened like a lily to the heat, see I’m just another snowman standing in the rain and sleet, who loved you with his frozen love and his second hand physique, with he is and all he was
A thousand kisses deep
I know you had to lie to me, I know you had to cheat, to pose all hot and high behind the veils of shear deceit, a perfect born aristocrat so elegant and cheap, I’m old but I’m still into that
A thousand kisses deep
I’m good at love, I’m good at hate, its in between I freeze. Been working out, but its too late, it’s been to late for years. But you look good, you really do, they love you on the street. If I could move I’d kneel for you
A thousand kisses deep
The autumn moved across your skin, got something in my eye, a light that doesn’t need to live, and doesn’t need to die. A riddle in the book of love, obscure and obsolete, to witness tear and time and blood
A thousand kisses deep
I’m still working with the wine, still dancing cheek to cheek, the band is playing Auld Laing Sine, but the heart will not retreat. I ran with Dez and I sang with Ray, I never had their sweep, but once or twice they let me play
A thousand kisses deep
I loved you when you opened like a lily to heat, just another snowman standing in the sleet, who loved you with his frozen love, his second hand physique, with all he is, and all he was
A thousand kisses deep
But you don’t need to hear me now, and every word I speak, it counts against me anyhow
A thousand kisses deep

И последно, ако ви харесва гласът на Ленард Коен искам да споделя един от много малкото албуми, които са ми абсолютен 10/10 – You want it darker. Събрана скръб и любов в продължение на десетилетия Ленард Коен запечатва всичко това малко преди да почине, а малко след това издадоха и албума, пожизнено. Няма да излъжа ако кажа, че бяха едни от най-щастливите и същевременно най-нещастните моменти от месеци насам. Искаше ми се да запаля една пура и да си налея един голям Лагавулин и да излсушам в тишина целия албум на един дъх.

Personal update, Oct 2022

Тъй де, доста време мина откакто не съм използвал блога си за да блогвам нещо около мен. Като цяло последните 3-4 месеца откакто смених работата се случиха мега много неща, едно от които е, че се сертифицирах като AWS Solution Architect – Associate. Няма да ви лъжа – беше трудно. Огромни обеми от информация по цялото широко поле на AWS си беше плътни три седмици подготовка. Ако на някой му е интересно мога да споделя какви материали използвах и като цяло стратегии за минаване на изпита, защото с ограниченото време и комплексните въпроси човек лесно може да изгуби представа за времето и да стане мазало.

Освен това последните 2 седмици съм се фокусирал върху сертифициране в Kubernetes – CKAD, което ми се струва, че не е толкова трудно колкото AWS, но си изисква времето и фокуса. Надявам се тази седмица да имам време да се явя и ще се похваля при първа възможност (умря циганката… :D ). Понеже ми стана доста интересен този k8s мисля, че си е съвсем doable да мигрирам home lab-а към k8s – хем ще имам свой “production” (нямам по-големи кавички, сори), хем съм убеден, че ще науча още повече за него.

Освен това, естествено, извън работата имам и една страхотна новина и тя е, че станах татко за втори път, но за това повече утре, когато малкия ще стане на точно един месец.

Чиърс!

Mazzy Star, everybody

Слуашли ли сте Mazzy Star? Не сте? Сте, но не знаете, всъщност.
Попадна ми супер случайно докато слушах други неща, не момент, ще разкажа и тази история (малко рекурсия да направим). Lamb of God имат нов албум, Omens, който преслушвах. За него може би ще пиша скоро, но бих казал, че би бил чудесен двигател за някое каране из планините. ТА! Приключва последната песен от албума им, September Song и аз си ги слушам на заден фон докато чета за изпита си по CKAD и след като приключва идва следваща песен. След грамогласното каране на LoG започва нещо абсолютно различно – спокойно, нежно, едно такова носталгично даже. И тъкмо пиша някакви бесни YAML файлове и някак тази разлика успя да ми счупи нишката на мисълта (все едно докато се къпете рязко да спре топлата вода, но за 2 секунди, едно такова). Та усетих, че трябва да спра и да послушам малко, защото бях я слушал и преди много, много време.

Та представям ви и на вас магнетичните Mazzy Star. Има няколко изпълнения на Fade into you, но това мисля, че ми е най-любимо. Enjoy:

Коментарите са супер положителни (доста голяма рядкост за youtube) и има няколко много ценни. Един от тях ще запомня:

This song makes me want to go back somewhere I’ve never been, makes me want to feel something I never felt.

Here’s to all of us who are homesick for a place that no longer exists.

Sliknot – Yen

В моя стил е ако харесам едно парче да го въртя на repeat с дни/седмици (както беше първото парче от OST-то на God of War, като Kovacs, както Joe Bonamassa и Beth Hart и връщайки се назад през годните още десетки парчета). Та когато излезе Yen, на Slipknot, като част от албума The End, So Far, който ще излезе в края на Септември, я чух, заедно с останалите – The Dying Song (time to die) и The Chapeltown Rag като и трите ми допаднаха много, но основната ми грешка беше да сравнявам с Iowa, моята първа Слипнот любов и първата ми наистина тежка, смразяваща и болезнена музика. Или поне така ги усещах тогава. Нямаше да повярвам, че си ги въртя като взимам малкия от яслата, но това е друга тема.

Но реших един ден да си пусна и трите песни, които ще са в новия им албум и с неохота да чакам още един месец за да чуя и останалите. Та пуснах си Yen, като първа, после някак като знаех, че ще ги слушам цял ден ѝ обърнах малко повече внимание, но без Iowa очакванията (който скоро навърши 21 години!). После се зачетох в текста, който се оказа леко смущаващ, но добър, после в заоблените краища на гласа на Кори, в грубите и нащърбени остриета, които излизат още при първите “As the knife goes in, cut across my skin, when my death begins…” и божествената част, заради която пиша този текст:

I wish this pain could last forever, forever

I wish this kill coud make me suffer for good.

Божествените барабани на заден фон, ехото над гласа на Кори, чинелите, които отброяват минутите на неговия герой в песента, рева преди и след тези два реда, внезапното укротено примирение създават усещането за свободно падане, не бутане, от високо в студена и дълбока вода, за вечност.

Видеото към песента също е добро:

Ако сте фенове ви препоръчвам да чуете и трите парчета ако не сте и много силно се надявам дори да не са най-добрите в новия им албум.

Няма да бъда лектор на QA:ChallengeAccepted

Priorities first. Злати ще роди всеки момент (месец по-рано) така, че след консултация с АГ-то стана ясно, че по времето на конференцията (или малко преди нея) Злати ще има най-много нужда от мен и писах на Пешо Събев в последния момент, че няма да мога да отида.
Лекцията ще съществува, но по-натам – може би след месец/два ще направя епизод на подкаста, защото вярвам, че това е важна тема за нас като специалисти и се надявам да успея да мотивирам някого да направи голямата стъпка.

За бебенце 2 ще пиша като дойде.

aws zsh autocomplete

Един бърз writeup как да си подкарате безспорно (безпорно?) мегаудобството aws cli completition (тоест като напишете aws s3 l да ви покаже всички коменди в този namespace) под macos. Как да го инсталирате можете да прочетете тук.
В документацията на aws го има описано в повече детайли, но meat-а е само да добавите в .zshrc следните редове:

# Path to aws_completer
export PATH=/usr/local/bin/:$PATH

autoload bashcompinit && bashcompinit
autoload -Uz compinit && compinit
complete -C '/opt/homebrew/bin/aws_completer' aws

След това за да избегнем стъпката с logout или рестарт можем просто да презаредим файла наново (един хубав плюс е и това, че ако нещо не сме paste-нали правилно или пътят към aws_completer-а е грешен ще получим и съответното съобщение и ще ни спести малко време вместо да рестартираме при всяка промяна да речем):

source ~/.zshrc

Сега е време за тест, да опитаме да изкараме списък с всички ec2 instances (без значение от state-а им):

aws ec2 describe-instances --output json | jq

Малко е трудно да направя демо на това, но като напишете aws ec2 des[TAB] и ще ви покаже всички възможни опции. След като изберете нещо конкретно можете да продължите със следващия параметър, в случая –output. Неудобното е, че не suggest-ва и опциите по параметрите (в случая те са json, table, yaml-stream, text, yaml), което приемам за неудобство, но и разбирам, че не би работило това навсякъде (представете си autocomplete-а да прави requests към вашите ресурси (дай всички ec2 инстанции, после дай всички тагове и т.н.). Би било епично, но не виждам това да бъде възможно скоро време. Та ако имате инсталиран jq бихте видели output с всички параметри по EC2 инстанцията (които са десетки). За по-лесна визуализация можете да използвате –query параметъра и да изкарате нещо подобно:

aws ec2 describe-instances \
--query "Reservations[*].{ \
OwnerID:OwnerId, \
IP:Instances[0].PublicIpAddress, \
InstanceID:Instances[0].InstanceId, \
AvailabilityZone:Instances[0].Placement.AvailabilityZone, \
InstanceState:Instances[0].State.Name, \
KEY:Instances[0].KeyName, \
VPC:Instances[0].VpcId, \
InstanceType:Instances[0].InstanceType \
}" --output json | jq

И съответния output:

[
{
"OwnerID": "255875099999",
"IP": null,
"InstanceID": "i-074db48e5a4a4a4a4",
"AvailabilityZone": "eu-west-1a",
"InstanceState": "stopped",
"KEY": "nedko",
"VPC": "vpc-0cb7fb97b97b97b97",
"InstanceType": "t3.micro"
}
]

–query е мощно средство ако искате да автоматизирате през aws cli или искате да дебъгвате нещо определено и по ред причини не използвате AWS CloudWatch да речем. Аз например имам един gistс няколко craft-нати spell-а за различни кейсове, които са ми били нужни през годините и когато имате 20-30-40 инстанции (или ресурса, тук пиша в контекста на EC2, но cli console-а може да се използва практически навсякъде) може да ви улесни живота с много.