Size: a a a

Админим с Буквой

2018 September 17
Админим с Буквой
Удаляем объекты azure через az cli

Есть в этом хостинге что-то свое, привлекательное. Например невозможность выделить и удалить через интерфейс несколько объектов типа security group, public ip, nic... Может для кого-то это влажные мечты - сидеть и удалять тонну объектов заходя в каждый и удаляя его, но хочется как-то побыстрее. В данном примере не разобрана фильтрация, это дело остается индивидуально. Таким же образом подставить нужный тип вместо public-ip.

for i in $(az network public-ip list --resource-group RG_NAME | ruby -ryaml -e 'YAML.load($<).each{ |nic| print nic["name"]+" " }'); do az network public-ip delete --resource-group RG_NAME --name $i; done


#azure #azcli #гори_в_аду_микрософт
источник
2018 September 18
Админим с Буквой
источник
Админим с Буквой
Hetzner vswitch

Если кто не знал, то в hetzner появилася фича виртуального свича. Теперь между физиками можно строить приватные сети без тунелей. (если эта фича уже давным-давно, сорян я слоупок)

https://wiki.hetzner.de/index.php/Vswitch/en

#hetzner
источник
2018 September 20
Админим с Буквой
Уязвимость в ядре Linux, потенциально позволяющая поднять привилегии

В подсистеме vmacache ядра Linux обнаружена уязвимость (CVE-2018-17182), которая потенциально может быть использована для создания эксплоита для повышения привилегий локального пользователя в системе. Уязвимость вызвана отсутствием проверки переполнения 32-разрядного номера последовательности, что можно использовать для обращения к уже освобождённому блоку памяти (use-after-free). Проблема присуствует в ядрах с 3.16 по 4.18.8. Исправление пока доступно в виде патча. Обновления пакетов для дистрибутивов ещё не сформированы (Debian, Ubuntu, RHEL, SUSE, Fedora).

[ИСТОЧНИК](https://www.opennet.ru/opennews/art.shtml?num=49305)
источник
2018 September 24
Админим с Буквой
заставляем git использовать указанный ssh ключ при деплое чужого контейнера в k8s

Решал задачу по внедрению поисковика по коду: https://github.com/etsy/hound.

Hound is an extremely fast source code search engine. The core is based on this article (and code) from Russ Cox: Regular Expression Matching with a Trigram Index. 


В рамках этой задачи было принято решение написать helm пакет для уже готового docker на docker hub. Сам helm можно потыкать здесь: https://github.com/bykvaadm/hound-helm-chart

Отдельно в этой заметке хотел бы отметить небольшую проблему, решаемую в рамках задачи: научить hound ходить в приватные репозитории по указанному приватному ключу. При этом не хотелось ни модифицировать контейнер автора, ни делать persistent volume, ни какой либо init-контейнер.

Способов заставить git ходить с указанным ключом довольно много, но большинство из них подразумевает что вы правите какой-то конфиг или модифицируете строку запуска git. Ни того ни другого делать в чужом контенере не хотелось. В итоге как один из наиболее простых способов был взят вариант с использованием wrapper. wrapper - это скрипт, который будет вызван git'ом при запуске ssh, вместо запуска ssh. Таким образом внутри wrapper можно писать любую логику, подставляя в зависимости от ситуации нужные параметры. на выходо wrapper должен заменять собой вызов ssh с какими-то параметрами. В моем случае так сложно делать не надо и wrapper скрипт получился такой:

#!/bin/sh
ssh -o StrictHostKeyChecking=no -i /etc/ssh-key/id_rsa $@


Здесь я указываю чтобы не чекался fingerprint и путь к конкретному ключу. В итоге для helm пишется configmap и secret. один кладет wrapper, а другой - приватный ключ.

Теперь все что остается - задать в deployment переменную окружения GIT_SSH, в которой указать путь к wrapper.

#git #helm #kubernetes
источник
Админим с Буквой
Вот я тут такой пишу-пишу постоянно про kubernetes, интересно знать, много ли его вообще людей используют? вдруг это никому не интересно
anonymous poll

Планирую изучить – 129
👍👍👍👍👍👍👍 43%

На пол не упал этот ваш кубернетес – 115
👍👍👍👍👍👍 38%

Только начал изучать – 24
👍 8%

Использую, постоянно, пишу сам helm'ы – 11
👍 4%

Использую время от времени, пишу yaml-ы сам – 7
▫️ 2%

Использую постоянно, helm'ом не пользуюсь – 6
▫️ 2%

Использую время от времени, пользуюсь только чужими наработками – 4
▫️ 1%

Использую постоянно, использую отличный от helm шаблонизатор – 3
▫️ 1%

Использую постоянно, сам ничего не пишу, только чужие наработки. – 1
▫️ 0%

👥 300 people voted so far.
источник
2018 September 25
Админим с Буквой
Сети для самых маленьких

Когда-то я начинал свой канал именно с лабораторных работ по сетям, но почему-то нигде не упоминал один очень цикл статей для их изучения. А даже если и упоминал, не страшно и повториться. И если вы по каким-то причинам до сих пор про них не знаете - крайне рекомендую. Здесь выложу ссылку на первую часть, хотя их там более 10, от разбора модели OSI до BGP, QOS и дальше в дебри.

https://habr.com/post/136056/

#network #junior
источник
2018 September 26
Админим с Буквой
🎦 В 22:15 (почти прямо сейчас) Егор и Саша расскажут на стриме про некоторые дырки сервисов с первой тренировки

Смотрите стрим сейчас, или запись потом: youtu.be/15g3EOm8mzo
источник
2018 September 27
Админим с Буквой
Мигрируем виртуальные машины с ESXI на KVM с LVM

Если вы еще не пробовали создавать диски как LVM тома для использования в виртуальных машинах KVM, обязательно попробуйте. Вы получаете все плюшки менеджмента дисков с использованием LVM. Причем на каждую точку монтирования создается отдельный логический том, таким образом мы имеем возможность управлять размером и местоположением любого раздела виртуальной машины.

1. Выбираем какой-либо способ переноса диска виртуальной машины с ESXI на хост с KVM, например:

root@kvm:~# sshfs user@esxi.host:/path/to/datastore /mnt/sshfs
root@kvm:~# rsync /mnt/sshfs/vm_name/vm_disk-flat.vmdk /opt/ESXI/vm_name/

Необходимо остановить VM на ESXI и скопировать себе диск со словом flat в названии. При копировании не рекомендую использовать scp, не особо вникал почему, но он капец как медленно работает с esxi. Быть может это только мой частный опыт...

2. Создаем LVM том под новый диск

# смотрим размер старого диска
root@kvm:~# qemu-img info /opt/ESXI/vm_name/vm_disk-flat.vmdk
# создаем новый с точно таким же размером
root@kvm:~# lvcreate -L 250G -n NEW_VOLUME_NAME EXISTING_VOLUME_GROUP
# конвертируем esxi-диск в raw-формат и располагаем сразу в LVM том
root@kvm:~# qemu-img convert /opt/ESXI/vm_name/vm_disk-flat.vmdk -O raw /dev/EXISTING_VOLUME_GROUP/NEW_VOLUME_NAME

3. Повторяем п.2 для каждого диска, если их больше одного

4. Создаем виртуальную машину через xml\cli\virt-manager, указывая пути к lvm-томам в качестве дисков.

5. Profit!

#kvm #esxi
источник
Админим с Буквой
Вакансии для правильных пацанов

Команда Wallarm ищет себе в команду экстраординарных, уникальных людей, которых заряжает идея создавать лучшее решение для обеспечения безопасности веб-приложений. Мы активно развиваемся и чтобы поддержать текущий темп разработки нам очень нужны люди в команду. В ходе работы предстоит часто сталкиваться с новыми и нестандартными задачами, так что скучно точно не будет.

А вот список вакантных мест:
- Project manager
- QA Engineer
- Бизнес-аналитик
- Дежурный инженер службы поддержки
- Дизайнер UX/UI
- Разработчик Ruby
- Технический писатель

Подробнее смотри тут

#вакансии
источник
Админим с Буквой
Ищем DevOpsа в "молодую динамично развивающуюся компанию" (с).

Спектр задач:
- Настройка GitLab CI/CD под Python, Node.js, GoLang проекты - автосборка, тесты, деплой в приватный Registry/Dockerhub в зависимости от проекта, деплой контейнеров на сервера testing/prod.
- Интеграция GitLab, Trello, Gitter, Sentry между собой, оперативное добавление новых заказчиков/сервисов/проектов с учетом прав доступа.
- Поддержание Linux серверов - настройка мониторинга, бекапирования, iptables, systemd сервисов.
- Деплой новых серверов: работа с консольными тулзами DigitalOcean и Scaleway будет плюсом.

Сейчас нет, но потенциально крайне вероятно:
- деплой и администрирование селф-хостед Project Management решений (вероятно, Jira), приватного GitLab, ..

Парт-тайм удалёнка, время оговаривается в неделю, ценик 50-90к из расчета на 40 часов, но фултайм работа пока явно не требуется. Если мы будем довольны - готов поспособствовать с релокацией в Москву по мере роста нашего зоопарка серверов и появлении необходимости в фул-тайм сотруднике при желании.

Хостимся у DO, ScaleWay и Vultr.

Обращаться к @dmantis

#вакансии
источник
2018 September 28
Админим с Буквой
Доброе утро всем!

За всё это время я почему-то не подумал сообщить, что вакансии публикую бесплатно. Пишите в личку если вам интересно что-то разместить. Единственная просьба - оформлять сразу в нормальном виде, не забывая указывать в кратком описании город, зарплатную вилку и стек технологий. Огромным плюсом будет ссылка на более подробную информацию.
источник
Админим с Буквой
Переслано от Nastya Mansurova
#Москва #Технологии #Стажировка #Яндекс

Яндекс уделяет особое внимание информационной безопасности. За это в компании отвечает целая команда, и мы ищем специалиста, который усилит ее!

В нашу команду мы ищем стажера - аналитика по информационной безопасности! Стажировка предполагает занятость порядка 20ти часов в неделю на протяжении 6 месяцев, с возможностью дальнейшего сотрудничества.


Вы будете заниматься:

- проектами по приведению сервисов Яндекса в соответствие международным стандартам в области информационной безопасности (ISO27001, PCIDSSи т. д.);

- сопровождением, доработкой и аналитикой результатов обучения сотрудников в области информационного обучения.

Мы ждем Вас, еслии Вы:
- хотите развиваться в области информационной безопасности и управлении проектами;

- имеете знания о международных стандартах информационной безопасности (ISO27001, PCIDSS);

- умеете работать с  документацией;

- хорошо знаете Excel;

- любите общаться с людьми;

- готовы искать нестандартные решения для стандартных задач.

По всем вопросам @amansurova
источник
2018 September 29
Админим с Буквой
Переключаем tty в virtualbox

У меня стоит linux, а на нем linux в virtualbox. Ожидаемо оказалось, что стандартный способ переключения, например, ctrl+alt+F1 не работает. В Vbox можно менять tty через HostKey+Fx, т.е. по-умолчанию это R_ctrl и например F1.

Еще полезная штука для vmware - ctrl+alt+del можно выполнить комбинацией ctrl+alt+insert

#virtualbox #esxi
источник
2018 October 01
Админим с Буквой
Самый быстрый способ узнать свой IP-адрес(*)

hostname -I

значение ключа: -I, --all-ip-addresses all addresses for the host

в качестве вывода получите список всех адресов, разделенных пробелом, кроме 127.0.0.1. Таким образом, если вы точно знаете что у вас всего один интерфейс (помимо lo), то вывод даст вам в чистом виде адрес интерфейса.

*при условии что у вас один интерфейс

#bash_tips_and_tricks
источник
Админим с Буквой
Gitlab массовое включение deploy key через API

За смешивание баша и руби прошу не пиннать =)

Задача: включить deploy key всем проектам в пределах одной группы

1. Идем в свой ЛК и получаем там токен

2. Получаем список групп, находим среди них нужную и смотрим ее id.

curl --header 'PRIVATE-TOKEN: TOKEN' https://gitlab.company.com/api/v4/groups


3. Получаем список всех id проектов которые входят в группу

curl -s --header 'PRIVATE-TOKEN: TOKEN' https://gitlab.company.com/api/v4/groups/18 |  ruby -ryaml -e 'p YAML.load($<)["shared_projects"].map {|prj| prj["id"]}'


4. В режиме отладчика в браузере включаем в любом нужном проекте deploy key и смотрим на URL. В нем написан key id, в моем случае это 54.

5. Включаем нужный ключ для всех нужных проектов (не забываем изменить deploy key id)

for repo_id in 13 12 11 10 9 8 7 6 4 2 1; do curl --request POST --header "PRIVATE-TOKEN: TOKEN' https://gitlab.company.com/api/v4/projects/${repo_id}/deploy_keys/54/enable; done


#gitlab
источник
Админим с Буквой
Тестируем соединение через socks5 прокси с авторизацией

curl -x socks5h://login:password@host:port https://ya.ru


#curl #socks5
источник
Админим с Буквой
Tools for observing Kubernetes resources in real time, powered by Pulumi
#k8s
https://github.com/pulumi/kubespy
источник
Админим с Буквой
Создать некоторое количество проектов через Gitlab API

Для создания проекта нужно знать:
- Имя проекта (придумать)
- Namespace ID, в которое будет помещен проект

В поисках Namespace

# смотрим все доступные ns
curl -s --header 'PRIVATE-TOKEN: TOKEN' "https://gitlab.company.com/api/v4/namespaces | json_pp
# или ищем по части имени
curl -s --header 'PRIVATE-TOKEN: TOKEN' "https://gitlab.company.com/api/v4/namespaces?search=libs" | json_pp


В результате нам нужно найти namespace ID, который нужно подставить в параметр при создании проекта.

Создаем сами проекты
 
for repo_name in project1 project2 ... projectN; do \
curl -s --header 'PRIVATE-TOKEN: TOKEN' -X POST "https://gitlab.company.com/api/v4/projects?\
namespace_id=31&\
path=${repo_name}&\
wiki_enabled=false&\
merge_method=rebase_merge&\
visibility=private&\
issues_enabled=false&\
only_allow_merge_if_all_discussions_are_resolved=true&\
jobs_enabled=false&\
snippets_enabled=false&\
lfs_enabled=false";
done

Тут перечислен пример параметров, которые сразу можно задавать при создании репозитория, в вашем случае они могут быть совершенно другие, смотрите документацию или смотрите на уже существующие проекты, обратившись GET-запрсом по /api/v4/projects/PROJECT_ID. project_id можно взять из /projects или зайдя в свойства проекта (settings->general->General project)

#gitlab
источник
2018 October 03
Админим с Буквой
микро-сниппет о сравнении весрий пакетов в debian

perl -le 'use Dpkg::Version; print join "\n", sort version_compare qw(0.1.2 0.1.2rc2 0.1.2-rc2 0.1.2~rc2 0.1.2+1)'


0.1.2~rc2
0.1.2
0.1.2-rc2
0.1.2rc2
0.1.2+1

Сортировка выполняется от младшей (сверху) к старшей (снизу). Подробности в документации.

#debian_versioning
источник