?

Log in

No account? Create an account
Cat-light

klink0v


Блохи в свитере деда Сергеича


Entries by category: it

[sticky post]О блоге (самый верхний псто)
Cat-light
klink0v

Hello, alone wonderer!


sysctl в LXC-контейнере (и чуток про GitLab)
Cat-light
klink0v

... Дали мне тут задание развернуть GitLab в LXC-контейнере. Не спрашивайте зачем. Начальник сказал — Стас сделал.

Засада заключается в том, что оный супостат конфигурируется через Chef, а в его playbook-ах есть инструкции немного покрутить sysctl на предмет всяких там kernel.shmmax и иже с ними. Только вот в LXC файловая система "/sys" как бе является read-only, и от sysctl-а закономерно приходит отлуп. Из-за чего, в частности, GitLab не хочет туда вставать.

Соответственно, есть три варианта.


  1. Расковырять playbook и убрать оттуда все эти вызовы sysctl.

  2. Посмотреть какие значения каких системных параметров он хочет подкрутить, и сделать такие же на хост-машине. Тогда конфигуратор проверит, что они соответствуют желаемым и успокоится.

  3. Самый классный. Пропатчить бинарник sysctl чтобы он не возвращал ошибок. Этим путём вовсю идут, в частности, убунтостроители. Но патчи есть и для Debian-а.

Если пользоваться способом номер один, то смотри в файлик "/opt/gitlab/embedded/cookbooks/package/resources/gitlab_sysctl.rb", последний абзац. Я думаю, кому надо, догадается или нагуглит.

Почему я решил написать этот псто? Больно уж мне понравился способ №3. Нам нужно больше костылей!!!11


Запуск графического приложения в XWayLand из-под суперпользователя
Cat-light
klink0v

До сих пор встречаются такие кривые графические приложения, которым требуются права суперпользователя, но при этом они не умеют запрашивать повышение привилегий самостоятельно. Примеры: Xeoma, UNetbootin. Если в XOrg-е при помощи кувалды и какой-то там матери можно было запускать их из командной строки через sudo или su, то вот в XWayLand такую возможность уже отрезали из соображений типа безопасности. При попытке сделать, скажем, "su -c ./somebinary" он выругается словами "cannot connect to X server :0".

Решение.

До запуска интересующего нас приложения выполнить от имени текущего непривилегированного пользователя команду "xhost si:localuser:root", которая позволит root-у "прицепиться" к вашей X-сессии. Потом открыть приложение через sudo или su. По окончании работы рекомендуется вернуть взад всё как было командой "xhost -si:localuser:root" (знак минуса перед именем пользователя отбирает у него права).


В Москве дают хорошего программера
Cat-light
klink0v

Нет, не меня. :)

Зовут Игорем. Хорошо умеет в Perl, PHP, Lua, Golang и совсем-совсем чуть-чуть в Python. Основная специализация — веб-разработка, бэкенд. Но вообще, как и я, весьма универсален. Практикует с 2003-го года. Опыт серьёзный, в том числе работал у известных хостеров.

Неспешно ищет работу, потому что контора, на которую он вjobывает прямо сейчас, медленно, но уверенно разваливается.

Надо кому? Если надо, пишите, отправлю контакты. Можете репостнуть при желании и наличии доброй на то воли.

Tags:

Про BitWarden, или копрономика в IT #2
Cat-light
klink0v

В качестве лабораторной работы по освоению Docker-а поднял у себя на своей личной виртуалке серверную часть BitWarden-а. Что я могу сказать-с по итогам...


  1. Без Docker-а всю эту мандулу, использующую "решето" (C#), TypeScript и MS SQL Server Express for Linux в одном флаконе, просто не развернуть. И в таком-то виде сказочно задолбаешься, а если каждый компонент по отдельности настраивать, так и вовсе помрешь.

  2. После установки запускается 10 (десять!) контейнеров. Соответственно, к ним столько же Overlay-ев. Которые прикольно замусоривают вывод "df -h".

  3. Добрый MS SQL сходу отожрал 770 мегабайт оперативной памяти (а-а-а-а-а, что ты делаешь, остановись!).

  4. Остальные контейнеры, так, по мелочи, по 10...70 мегабайт каждый. В сумме еще мегабайт на 300 где-то.

  5. Одна только пустая база с паролями заняла на диске 133 МБ. Это без учётов образов (image) Docker-а.

  6. А образы откушали ещё 6 (шесть!) гигабайт места на файловой системе.

Вы только вдумайтесь. Сраная сетевая паролехранилка. Гигабайт оперативки и шесть гигов дискового пространства в пустой, чистой инсталляции. А потом, конечно, им начинает не хватать вычислительных мощностей. Давайте ж значит теперь строить кластеры, организовывать распределение нагрузки, придумывать контейнеризаторы, системы развёртывания софта, вкорячивать мониторинг и нанимать DevOps-ов, чтобы всё это держали.

[Дальше идёт длинный кусок текста, вырезанный цензурой.]

Извините, я чего-то совсем уже перестал ориентироваться в этом вашем современном мире. Может, со временем, конечно, и привыкну...

Ах, да. Сам BitWarden живёт вот здесь. Кому хочется поковыряться, можете регистрироваться и пользоваться. Виртуалка в Польше, админю её я. Если сервис кому-то пригодится, могу его оставить там жить. Если кто-нибудь знает более легковесный аналог с клиентами под iOS, Android и FireFox, ткните меня носом пожалуйста. ИМХО, вот это вот — уже всё-таки перебор.


Дурацкий вопрос
Cat-light
klink0v

А вот дурацкий вопрос к читающим меня.

Не желает ли кто-нибудь случаем заполучить на несколько месяцев в качестве стажера-подавана в HighLoad самого деда Сергеича™? Пофигу куда и на какие задачи, главное чтобы они были реальными, а не синтетическими. Лучше, если они будут связаны с DevOps-ячеством. В идеале — всякие питоны, ансиблы, ELK-стеки и прочая хайповая нонче муть. Можно ничего не платить. Можно давать что-нибудь чисто символически для поддержания штанов.

Он уже не маленький, чтобы по неосторожности чего-то сломать. Ручки не шаловливые. С документацией работать умеет. Просто ему надо перешагнуть этот долбанный порог вхождения в HighLoad, а дальше видно будет. По пути может наносить добро почти в неограниченных количествах. Мммм?

Tags:

Копрономика в IT
Leopard
klink0v

Как подметил тов. sevasat, у меня в блоге либо про Linux, либо нытьё. Про Linux уже было, теперь очередь нытья. :-D

Походил маленько по собеседованиям. Все работодатели, которые до сих пор интересовались моей скромной персоной, оказались какими-то странноватыми. Одна девочка-рекрутерша после телефонной беседы пообещала организовать интервью с технарями и растворилась в тумане. Второй долго пытал меня что означает и как рассчитывается системная метрика "Load Average". Блин, как будто я на неё каждый день дрочу смотрю. Третий якобы для заказа пропуска попросил прислать все паспортные данные, включая когда/кем выдан и код подразделения. Был послан сразу по известному адресу. Четвертый непосредственно на интервью заявил, что я им не подхожу, потому что [пока] не умею в Ansible. Блин, ребята, а вы что, моё резюме вообще не потрудились сперва прочитать что ли? Я как бе абсолютно честно там написал про то, что знаю и так же честно не писал про то, чего не знаю. И хрен бы со мной, но неужели вам своего собственного времени не жалко?

Но огорчает даже не это. По итогам ковыряния в вакансиях HH.ru и всех этих покатушек у меня сложилась более-менее ясная картина, куда вообще катится этот мир IT. Туда же, куда и вся прочая копрономика. А именно, когда самым главным критерием является отнюдь не качество выпускаемого продукта, а скорость его разработки и внедрения.

Отсюда тонны Javaписьного говнокода. Отсюда зверские требования к вычислительным ресурсам. Отсюда необходимость построения мега-кластеров на сотни серверов. Отсюда все эти модные buzzword-ы на тему Agile, Scrum, CI/CD и прочие. Отсюда постоянные доработки, обновления, патчи на обновления, патчи на патчи на обновления. Отсюда армии программистов, которые не способны собрать и оттестировать свой собственный проект самостоятельно. Которым нужна постоянная нянька-сиделка в виде DevOps-а, которая будет за них собирать, разливать, тестировать, выкатывать в production. И получать по шапке, если что-то пошло не так.

Это я, конечно, сильно утрированно написал. Но суть примерно такова.

Соответственно, на рынке нонче очень сильно не хватает специалистов, которые умеют:


  1. рулить пачками серверов от нескольких десятков до нескольких тысяч;

  2. автоматизировать процесс сборки говнокода, его тестирования и распространения на вышеупомянутые пачки серверов.

А почему их не хватает? Да потому что им тупо неоткуда взяться. Те немногие "счастливчики", которые есть здесь и сейчас, когда-то давно пришли работать в успешный стартап и "выросли" вместе с ним. Как правило, они сидят на попе ровно и никуда не дёргаются, потому что их текущий работодатель прекрасно понимает чем чревата потеря таких кадров. "Текучки" среди них, как правило, нет. К тому же, во всех компаниях конкретная специфика и стек разработки немного разные. И не факт, что тебе удастся быстро и безболезненно перестроиться с одной на другую.

Таким образом, количество DevOps-ов "с опытом" примерно равно количеству успешных стартапов, которым повезло вырасти до определённых масштабов. Много их? То-то и оно. Теоретически, конечно, можно читать книги. Можно проходить онлайн и оффлайн курсы, как это сделал тот же techquisitor. Можно ковыряться у себя дома на тестовых компах. Но теория — это теория, а практика — это практика. Реальный бизнес же всегда хочет кого-то "готового" и с многолетним опытом работы. Поэтому и такие лютые количества незакрытых вакансий по данному направлению.

Вот я всерьёз задумался. "Обычные" системные администраторы сейчас уже никому не нужны: все ушли во всякие "SaaS", "IaaS" и в прочие облака. Так что текущая ценность моих знаний и навыков прямо сейчас равна нулю. Хуже того, я на рынке труда сливаю даже студентам и выпускникам, потому что их охотно берут в качестве стажёров, а меня — нет. С другой стороны, я уже и сам не знаю, а хочу ли участвовать во всей этой вакханалии. Не уверен на 100%, что готов посвятить этому остаток жизни. К тому же, нет никакой гарантии, что через пару-тройку лет всё не развернётся в каком-нибудь очередном новом модном направлении. С третьей стороны, не часто и не много, но деньги мне всё-таки нужны. Да и из страны свалить мучительно хочется. Прям не знаю что и делать. Хоть бери и на какого-нибудь сварщика или электрика переквалифицируйся.

А вы что думаете по этому поводу? И часто ли смотрите на Load Average?


Кажется, я нашёл замену скайпу
Cat-light
klink0v

Вот эту: https://jitsi.org/

Типа система для видеоконференций и чатов на базе WebRTC. Внутри используется NodeJS / Java. Для авторизации / интерконнекта пользователей применяется XMPP-сервер. "Из коробки" они предлагают Prosody, но вообще технически подойдёт любой, поддерживающий BOSH.

Важной чертой является то, что когда в конференции участвуют ровно два собеседника, то RTP-трафик гоняется между ними напрямую, минуя сервер. Даже если они оба находятся за NATом. Исходный код открыт, можно хостить у себя, можно допиливать по своему вкусу.

Я ради академического интереса поднял эту штуку на своей вируталке. Потестировал. Впечатления остались весьма приятные. В принципе, есть всё что надо и нет ничего лишнего. Можно даже расшаривать свой рабочий стол или отдельное окно на нём. Единственная ложка дёгтя: в peer-to-peer режиме оно не даёт настраивать качество / разрешение видео. Либо "максимум", либо "только звук". Теоретически, это можно установить в настройках самой веб-камеры, что есьм некоторый геморрой. Подозреваю, что такое ограничение вызвано отсутствием возможности транскодирования видеопотока средствами браузера.

Ещё небольшой подставой является то, что "из коробки" оно заводится в режиме "заходи кто хочешь, делай что хочешь". Как бе есть возможность аутентификации пользователей в том числе и по JWT-токенам, но это всё надо доделывать / донастраивать. Если у тебя есть опыт программирования на NodeJS, ты это сделаешь быстро и безболезненно. А вот если нет...

Но вообще продукт крайне интересный. Стоит отметить, что его разработку спонсирует не абы кто, а сам Atlassian. Так что стоит присмотреться.

Мне было бы очень интересно допилить его до состояния "одна приватная комната, один админ/модератор, вход гостя по ссылке-приглашению". Собственно, там затык только в том, чтобы налабать работающий интерфейс генерации пресловутого токена и отправки его гостю. Ну и глагне слегка подрихтовать под это дело. Но не знаю хватит ли у меня духа / сил / времени на подобное.


4-пиновый разъем и ALC255 в Linux
Cat-light
klink0v

Внутри моего домашнего компа Gigabyte BRIX GB-BKi5HA-7200 помимо прочего установлен аудиокодек Realtek ALC255. От него наружу выведен 3.5-миллиметровый 4-контактный разъем на наушники / гарнитуру.

Прижало вот меня чего-то сегодня потрындеть по скайпу. А микрофон-то в гарнитуре и не работает. Точнее, работает, но не видится операционной системой. Windows 10 на том же компе удалось уговорить, подсунув ей "православные" Realtek-овские драйвера вместа "родных" Microsoft-овских. А вот Linux никак не хотел опознавать устройство ввода звука, несмотря на все мои шаманства с hdajackretask. При том, что воспроизведение всегда работало и работает без проблем.

После долгих поисков выяснилось, что.


  1. Ядро должно быть версии не ниже чем 4.19.

  2. Ему надо скормить параметр "snd_hda_intel.model=lifebook-extmic".

После этого запись звука взлетела сама по себе, без каких-либо дополнительных манипуляций.

М-дя. Что с USB3, что со звуком в Linux-е творится какая-то вечная непрекращающаяся беда. Можете взять себе на заметку, если вдруг у вас такой же аудиокодек (ALC255).

Попутно изучал матчасть и выяснил, что в мобильниках Nokia, Samsung и Sony-Ericsson в четырехпиновом разъеме контакты микрофона и земли поменяны местами друг с другом. Поэтому для них нужны "свои собственные" наушники либо специальный переходник, иначе микрофон работать не будет. Благо, Xiaomi такой ерундой не страдает (фуф). Ещё один довод, кстати, не брать Nokia и Samsung-и (по крайней мере, чисто для меня).


Разведка рынка труда
Lynx
klink0v

Чё-то я решил посмотреть какие в принципе есть сейчас вакансии на рынке труда в IT. Залез на HH, да чё-то и залип там неожиданно часа на три. С большой грустью для себя обнаружил, что безнадёжно отстал от прогресса. Сейчас все повально требуют опыт работы с Docker / Kubernetes / Ansible / Ceph, в довесок ElasticSearch, Apache Tomcat и PostgreSQL. Я же с этим не сталкивался, ибо десять лет назад этого всего просто не существовало (за исключением Tomcat и Postgres разве что), а в моей мелкой конторке в подобных инструментах не было ну никакой необходимости. Дальше на сцену выходит стандартная проблема всех сисадминов: "Научитесь плавать — нальём воду". Чтобы разобраться с модными технологиями, нужны реальные задачи. Чтобы были реальные задачи, нужно куда-то трудоустроиться. Чтобы трудоустроиться, нужен опыт работы с модными технологиями. Упс!

Зато по ходу пьесы отметил для себя энное количество перлов и жира, которыми хочу поделиться. Не факт, что все эти ссылки будут работать на момент прочтения вами этого поста. Тут уж не обессудьте. Сперва ссылка на вакансию, после неё мой комментарий.  Поехали.

Смотреть / читатьCollapse )