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

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
🎉🎉 DevOps meetup

Событие состоится 25 октября в 19:00 в формате онлайн.

Программа

Переходим с Ingress на Gateway API
Доклад представляет собой обзор и анализ различных преимуществ и возможностей, которые предоставляет Gateway API. На этом митапе будут рассмотрены основные причины, по которым стоит рассмотреть переход с Ingress на Gateway API, а также конкретные примеры и сценарии, в которых Gateway API может быть особенно полезным и эффективным, а в каких случаях стоит остаться на старом и стабильном Ingress.

"Serverless" как инструмент для разработчиков без опыта в DevOps
Опытный разработчик поделится своим опытом работы на старте и внедрения DevOps. Его доклад призван помочь разработчикам без опыта в DevOps разобраться в технологиях, выборе путей разворачивания в облаке и поддержке без опыта. Получите ценные советы и инсайты о различиях между Azure и Google.

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

#мероприятие
👍52
#вопросы_с_собеседований

Как работает OOM Killer и для чего нужен?

Когда в Linux-е заканчивается память, ядро вызывает OOM для ее освобождения. Это часто встречается на серверах, на которых запущен ряд процессов с интенсивным использованием памяти.

ООМ освобождает память для спасения системы, но чтобы процессы освобождаемые были наименее важны для системы.

У нас не только физическая и виртуальная память может закончиться. А если процесс потребляет страницу определенного размера, то могут быть не очень хорошие вещи.

Ядро Linux дает оценку каждому запущенному процессу, называемому oom_score, которая показывает, насколько вероятно, что он будет остановлен в случае нехватки доступной памяти.

Оценка пропорциональна количеству памяти, используемой процессом. Оценка - 10% процентов памяти, используемой процессом. Таким образом, максимальная оценка составляет 100% x 10 = 1000.

Подробнее об убийце здесь
👍20🔥124
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🛡️ 8 способов защиты от манипуляций на работе

Столкнулись с эмоциональным давлением на работе? Рассказываем, как действуют манипуляторы, и как обезопасить себя.

🔗 Читать статью
🔗 Зеркало
7
🤔 Подготовили #дайджест бесплатных курсов по основам разных технологий

Основы Linux. Курс основан на книге "Фундаментальные основы Linux". Оригинал: Linux Fundamentals.

GIT Training. Изучите основы GIT: системе контроля версий, настройка GIT, создание веток и репозиториев, отслеживание файлов, GitHub и многое другое.

Базовый DevOps. Первый шаг к серьезному обучению и сможете чётко определиться с направлением ваших интересов.

Основы Docker. Научитесь использовать контейнеры, создадите свой первый контейнер Docker. Узнаете, как запускать контейнеры в рабочей среде и решать проблемы оркестрации, такие как high availability, service discovery и reconciliation.

Введение в Kubernetes. Разберетесь в управлении жизненным циклом приложений, установке, конфигурации и валидации, сетевом взаимодействии, планировании, безопасности, создании и обслуживании кластеров.
👍9👏64🤩4🔥2
💪🔥 Экспорт GCP ресурсов в формат Terraform

У инструмента gcloud есть фича, которая может экспортировать все, что есть в GCP прямо в HCL. К тому же, генерирует terraform import команды, что тоже очень удобно:

gcloud beta resource-config bulk-export --project=PROJECT_ID --resource-format=terraform

Эта штука в beta, не поддерживает 100% ресурсов, например, не может пока экспортировать Cloud Functions, но полностью может потягаться с terraformer.

Читать

#туториал
👍74
Освоение командной строки curl

Великолепный видос, какой только можно встретить на просторах.
За три часа автор расскажет все, что можно придумать о curl: от установки до работы с HTTP/3 racing. Рекомендуем всем желающим с любым уровнем знаний 💪

#видео
11
🔪🔪 sos report — швейцарский нож для диагностических инструментов

Команда sosreport написана на Python и предназначена для сбора всесторонних диагностических данных из системы Linux.

Установка

OL6 и OL7
sudo yum install sos

OL8 и OL9
sudo dnf install sos

Выполнение

Ниже приведены команды, которые гарантируют, что мы получим все файлы журнала из /var/log, а также все данные sar. Несмотря на то, что команды различаются в некоторых версиях OL, собранные данные одинаковы.

OL6 и OL7
sudo sosreport --batch --all-logs -k sar.all_sar=on

OL8
sudo sos report --batch --all-logs -k sar.all_sar=on

Параметр --batch позволяет запускать sosreport без дополнительного ввода с клавиатуры.
--all-logs гарантирует, что мы получим все файлы из /var/log.
-ksar.all_sat=on указывает sosreport собирать все файлы sar в /var/log/sa, а не только за последние 14 дней.

OL9
sudo sos report --batch --all-logs -e sar -k sar.all_sar=on

Опция -e sar снова включает плагин sar. По умолчанию в OL9 он отключен.

Подробнее

#гайд
5🔥1
🐧🐧 Создание micro-дистрибутива Linux

В статье пойдет разговор о создании крошечного дистрибутива Linux с нуля.

Вы самостоятельно соберете ядро и напишите ПО для упаковки дистрибутива.

Все будет происходить на архитектуре RISC-V, в частности на виртуальной машине QEMU riscv64. В этой статье мало того, что относится конкретно к этой архитектуре, так что вы можете выполнить почти идентичное упражнение для других архитектур, таких как x86.

Полезный опыт для понимания, как работает Linux, его архитектура и все «подкапотное пространство».

Читать статью

#туториал
👍112
😱😱 Более 10 тыс. сетевых устройств Cisco взломаны из-за уязвимости нулевого дня

Более десятка тысяч сетевых устройств Cisco оказались взломанными из-за ошибки нулевого дня в операционной системе Cisco IOS XE. Хакеры подселили в эти устройства различных вредоносов.

В число пострадавших устройств вошли корпоративные и промышленные роутеры, точки доступа, беспроводные контроллеры и многое другое.

Злоумышленники воспользовались критической уязвимостью (CVE-2023-20198), которая затрагивает все устройства под управлением Cisco IOS XE при условии, что включён Web UI и режим HTTP/HTTPS-сервера.

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

В Cisco рекомендуют администраторам временно - до выпуска патча - деактивировать функцию HTTP/HTTPS-сервера и внимательно отслеживать любые подозрительные события и свежесозданные аккаунты. Они вполне могут быть признаками текущей атаки.

#новость
7💯2👍1👾1
🤔 Держите #дайджест утилит сканирования Linux на уязвимости и вредоносы

♻️ chkrootkit — это инструмент для локальной проверки на наличие признаков руткита

♻️ ClamAV — опенсорсный инструмент для обнаружения троянов, вирусов, вредоносных программ и других вредоносных угроз

♻️ REMnux — это инструментарий Linux для реверс-инжиниринга и анализа вредоносного ПО

♻️ YARA — призван помочь исследователям вредоносных программ идентифицировать и классифицировать образцы вредоносных программ

♻️ Rkhunter (Rootkit Hunter) — это инструмент на базе Unix, который сканирует на наличие руткитов, бэкдоров и возможных локальных эксплойтов
👍81🥰1
#вопросы_с_собеседований

a=5; true | { true && a=10; } чему будет равно a?

Ответ будет 5. Потому что каждая команда конвейера исполняется в отдельной подоболочке

kannabis@fuse:~$ a=5; true | { true && a=10; echo $a; }
10
kannabis@fuse:~$ echo $a
5
8🥰1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
9
🔳🔥👆 Kube-Prometheus-Top

Инструмент на Python, который мониторит ноды, поды, контейнеры Kubernetes и ресурсы PVC на терминале с помощью Prometheus metircs.

Показатели ресурсов, предоставляемые API-интерфейсами K8s, очень ограничены по сравнению с тем, что использует Prometheus.

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

Установка

Совместимо с Python 3.6+

в PyPi
pip3 install kptop --upgrade

Как использовать, какие переменные и ключи для консоли можно узнать тут

#гайд
5👍3🥰1
🤷‍♀️ Чем отличается команда rm от unlink?

Обе эти команды умеют удалять, но в 99% используется именно rm, потому что про unlink вы либо не слышали, либо rm с головой хватает.

Есть ошибочное мнение, что unlink предназначен для удаления лишь ссылок — команда вполне может удалять обычные файлы. А если углубиться, то весь процесс удаления в Linux, это удаление ссылок.

У unlink есть всего лишь два ключа запуска help и version. Очень ограниченный инструмент, но чем инструмент проще, тем проще его синтаксис.

# unlink /tmp/hardlink
# unlink /tmp/file

Софт очень молчаливый — после удаления, он промолчит и ничего не выведет на экран.

Команда unlink использует системную команду unlink, в то время как команда rm использует системный вызов unlinkat. Оба системных вызова практически одинаковы.

Unlink не умеет работать с wildcard и globbing шаблонами. Так же вы не сможете с помощью нее удалить каталог.

Запустим команду и пытаемся насильно удалить файл которого нет в каталоге:

rm -f test.txt

И получаем - НИЧЕГО. То есть rm -f не вернул ошибку, что файл отсутствует. А если сделать так:

unlink test.txt

получим ошибку:

unlink: cannot unlink 'test.txt': No such file or directory

То есть если нужно будет обработать результат выполнения команды rm -f, то будет непонятно, существовал ли вообще файл.

С unlink можно гибче обрабатывать эксепшены в скриптах. А еще при использовании команды unlink отсутствует проверка безопасности. Она удалит файл, защищенный от записи. Хотя современная версия rm теперь тоже так умеет.

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

chattr +i test.txt

chattr позволяет устанавливать и отключать атрибуты файлов, на уровне файловой системы не зависимо от стандартных (чтение, запись, выполнение).

Ключ i - сделает файл неизменяемым. Чтобы снять с файла этот аттрибут, в команде которая выше, замените знак «+» на «-».

Подытожим. Для большинства повседневных задач конечно rm мастхев, но если ты пишете софт для каких-то критичных систем, стоит не упускать из виду unlink.

#гайд
👍244👏2
🪛🔧 Отладка сбоя ядра

Отладка ошибки в ядре может оказаться сложной задачей.

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

Приводится пример файла сбоя. В нем не ошибка ядра, а ошибка стороннего модуля ядра, находящегося out-of-tree:

kannabis@fuse:~$ file 202310190528/dump.202310190528

202310190528/dump.202310190528: Flattened kdump compressed dump v6, system Linux, node debian11, release 5.10.0-26-amd64, version #1 SMP Debian 5.10.197-1 (2023-09-29), machine x86_64, domain (none)

Подробный разбор и отладка ждет вас тут

#туториал
👍31🔥1
#вопросы_с_собеса

Что такое iowait и почему он может появляться?
iowait это показатель, демонстрирующий процентное соотношение времени процессора, которое он потратил на ожидание ввода-вывода.

Высокий показатель может сказать о том, что система ограничена возможностями дисковой памяти. Выполняется много операций ввода-вывода. Это замедляет систему. Конкретно это обычно означает что блочные устройства работают медленно или они переполнены.

Замеряется в количестве потоков, которые ждут работы.
🔥13👍2🥰1
🧑‍🎓😎 Еще одна серия с мероприятия OFFZONE 2023

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

Современная автоматизация обратной разработки в декомпиляторе HexRays

В своем докладе спикер кратко расскажет про существующие инструменты автоматизации обратной разработки, а также представит новые

Смотреть

#видео
👍61