Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.39K photos
72 videos
4 files
2.6K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
Чем отличается StatefulSet от Deployment?

Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.

StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.
🔥21🎉14👍51
🤔 Как добавить, использовать и обновить .terraform.lock.hcl без боли

В Terraform 1.4.0 были внесены изменения, которые нарушают прежнее непреднамеренное поведение. Раньше моно было игнорировать lockfile и использовать кэшированных провайдеров, если ограничения версий в коде соответствовали локальному кэшу. Начиная с версии 1.4.0, Terraform всегда проверяет lockfile перед тем, как зайти в каталог кэша. На практике это означает, что если вы проигнорируете файл блокировки или полностью удалите его, Terraform запустит полный init, независимо от того, что находится в вашем TF_CACHE_DIR или в каталоге .terraform.

Более подробно читайте здесь

#гайд
🤩274👍3
🤔 Очередной #дайджест для DevOps-ов

↘️ Stack Lifecycle Deployment — опенсорсный проект, определяющий и управляющий полным жизненным циклом ресурсов, используемых в облаке

↘️ Управление несколькими средами в Terraform — создание каталога для каждой среды и организацию кода инфраструктуры в этих каталогах

↘️ Демистификация OOM Killer в Kubernetes — отслеживание проблем с памятью

↘️ Б значит не Безумие, а Безопасность — кибербезопасность сейчас в тренде, безопасность инфраструктуры и ПО, располагаемого в ней, тоже — об этом и пойдет речь

↘️ 10 советов по управлению крупными инцидентами — просмотрите логи, поковыряйте мониторинг, обратитесь в службу поддержки и т. д.
👍7😁6🎉6👏54
#вопросы_с_собеседования

Что такое контейнеризация? Чем она отличается от виртуализации?

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

При контейнеризации аппаратные ресурсы выделяются с помощью ядра операционной системы, и изолируются пространством имен. Следовательно, они потребляют меньше ресурсов, и быстрее пересоздаются.
❤‍🔥33🔥3👍2
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
2
✍️😎 Пишем Ansible-модули для управления разными системами хранения данных через Swordfish

Большинство современных систем хранения данных (СХД) предоставляют REST API для управления ими, включая настройку, конфигурирование, выполнение различных команд, получение логов, работу с пользователями и т.д. В зависимости от производителя СХД REST API могут отличаться друг от друга. Если вы используете несколько разных систем, их одновременная поддержка становится проблемой: нужно учитывать многообразие протоколов, интерфейсов, команд и способов взаимодействия с API.

О Swordfish и преимуществах спецификации

Swordfish — это стандарт управления хранилищами данных, разработанный SNIA (Storage Networking Industry Association). Эта организация объединяет производителей и пользователей СХД с целью разработки и поддержки отраслевых стандартов и технологий хранения данных. Swordfish предоставляет богатый функционал для управления ресурсами хранилищ данных, конфигурации и мониторинга систем, поддерживает механизмы аутентификации и авторизации для обеспечения безопасности. Спецификация Swordfish призвана решить большое количество проблем с универсальностью управления СХД в современной инфраструктуре, а за развитием и улучшением стандарта стоит активное сообщество.

Продолжение тут

#туториал
🎉225👍2
🤔✏️ Обзор одноцелевых дистрибутивов Linux

Многие из тех, кто устанавливает дистрибутив Linux для одной-единственной цели, например, для работы с контейнерами, предпочитают развёртывание по принципу «поставил и забыл». На конференции FOSDEM 2023, состоявшейся в Брюсселе, было представлено несколько проектов из разряда таких «минимальных дистрибутивов Linux». Все они — Fedora CoreOS, Ubuntu Core, openSUSE MicroOS и Bottlerocket OS — решают такие задачи по-своему. Из выступлений на FOSDEM можно составить интересную перспективу, демонстрирующую, в чём эти проекты отличаются на уровне применяемых подходов.

Изучить дистрибутивы

#гайд
2👏2
Шпаргалка по командной строке CMD

SETX - утилита для создания системных переменных
SFC - проверка и восстановление системных файлов Windows
SHARE - просмотр, создание и удаление разделяемых в локальной сети ресурсов
SHUTDOWN - выключение или перезагрузка компьютера
SLEEP - задержка по времени в пакетном файле
SLMGR - управление лицензированием программного обеспечения Windows
SORT - сортировка строк в текстовом файле
START - запуск приложения или командного файла
STORDIAG - диагностика системы хранения данных в Windows 10
SUBST - назначение (отмена назначения) каталогу буквы диска
SxSTrace - диагностическое средство трассировки компонент системы
SYSTEMINFO - отображение информации о системе
TAKEOWN - изменение владельца файла или каталога
TAR - архивирование данных архиватором tar в Windows 10
TASKKILL - завершение процессов на локальной или удаленной системе.
TASKLIST - отображение списка выполняющихся приложений и служб Windows
TIME - отображение и установка системного времени
TELNET - telnet-клиент Windows
TFTP - TFTP-клиент Windows
TIMEOUT - задержка в пакетных файлах
TITLE - изменение заголовка окна CMD.EXE
TRACERT - трассировка маршрута к удаленному узлу
TREE - отображение структуры каталога в графическом виде
TSCON - подключение к сессии удаленного рабочего стола (RDP).
TSDISCON - отключение сессии удаленного рабочего стола (RDP).
TSKILL - завершение процессов, адаптированное для среды сервера терминалов (RDP).
TYPE - вывод на экран содержимого текстового файла
TypePerf - вывод сведений о производительности на экран или в журнал
TZUTIL - управление часовыми поясами в среде Windows
VER - отображение версии операционной системы
VERIFY - управление режимом проверки записываемых файлов
VOL - вывод данных метки тома
VSSADMIN - администрирование службы теневого копирования томов.
W32TM - управление службой времени Windows
WAITFOR - организация обмена сигналами между компьютерами
WBADMIN - управление резервным копированием и восстановлением в Windows
WEVTUTIL - управление событиями в Windows
WHERE - определение места расположения файлов
WHOAMI - вывод имени текущего пользователя
WINDIFF - сравнение содержимого файлов
WinMgmt - обслуживание инструментария управления Windows (WMI)
WINRM - удаленное управление Windows из командной строки
WINRS - удаленная командная строка (Remote Shell)
WINSAT - средство проверки производительности Windows
WMIC - выполнение команды WMI в командной строке
WSCollect - получить CAB-файл с копиями журналов Windows 10 на рабочем столе
Wscript - сервер сценариев Windows с графическим интерфейсом
WSL - выполнение команд Linux и конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
WSLconfig - конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
XCOPY - копирование файлов и папок
👍96🔥5👏5🥰3
#вопросы_с_собеседования

Что такое docker и какие инструменты linux лежат в основе? Для чего он используется?


Docker базируется на технологиях:

🔸 namespaces — обеспечивает изоляцию (например, можно айдишники процессов разместить в разных контейнерах)
🔸 cgroups — позволяет управлять группой процессов, и управлять их ресурсами
🔸 capabilities
— позволяет дать некоторые рут привелегии процессам или исполняемым файлам. Например, изменить UID процесса на 0, или дать возможность монтировать файловые системы.
🔸 overlay namespaces
— (overlayFS, overlay2-драйвер) - файловая система, которая умеет работать "слоями". Не сохранять каждый раз новые файлы, а наслаивать один слой на другой, тем самым экономя место на диске и время создания контейнера.

А вот докер — это уже штука, которая всеми этими технологиями рулит, удобным для нас образом.

Компоненты докера:

🔻 Docker Daemon — тот самый Container Engine; запускает контейнеры.
🔻 Docker CLI — утилита по управлению Docker.
🔻 Dockerfile — инструкция по тому, как собирать образ.
🔻 Image — образ, из которого раскатывается контейнер.
🔻 Container
🔻 Docker registry — хранилище образов.

На Docker_host работает Docker daemon и запускает контейнеры.
Client — передаёт команды: собери образ, скачай образ, запусти контейнер. Docker daemon ходит в registry и выполняет их. Docker-клиент может обращаться и локально (к юникс-сокету), и по TCP с удалённого хоста.

Docker daemon (демон) — это серверная часть, работающая на хост-машине: скачивает образы и запускает из них контейнеры, создаёт сеть между контейнерами, собирает логи. Когда мы говорим «создай образ», этим тоже занимается демон.

Docker CLI — клиентская часть Docker, консольная утилита для работы с демоном. Может работать не только локально, но и по сети.
🔥42👍31
🤔 Очередной #дайджест для DevOps-ов

🔺 CNCF White Paper по observability — инструменты, виды, стратегии и проблемы

🔺 Создание современных асинхронных систем — как создать устойчивую и масштабируемую асинхронную систему для управления сложным рабочим процессом

🔺 Настройка Honeypot в Mikrotik — что это такое, зачем он нужен и как его настраивать и использовать в MikroTik

🔺 Форматирование файловой системы XFS — инженеры Oracle пишут о работе mkfs.xfs и о том, что происходит в процессе форматирования раздела в этой файловой системе

🔺 Sudo без бинарного setuid или SSH через UNIX-сокет — странная, но занятная попытка отказаться от sudo и заменить его соединением по SSH через сокет
👍86🎉5🔥4🥰4
🔧🔧 Bitwarden в действии: автоматизация смены ключей и паролей для AWS

В мире, где каждая учетная запись требует от нас еще одного пароля, и каждый облачный сервис, такой как AWS, зависит от надежности этих ключей, менеджеры паролей вроде Bitwarden выступают как спасители. Они не просто хранят наши ключи и пароли, но и делают их управление значительно удобнее. Однако, даже с таким мощным инструментом, как Bitwarden, мы сталкиваемся с ограничением: он не способен автоматически обновлять и менять используемые в облачных сервисах ключи и пароли.

Итак, что делать, когда ручное обновление ключей и паролей становится скучной и малоэффективной задачей? В этой статье вы узнаете, как можно объединить удобство использования Bitwarden с эффективными методами автоматизации для управления учетными данными AWS. Представьте себе — больше нет монотонного ввода паролей и обновлений ключей вручную. Но для этого придется немного постараться.

Продолжение здесь

#гайд
27👍4🔥1
Radius

Это облачная опенсорсная платформа, которая позволяет разработчикам определять, развертывать облачные приложения и совместно работать над ними в общедоступных облаках и частной инфраструктуре

Ключевые особенности платформы:

Совместная работа в команде: приложения и среды Radius позволяют разработчикам выполнять операции по определению и доставке приложений.
Рецепты инфраструктуры: заменяемая инфраструктура, соответствующая лучшим практикам организации и политике ИТ по умолчанию.
График приложения: понимание того, как службы и инфраструктура в приложении взаимосвязаны.
Нейтральность к облаку: развертывание в среде разработки, локальных и облачных средах обеспечивает согласованность работы.
Постепенное внедрение: интегрируйте Radius в существующие рабочие процессы и каталоги шаблонов инфраструктуры в виде кода.

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

#туториал
🎉15❤‍🔥132🥰1
doas – утилита, которая позволяет обычным пользователям выполнять задачи от имени root, так же как это делает sudo. Она была разработана проектом OpenBSD как минималистичная альтернатива sudo.

Запускайте apt install doas.

Так как doas не входит по умолчанию в коробочные версии linux, утилита требует немного бОльших настроек, в отличие от sudo. Но конфигурация намного проще для понимания чем sudo. Настраивается все это через файл /etc/doas.conf. Если файла нет — создайте.

Сымитируем поведение sudo и позволим пользователю выполнять любые команды от пользователя root. Добавим в конфиг такое:

permit persist user as root


Теперь пользователь user сможет выполнять команды от root + пользователь получает льготный период, когда не нужно вводить пароль в течение нескольких минут после последовательных команд doas.

Допустим нужно сделать подобное, но для определенной группы, добавляем в конфиг строчку:

permit persist :wheel as root


Теперь все кто в группе wheel смогут побыть рутом. Также и с белым списком команд, которые можно выдать для запуска без пароля:

permit persist user as root
permit nopass :user as root cmd apt

Да, конфиг более читабельный чем у sudo

Конфиг sudo
%wheel ALL=(ALL) NOPASSWD: ALL

Конфиг doas
permit nopass :wheel as root


Ну и с помощью doas можно запустить root shell такой командой:

doas -s
❤‍🔥14👍81🔥1🌚1
Как оцениваете свой уровень знания ОС Linux по десятибальной шкале?

Вопрос с подвохом. Ответ «на десять» для заядлого линуксоида все равно что красная тряпка для быка, поэтому вы рискуете провести следующие два часа своей жизни максимально увлекательно :)
👍42
🧑‍🍳🧑‍🍳 Синхронизация локальных изменений с docker/kubernetes контейнером

Ситуация — вы решили создать какой-то сервис, написали первичный код, завернули это в контейнер, запустили в docker или в kubernetes, и все заработало...но вам понадобилось поменять код, ведь вы собираетесь вести активную разработку — изменять файлы, добавлять новые зависимости и так далее, не хотелось бы каждый раз вручную собирать или синхронизировать файлы, т.к. это занимает много времени. К счастью мир не стоит на месте, и уже есть несколько инструментов, которые позволят вам решить эту задачу.

Здесь подробный рассказ

#туториал
3🥰1
🤔 Очередной #дайджест для DevOps-ов

👉 AgileOps: Jira-центричный подход — как убрать препоны между бизнесом, DEV, OPS, SEC, QA и обеспечить прозрачность процессов можно разрабатывать свою автоматизацию для Jira

👉 AWS Weekly Roundup — Amazon Route53, Amazon EventBridge, Amazon SageMaker и еще чуток

👉 Изучаем Ansible Inventory — рассматривается базовая функциональность, управление переменными и комбинирование нескольких источников Inventory и варианты работы с динамическими Inventory

👉 ScyllaDB на Kubernetes — как запускать Intense Workloads с помощью Spot Instances

👉 Опыт масштабирования Kubernetes на 2k узлов и на 400k подов — рассмотрено как масштабируется Kubernetes и как можно улучшить масштабируемость, настраивая параметры кластера
👍7🎉5🔥4👏3😁3