Админим с Буквой
5.52K subscribers
303 photos
8 videos
59 files
1.16K links
Канал о системном администрировании, DevOps и немного Инфобеза.

По всем вопросам обращаться к @bykva. Рекламу не размещаю.
Download Telegram
Forwarded from Цинично
Гитлаб переименовал основную ветку гита из мастера в мейтейнер. Из-за "инклюзивной культуры". В общем, очередная победа леволиберализма над здравым смыслом.
Forwarded from Peter Destructive
Всем доброго времени суток!

Организую стажировку у нас в red team (пентест/анализ защищённости/анализ кода).

Требования:
- возьмём максимум 3 человека;
- базовые знания IT Sec (умения различать недостаток/уязвимость/атаку);
- участие в CTF приветствуется;
- отдельным плюсом для 2-ух из 3-ёх кандидатов будет знание Java и JavaScript.

Условия:
- обучение;
- участие в реальных проектах.

Сроки:
С июля по сентябрь.

Местоположение: Москва, Дубовая Роща 25к2.

В понедельник проводим собеседование.
Желающие могут писать мне в ЛС.

Заранее благодарен!
пятничные вбросы=)
git undoing operations

Хорошая статья, которая показывает как правильно и красиво поступить в ситуации, когда нужно что-то откатить\удалить в ветке коммитов.

https://sethrobertson.github.io/GitFixUm/fixup.html

#git #troubleshooting
Duckduckgo features

Использовать несколько поисковых движков для наилучшего достижения - это нормально. Также, как нормально для любого системного администратора использовать для своей задачи свой инструмент. Лично я, когда пользуюсь на регулярной основе двумя поисковиками - для русских запросов (история, наука, медицина, покупки) - только яндекс. В том числе карты, метро и такси. Если же запрос хоть сколько-то касается IT тематики или это технический запрос - то это только гугл и строго на английском. В таком ритме я живу уже около 4 лет. Поначалу, конечно, было непросто. Нужно сформулировать запрос на "чужом" языке. А это иногда не так то просто, бывают случаи когда ты вообще не понимаешь как спросить то что ты на русском-то не можешь сформулировать. Следующей проблемой становится быстро понять по-диагонали о чем идет речь в статье. Если у вас с языком хорошо - все просто, иначе процесс затягивается. Последние 4 года я везде ставлю по-умолчанию английский - язык системы ноутбука, телефона итд итп. И только по прошествии пары лет у вас начинает что-то неплохо получаться - вы бегло читаете сайты на английском и без проблем можете пролистать ветку обсуждения bug\issue на гитхабе чтобы понять как решить проблему. Последние пол-года у меня даже реклама в ютубе на аглийском, что вполне устраивает - дает лишнюю минуту поупражняться в языке. Конечно ничто не заменит нормального изучения языка, кто-то скажет "пффф - ему потребовалось 2 года". Согласен, но данный вариант изучения - пассивный, не напряжный и по-своему приносит плоды. И лучше уж так, чем обещать себе что "вот-вот я открою учебник и как начну учить язык хотя бы по 4 часа в неделю".

Вообще изначально пост я писал не об этом и что-то понесло не в ту сторону. А рассказать я хотел о фиче !bang поисковика duckduckgo - это возможность через микро-плагинчик находить сразу нужную информацию на нужном сайте:

!dpkg htop -> сразу отправит вас на сайт пакетов debian, выберет пакет htop
!http 451 - информация о том, что скывается за кодом ответа 451
!yt котики - сразу найдет вам на youtube котиков


и таких !bang уже более 10к. Быть может и вам что-то приглянется?

https://duckduckgo.com/bang

#duckduckgo
Именование VM в облаках это важно

Очень глупая история произошла со мной на днях. Есть система автоматизации выкатки новых образов(images) в облака, в частности это azure. Для того чтобы задачи сборки не конфликтовали друг с другом, если запущены они в одно время, я добавил в имя виртуальной машины build_id, т.е. номер сборки. Через точку. Azure из имени VM составляет hostname. As is. В итоге получилось имя вида test-instance.123 - что в свою очередь очень напоминает нам домен второго уровня (company.com). Как оказалось на такое имя не весь софт реагирует адекватно и по понятным причинам такое имя не резолвится. В частности это не перенес collectd, что привело к невозможности его запуска. Замена точки на дефис решила эту глупую и простую проблему.

#troubleshooting
Что это за странные буквы sda\hda и что они значат

Каждому линуксойду, который знаком с системой больше пары недель знакомо что такое sda - это первый диск, sdb - второй итд. Обычно мало кому есть дело, почему он так называется. ну sda, ну hda. Оказывается, название предельно логично и строго зависит от оборудования которое вы используете.

Так например sda:
S - SCSI driver, modern PATA/SATA driver, USB
SD - mass-storage driver
SDA - first registered device
SDA1 - first partition


Подробнее: https://en.wikipedia.org/wiki/Device_file#Naming_conventions

#junior
Или лыжи не едут, или я ебанутый

Последний месяц я мало что писал интренесного, потому что практически все время занимался автоматизацией выкатки софта на azure. Это адище адовое если честно. Одна из самых дурных поделок микрософта. Кроме кучи мелких абсолютно непонятных и недокументированных вещей до которых додумываться надо, я выделю две, которые меня особенно потрясли:

- у меня есть 2 аккаунта: name_surname@company.com и name_surname@company.com. Не пытайтесь найти разницу - они абсолютно одинаковые. Только один из них получился личный, а второй - корпоративный. Идентификаторы у них разные, а то что логины совпадают, ну, кому какое дело. Из-за этого так получилось, что на portal у меня права на корпоративном аккаунте, а на cloudpartner - на личном. Т.е. представьте себе ситуацию, да, когда владелец корпоративного аккаунта говорит что дал тебе права, а ты заходишь туда и видишь что прав то и нет. Знаете как переключиться между личным и корпоративным? Разлогиниться, да. Но, это еще не все. Услуждивый микрософт предложит вам список учетных записей, под которыми вы заходили. там будет и name_surname@company.com. пробуем-вводим пароль - попадаем в учетку. прав нет. Что-то сделали не так. Знаете как надо? Надо разлогиниться, сказать other(типа я введу новый аккаунт), ввести name_surname@company.com и только тогда он предложит выбрать, личная это или, мать ее, корпоративная учетная запись!

- вы создаете из приватного образа виртуальную машину. вас при этом спросят логин и пароль\публичный ключ. Зачем? ну логично же - под этими учетными данными мы зайдем на вновь созданную виртуальную машину. Правильно? Нихрена. Эти учетные данные пропишутся ровным счетом никуда. не будет никуда положен ключ, не будет такого пользователя в /etc/passwd

#гори_в_аду_микрософт
Bash shortcuts

Написал микро лабораторную работу для обучения хоткеям в bash. Все это доступно благодняря библиотеке readline. Все описанное ниже и более того - man readline

https://medium.com/@bykvaadm/bash-shortcuts-d6f275a6ce9d

#bash_tips_and_tricks #junior
Jenkins kill zombie job

Если ни тыкание на крестик, ни перезагрузка сервера не помогают дропнуть зависшую день-два-месяц назад задачу, то можно дропнуть ее через консоль (Manage Jenkins -> Script Console). И вам надо заполнить 2 переменные - имя задачи и ее номер.

Jenkins.instance.getItemByFullName("JOB_NAME")
.getBuildByNumber(JOB_ID)
.finish(
hudson.model.Result.ABORTED,
new java.io.IOException("Aborting build")
);

#jenkins #troubleshooting
Убитый контейнер докера не запускается

Ошибка:
endpoint with name XXXX already exists in network bridge.
Решение:
docker network disconnect --force bridge <Container ID or Endpoint ID or Container NAME>

Это не для тех, кто не умеет гуглить, а для того чтобы наоборот каждый раз не гуглить когда такое возникает=)

#docker #troubleshooting #networking
Запускаем задачу в background в докер контейнере через ansible

Особо ничего сложного, nohup да &, однако процесс все равно не отпускает консоль, посему ansible зависает. Чтобы этого не происходило, можно применить такую конструкцию:

- name: run bg job
shell: docker exec -i <container> sh -c 'nohup CMD &'
async: 45
poll: 0

#docker #ansible
ну да, я занимаюсь правками текста прямо в канале ¯\_(ツ)_/¯
RBAC on docker registry

Поигрался тут на днях с одним сервисом который позволяет использвать token-based аутентификацию пользователя с docker registry. Стандартный вариант логин-пароль уже не удовлетворяет потребностям и пришлось искать что-то другое. В итоге набрел на готовое решение от cesanta/docker_auth. Написано на go, легковестный token-сервис с поддержкой различных способов аутентификации пользователей и также, что самое главное - это ACL. С помощью acl можно задавать кто, и какие репозитории может пушить и пуллить, с точностью до регулярного выражения. В качестве базы хранения пользователей-acl можно выбрать статический файл, mongodb, ldap и некоторые другие. В том числе можно использовать и сторонний софт, хоть самопис. токен будет выдаваться в зависимости от кода ответа этого софта. И тут уже можно сделать все что угодно - хоть выдавать токены в зависимости от времени суток. Поковырявшись в этом собрал готовое решение, запускаемое через docker-compose. Оно содержит набор из 3 контейнеров: docker_auth, docker registry и mongo. После старта docker-compose все что нужно сделать - загрузить список правил и пользователей в mongo через простейший shell-скрипт.

https://github.com/bykvaadm/docker_auth

#docker #auth
progit_v2.1.3.epub
5.7 MB
Книга про гит на русском. Это для тех людей, кто вдруг ее еще не видел. Или вдруг еще даже не пользовался никогда гитом. Самое время начать!

#git
Выпуск Debian 9.5

Доступно пятое корректирующее обновление дистрибутива Debian 9, в которое включены накопившиеся обновления пакетов и устранены недоработки в инсталляторе. Выпуск включает 91 обновление с устранением проблем со стабильностью и 100 обновлений с устранением уязвимостей.