Bash Days | Linux | DevOps
описание
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru
Лучшие посты
за три месяцаВчера на фоне поста про даунгрейд, прилетело довольно дофига вопросов. Сделал что-то вроде мини ФАКю, чтобы поменьше неопределенности было. ㅤ Вы помогаете написать резюме? Да, но как только сдашь 20 домашек и мы с тобой поймем в какую сторону двигаться. Ты скидываешь мне своё резюме и мы с тобой его подробно разбираем и усовершенствуем. Прокачиваем до состояния — ИИ (Applicant Tracking System) пропускает, HRы обращают на него внимание. Помогаете с трудоустройством? Готовую вакансию не дам, но помогу найти людей, которые захотят тебя забрать к себе в команду. Работает это так: я пишу пост сюда, о том какой ты замечательный и что умеешь. Но напишу только правду, если слаб на передок, то это отразим. Чтобы для работодателя было все прозрачно и без сюрпризов. Тема рабочая, порой ты видел такие посты здесь например такой, много кто оторвал себе хороший и жирный оффер. Будут созвоны 1x1? Нет, текстовый формат. Мне тебе проще текстом всё ёмко объяснить, чем вешать лапшу на уши в реальном времени. К созвонам отношусь скептически и стараюсь их избегать, потому что в 99% мы будем общаться про всякую хуйню, а не по делу. Текст всё же держит в рамках и помогает сосредоточиться на главном. А я устроюсь на работу если мне 40 лет? Да, ты «баба ягодка», все хотят чтобы ты их выебал. И лишь ты выбираешь с кем будешь работать. Не они тебе нужны, а ты им. Главное взять себя в руки на пару недель и немного повоевать со своей ленью. Один раз инвестировал в себя и на десяток лет ты в малине. А как вписаться? Как обычно, через бота @tormozilla_bot, а если остались вопросы, можешь позадавать их мне тут @linuxfactorybot 🛠 #workflow #рабочиебудни — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Зарплатный даунгрейд Короче, пришел ко мне в феврале человек на Linux Factory, подтянуть и освежить свои знания. Мол скучно ему стало, захотелось мяса. Трудится сеньором-помидором в крупной зеленой компании. Стандартная ситуация. ㅤ Ииии, как-то речь зашла про его ЗП и что он ей вообще не доволен. Но что-то менять страшно, ипотека, дети, да и возраст уже не тот, чтобы дрыгаться. Звоночек. С этим можно интересно поработать и доказать неочевидную гипотезу. Гипотеза — все эти разделения на джун-писюн, мидл-хуидл и т.п. грейды никак не коррелируются с зарплатными вилками. Всё зависит от компании и их жадности. Богаче, не значит — лояльнее к сотрудникам. Проводим пару внеурочных текстовых сеансов, набираемся мотивации, перелопачиваем вакансии (важно — ищем вакансии на Мидла), составляем продающее резюме, ходим по собеседованиям. Ииии…. через неделю получаем оффер, причем очень жирный оффер, почти x2.5 от текущий ЗП. При условии, что график полностью удалёнка (не гибрид), нет кубера, стек из 40-50 виртуальных серверов, докер, гитлаб, даже ансибла нет. Суть работы — сидеть на жопе ровно и саппортить текущую инфраструктуру. Да, есть нюансы, нужно с нуля систему мониторинга построить, но это прям детские игрушки. Вот и думай. Шаг назад прям хороший. Гипотеза доказана. Компании которые ворочают миллиардами, нанимают сотрудников на позицию Сеньоров за миску супа. А какие-то обычные Интернет магазины, готовы платить за Мидла 100500 мильонов в секунду. Так что, нет ничего стыдного в даунгрейде, ведь любая работа прежде всего делается ради денег. Отзыв этого человека как-нибудь размещу на сайте, а то там контекста много лишнего, надо отредачить. Если кратко, испытательный успешно пройден, в коллектив влился, инфраструктуру взял под контроль, мониторинг уже настроен, работа занимает теперь от силы 2-4 часа в день и то уже в процессе автоматизации. Вот такие пироги. Не ссы и двигайся вперед, а то так и просидишь до старости пропёрдывая кресло. 🛠 #workflow #рабочиебудни — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
без подписи
Сколько стоит фреймворк автоматизации Я тут принёс тебе гостевой лонгрид, причём сразу в двух частях, потому что в одну всё уже физически не помещается. Максим Братковский вещает, как с нуля собирал платформу автоматизации для десятилетнего Java-легаси: SOAP, REST, лицензии, конфиги, SNMP, SFTP, JMX и прочие радости, после которых ручной регресс длиной в пять недель начинает казаться котлом в аду. В первой части будет много жабьего кунг-фу: CXF, JAX-WS, JAXB, Allure, генерация XML, параметризованные тесты и разбор граблей, которые пришлось собрать по дороге. По итогу из коллекции на 130 запросов выросла платформа с 2700 тестами, а пять недель ручного регресса превратились примерно в 30 минут автоматического прогона. Кайфушка! Но это только половина истории. Вторую часть выкладываю сразу следом — там уже Docker, базы данных и дальнейшее развитие всей этой шайтан-машины. Короче, материала получилось дофига, кода тоже дофига, практического опыта — ещё больше. Наливайте чай и погнали: 👉 Первая часть: https://two.su/yq61v 👉 Вторая часть: https://two.su/pjeqd 🛠 #qa #dev — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
без подписи
без подписи
без подписи
Si vis pacem, para bellum Все вокруг ноют, что у нас какой-то кризис в айти, рынок перегрет, вакансии схлопываются, а на одно место претендуют сотни кандидатов. Да, так и есть. Искали мы тут QA специалиста, за неделю скинули более 2000 резюме. Это пиздец. Как будто нейронка по вакансии прошлась и нагенерила нам вайтишников. С QA всё понятно, это самый простой вход в наш «цирк абсурда», но вот с другими вакансиями аналогичная ситуация. Причем кандидаты гнут пальцы и не хотят делать тестовые задания, даже за деньги. Разленились падлы, подавай им сразу оффер и оклад 100500 мильонов за нехуй делать с обязательной удаленкой. Да идите вы нахуй! Ладно, я немного про другое хотел тебе написать. Тема довольна избитая — стоит ли сейчас увольняться и прыгать на другую работу, если ты уже официально трудоустроен? Однозначно стоит, если предлагают x3-x4 к текущей ЗП. Но возникает парадокс. Казалось бы, сиди тихо, цени текущее место и не дергайся. Но всегда есть НО. ㅤ Зона комфорта vs Испытательный срок На текущем месте работы, ты знаешь как всё устроено, где что лежит, можешь с закрытыми глазами ориентироваться, в общем царь и бог. Работаешь от силы 2-3 часа в день в комфортном для себя режиме, ездишь по делам и пинаешь хуи. На новом месте работы — баланс придется выстраивать с нуля, неизвестность, снова DODы испытательного срока, новые технологии, коллеги-токсики. И опять же уровень компетенции. Если на предыдущем месте ты уверенный мидл-сеньор, то на новом месте, грейды оцениваются иначе. Коллега сеньор-фронтендер сходил в яндекс на технический собес ииии, барабанная дробь — его скилы оценили как джуновские, соответственно предложили ЗП намного меньше чем он рассчитывал. А всё, потому, что технологии шагнули вперед, а он всё еще на втором ангуляре кнопочки двигает. Ежу понятно, что ключевой фактор это деньги. То есть здесь интересен не столько вопрос «правильно ли я поступаю», сколько вопрос «что именно я продаю и что покупаю». Если смотреть со стороны: Вместе с новой зарплатой получаем новый набор рисков: — испытательный срок — отсутствие привычной зоны комфорта — необходимость реально показывать результат — нагрузку, которая наверняка будет в разы выше Для кого-то лишние 200–300 тысяч рублей в месяц полностью стоят стресса и переработок. Для кого-то возможность спокойно жить, заниматься своими проектами, семьей или просто не выгорать ценнее любой прибавки к зарплате. Есть еще один интересный момент. Если человек годами работает в режиме «пару часов в день», он постепенно теряет понимание своей реальной рыночной стоимости. Внутри компании может казаться, что всё хорошо. Но настоящий уровень всегда показывает только рынок. Переходы позволяют проверить себя об этот рынок. И ты либо разъебёшься об камни реальности, либо выплывешь, всё будет зависеть от твоих скилов и компетенций. Поэтому иногда даже неудачный переход бывает полезнее десяти лет комфортного сидения на одном месте. Возможно, через три месяца ты поймешь, что ошибся. Возможно, через год будешь вспоминать прежнюю работу как слишком уютное болото. А может быть, окажется, что все эти разговоры про кризис в ИТ сильно преувеличены для тех, кто готов брать на себя ответственность и приносить бизнесу результат. Если это действительно x3, а не +20–30%, то я скорее понимаю такие решения. Зарплата в три раза выше способна за 1–2 года создать финансовую подушку, закрыть ипотеку, накопить капитал. Потерять комфорт неприятно, но комфорт — это тоже риск. Особенно в ИТ, где человек может годами находиться в тепличных условиях и не замечать, как рынок уходит вперед. Короче хуй знает. Пишите в комменты свои мысли. Ни к чему не призываю, так, трёп… А ты бы согласились поменять спокойную работу на зарплату в 3-4 раза выше, если бы знал, что работать придется действительно дохуя, да еще и проходить испытательный? Моя стратегия сюда уже не влезла, опубликовал её в блоге 👇 Читать продолжение: https://two.su/nrzhw 🛠 #workflow — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
В прошлом посте мы с тобой перелопалити приоритеты чтения sshd_config, сегодня добъем нюансы. Меня вчера опередили в комментариях с Match, но не страшно. Сюда по классике не влезло, много буков, поэтому всё в блоге. Читать продолжение: https://two.su/atcbh 🛠 #linux #devops — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
👆👆👆 Здрасти, я тут собрал вместе с командой Selectel небольшую шпаргалку для случаев, когда нужно быстро проверить пачку адресов, сравнить конфиги на серверах или понять, куда опять делось место. Короче команды на каждый день, как ты любишь. У ребят сейчас идет неделя сисадмина. Каждый день будут выходить полезные материалы, так что советую заглядывать и мотать на ус, глядишь сгодится в деле. А в пятницу вас ждет еще один небольшой и вкусный материал, так что следи за новостями.
без подписи
Когда говорят про рынок облаков, обычно обсуждают цены или новые сервисы. Но для тех, но требования заказчиков меняются вместе с рынком. В новом исследовании Apple Hills Digital «Рынок IaaS в России: прогноз до 2030 года, ожидания заказчиков и позиционирование лидеров» как раз собраны ответы на этот вопрос. Аналитики изучили рынок с нескольких сторон: опросили корпоративных клиентов, провели интервью с руководителями облачных провайдеров и сопоставили результаты с собственной оценкой. Картина получилась ожидаемой, но показательной. К 2030 году российский рынок публичного IaaS, по прогнозу, вырастет до 241 млрд рублей. При этом главным фактором выбора облака становится уже не стоимость. Для 72% компаний важнее надежность инфраструктуры, для 54% — безопасность и соответствие отраслевым требованиям. Отдельный раздел посвящен технологическим трендам: росту AI/ML-нагрузок, переходу к гибридной инфраструктуре, распространению cloud-native-подходов и инструментов FinOps. Все это напрямую влияет на требования к платформам и архитектуре. Если интересно посмотреть, как меняются ожидания рынка и какие технологии будут определять развитие IaaS в ближайшие годы, рекомендуем ознакомиться с исследованием.
Здрасти мои хорошие, заранее прошу прощение за рекламные интеграции, был в отпуске, сейчас дача началась, короче время хватает только на проверку домашек. Но вкусных тем я уже понабрал, черновиков накидал, так что потихоньку буду возвращаться в рабочий ритм и радовать тебя всякой полезной хуйнёй. ㅤ Ну так вот. В очередной раз решил я с винды на линукс пересесть, потыкать Niri, да и винде уже 5 лет. Знатно засрана дерьмом, срок её подошел к логическому концу. Ну и вопрос встал ребром. Все наработки и данные у меня в WSL на убунте. Логично что можно зайти в убунту и скопировать всё нужное в /mnt/c/backup, но это костыль, потому что будет потеря скорости, лишняя прокладка. Да, я честно пытался 40 гигов перетащить через copy и rsync, но прошло 2 часа и чет особо нихуя не продвинулось. Ну не может же такого быть, должно всё нативненько бекапиться. Так и оказалось. Заходим в powershell и выполняем: wsl -l -v Выведет список дистрибутивов, я работаю на Ubuntu 24.04, дальше делаю так: wsl --shutdown wsl --export "Ubuntu-24.04" D:\backup\wsl-ubuntu.tar Жду 10 минут и получаю полноценный tar с полной копией файловой системы. Ну великолепно же! Ну а дальше всё это я потом распакую и раскидаю уже по местам. Очередной пример того, что если не интересоваться новым и работать только с привычными инструментами, можно нехило деградировать, сидеть и ждать у моря погоды. Знаю, будешь пытать меня в комментах насчет — а какой линукс ты поставил? Скажу так — пидорский. Но я только посмотреть, один раз не пидарас ) 🛠 #linux #wsl #windows — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
без подписи
Тут ёбнутая тема пошла, чтобы вы могли ходить на нашу апиху, нужно установить сертификаты от Минцифры. ㅤ Я долго это игнорил, пока всё к херам не сломалось. Ошибка: cURL: SSL certificate problem: self-signed certificate in certificate chain Да, в голову сразу пришло решение — ёбнуть SSL Ignore. Но это костыль и безопасники в жопу выебут. Хули, пришлось разбираться. Как оказалось Angie и nginx трогать не надо и всё решается на уровне дистрибутива. У меня убунты старенькие торчат в продах, поэтому затачивал под них. Но смысл не меняется и можешь подкрутить под свои дистрибутивы. Чтобы 100500 команд не вводить, сделал всё одной командой, запускаешь из консольки и всё сразу работает, без костылей и нападок на твой задний проход со стороны ИБешкников. Даже в скрипт сохранять не нужно. Установка РФ-сертификатов: ( set -e cert_tmp="$(mktemp -d)" trap 'rm -rf "$cert_tmp"' EXIT curl -fsSL \ https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cer \ -o "$cert_tmp/root.crt" curl -fsSL \ https://gu-st.ru/content/Other/doc/russian_trusted_sub_ca.cer \ -o "$cert_tmp/sub.crt" openssl x509 -in "$cert_tmp/root.crt" -noout -subject | grep -Fq "Russian Trusted Root CA" openssl x509 -in "$cert_tmp/sub.crt" -noout -subject | grep -Fq "Russian Trusted Sub CA" root_fingerprint="$( openssl x509 -in "$cert_tmp/root.crt" -noout -fingerprint -sha1 | cut -d= -f2 | tr -d ':' )" test "$root_fingerprint" = "8FF915CCAB7BC16F8C5C8099D53E0E115B3AEC2F" openssl verify \ -CAfile "$cert_tmp/root.crt" \ "$cert_tmp/sub.crt" install -m 0644 "$cert_tmp/root.crt" \ /usr/local/share/ca-certificates/russian_trusted_root_ca.crt install -m 0644 "$cert_tmp/sub.crt" \ /usr/local/share/ca-certificates/russian_trusted_sub_ca.crt update-ca-certificates curl -fsSvo /dev/null https://business.t-bank-app.ru/ ) Ну и всё, если в куче мусора увидел — SSL certificate verify ok, значит всё прошло успешно. Перезапускаешь свои пыхи или чё там у тебя и можно дальше не париться. Такие дела. Изучай. 🛠 #devops #security #bash — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
без подписи
Сообщество инженеров сопровождения Сбера продолжает агентизировать города. 📆13 августа собираем OPS, DevOps и SRE-инженеров Самары в необычном формате и только офлайн. ⛴Курсируем по Волге на двух теплоходах, где в формате барных стендапов и дискуссий обсудим, что умеют агенты в OPS, а что пока нет, как мы строим надёжность, как реагируем на инциденты, куда ведёт агентизация и что с этим делать. 13 августа, 18:30 Самара, Теплоходы "Вояж" и "Спутник" 👉Регистрация тут Количество очных мест ограничено
без подписи
Всем привет. Сегодня хочу поговорить о культуре написания условий bash. Точнее, об использовании отрицаний (НЕ). 🔤🔤🔤🔤🔤🔤🔤 Поводом послужила конструкция, которую я нашел при изучении одного скрипта: if [[ ! -f "$file" || ! -r "$file" || ! -w "$file" ]];then echo "Ошибка: Файл отсутствует или нет прав на чтение/запись" # exit 1 fi ㅤ Расшифруем: ! -f "$file" - НЕ регулярный файл (возможно каталог, устройство, или вообще ничего). ! -r "$file" - у файла НЕт прав на чтение. ! -w "$file" - у файла НЕт прав на запись. Условия объединены по ИЛИ, значит если выполнится какое-либо - будет ошибка. С точки зрения логики - все правильно, но у меня лично в глазах рябит от количества палок. 👆На мой взгляд, отрицания сильно осложняют понимание. Вспоминаем, что: ! A || ! B эквивалентно ! [ A && B ] ! A && ! B эквивалентно ! [ A || B ] 👆И помним, что пробелы в условиях bash критически важны. Таким образом, конструкцию можно переписать, с сохранением функциональности: if ! [[ -f "$file" && -r "$file" && -w "$file" ]];then echo "Ошибка: Файл отсутствует или нет прав на чтение/запись" # exit 1 fi Расшифруем: НЕ (файл регулярный И есть права на чтение И есть на запись). В этой конструкции тоже есть отрицание, но оно уже одно! Конструкцию можно привести к еще более человеческому виду: if [[ -f "$file" && -r "$file" && -w "$file" ]];then : else echo "Ошибка: Файл отсутствует или нет прав на чтение/запись" # exit 1 fi Здесь отрицание заменено переносом тела if в тело оператора else. ":" необходимо, потому что между if и else должен быть хотя бы один оператор (в данном случае ":" эквивалент оператора true или nop. Можно записать и: if [[ -f "$file" && -r "$file" && -w "$file" ]];then : else echo "Ошибка: Файл отсутствует или нет прав на чтение/запись" # exit 1 fi 👆 Обратите внимание на ":" после then Но на мой взгляд, в данном случае, читаемость несколько ухудшится. Хотя первая конструкции и остальные конструкции эквивалентны, но отличие все же есть - скорость работы (Особенно, если в качестве операндов будут использованы функции) И зависит эта скорость будет от сценария работы. Если при объединении по ИЛИ первый операнд ИСТИНА, то остальные даже проверяться не будут. При объединении по И все наоборот: остальные проверяться не будут - если первый операнд ЛОЖЬ. Всем работы без багов. 🛠 #bash #linux — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Горячая вакуха от подписчика! Страховая компания ищет DevOps/SRE уровня от крепкого мидла до синьора. Сейчас инфраструктура работает в мануальном режиме, поэтому предстоит не перекладывать чужие ямлики, а построить всё с нуля: IaC, сиайсиди, dev и продакшен контуры, резервное копирование, Disaster Recovery, мониторинг, логи и алерты. Инфраструктура мультиоблачная, Селектел и таймвеб. В стеке терра, ансибл, докер, k8s/k3s, хельм, ваульт, MinIO, гатхаб экшенс, гитлаб сиайсиди, графана, виктория, локи, nginx, посгря и редиска. Короче, редкая возможность сначала построить легаси самостоятельно, а уже потом героически с ним бороться. Условия • Полная удалёнка • Фултайм • ГПХ с самозанятым или ИП • Старт от 200 000 ₽ • Опыт в финтехе или иншуртехе будет плюсом Писать сюда: @dtvbihezfohcvbzy 🛠 #вакансия — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog