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

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
😎 Очередной #дайджест полезных статей по DevOps:

🔹 Manjaro GNOME — история о переход с Windows на Linux

🔹 Как стать DevOps-ом в 2023 — дорожная карта от опытного админа

🔹 Автоматическое масштабирование Kubernetes: Как использовать автомасштабировщик Kubernetes — рассматриваются такие методы: горизонтальный модуль автоматического масштабирования, вертикальный модуль автоматического масштабирования и кластерный автоскалер

🔹 Cloud-hypervisor — это опенсорсный Virtual Machine Monitor (VMM), работающий поверх KVM и Microsoft MSHV.

🔹 Пирамида отказоустойчивости системы — принципы устойчивого проектирования для создания систем, которые могут лучше противостоять нагрузкам и сбоям
🔥3323👍10🤩10👏9
Запуск и настройка своего собственного Linux сервера

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

Для облегчения вашей участи, мы нашли вам видос, который поможет понять, как это делается и повторить в любой вариации; что нужно учитывать и прочее.

Содержание:

05:34 Выбираем облачную платформу
08:36 Создание сервера
30:52 Настройка SSH
35:45 Подключение к серверу
43:41 Две базовые Linux команды

#туториал
👍7🥰21
LINUX_Полное_руководство_по_работе_и_администрированию_compresse.pdf
22.4 MB
📖 Linux. Полное руководство по работе и администрированию.

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

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

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

#книги
🔥10👍51🥰1🥱1
Наведение порядка в коде Terraform с помощью for_each

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

🔹 Использование for_each дает несколько преимуществ
🔹 Динамическое создание ресурсов
🔹 Предсказуемые и стабильные идентификаторы ресурсов
🔹 Простое удаление без сюрпризов
🔹 Data-driven конфигурация
🔹 Конфиг более краткий и понятный
🔹 Детальный контроль над жизненным циклом ресурсов

Подробнее

#гайд
👍72🥰1🥱1
Единый вход AWS, Terraform и Terragrunt

При локальной работе с AWS CLI или с Terraform или Terragrunt вам потребуется действующая конфигурация AWS для авторизации взаимодействия со службами AWS.

Рекомендуется использовать такие функции, как единый вход (SSO) и управление доступом на основе ролей (RBAC), при использовании вашей учетной записи в качестве участника для взаимодействия со службами AWS.

Использование SSO гарантирует, что вы не храните постоянный ключ доступа и секретный ключ доступа и что срок службы ваших сеансов ограничен. Использование наборов разрешений (форма RBAC) гарантирует, что вы создаете роли только с минимально необходимыми разрешениями для соответствующих учетных записей и принимаете их при необходимости. Это один из аспектов применения принципа наименьших привилегий (PoLP).

В этом руководстве вам понадобится учетка на IAM Identity Center. Еще, хорошо бы, чтобы был доступ к одной или нескольким учеткам, использующим permission sets. В этом руководстве будет описан доступ по крайней мере к двум учетным записям с использованием одного и того же логина.

Код из гайда доступен тут

Подробнее

#гайд
9👍2🥰2🔥1
🥷😎 История одной системы резервного копирования пользовательских данных

Когда речь заходит о пользовательских данных в информационных системах, всегда возникают вопросы: как хранить и как сохранить?

Ответ на первый вопрос. В стеке под слой хранения постоянных пользовательских данных используются объектное S3 хранилище MinIO и базы данных PostgreSQL. В MinIO в основном, хранятся небольшие файлы, документы, 3D и ЦИМ модели (модель, представляющая в цифровом виде физические, функциональные и прочие характеристики объекта), а в PostgreSQL — связи, облака точек моделей и другие данные. Оперативные данные хранятся в Redis/KeyDB и RabbitMQ.

Ответ на второй вопрос «как сохранить?», зависит от нескольких факторов:

🔹 требований к надежности ИС
🔹 требований заказчика
🔹 возможностей реализации

Дальнейшие подробности вы найдете тут
👍83🔥1😁1
Статусы выхода в bash

Каждая программа в linux возвращает некий статус, был ли успех по завершению или возникла ошибка. Этими статусами можно управлять в bash скриптах для вывода ошибок.

Статус выхода, это целое число от 0-255: 0 — успешное завершение команды/программы, остальные — ошибки.

Например, если программа не найдена ни в одном из путей $PATH либо ее вообще нет в системе, то оболочка вернет 127 код ошибки. Ну а если команда/программа найдена, но не является исполняемой (chmod +x), то мы получим код 126 (Permission denied).

Как отловить код выхода из программы/скрипта

Существует зарезервированная переменная «$?», которая хранит в себе код выхода.

# date
# echo $?
0

0 — команда отработала успешно.

# proglib
# echo $?
127

Вернулся код 127 — не удалось найти программу с именем proglib.

Имея эту информацию, можно строить гибкую логику в скриптах и обрабатывать эксепшены.

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

#/bin/bash

date
code=$?
echo "exit code : ${code}"

Теперь в переменной code будет храниться код завершения. Даже если запустить следом другие команды, в переменной code будет лежать предыдущий код выхода.

Рассмотрим ситуацию с логикой:

#!/bin/bash

date
code=$?

if test $code -eq 0
then
echo "success"
else
echo "failed"
fi

test - предназначена для проверки типа файла и сравнения чисел и строк. Возвращает код возврата 0 (истина) или 1 (ложь) в зависимости от вычисления выражения. Выражения могут быть как унарными, так и бинарными.

Если команда date вернет 0 (-eq - означает равно), скрипт завершится со статусом 0 = success, во всех других статусах мы получим failed.

Рассмотрим пример:

#!/bin/bash

date
time
exit 1
echo "hello"

После запуска, выполнятся две команды date и time, затем всё завершится с кодом 1 не передав управление команде echo.

Применения exit очень удобно для дебага, работает как breakpoints, вставляем exit где нужно завершить скрипт и вся оставшаяся логика не выполняется.

#гайд
👍14🤩5😁4🎉43
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥 Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы

Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾 Data Science

Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🧠 C++

Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻 Другие профильные каналы

Библиотека фронтендера
Библиотека шарписта
Библиотека Go разработчика
Библиотека мобильного разработчика
Библиотека хакера
Библиотека питониста
Библиотека devops’a
Библиотека пхпшника

💼 Каналы с вакансиями

Вакансии по питону, Django, Flask
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity
Вакансии по Go
Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
6👍4🥰1
💫🧑‍🏫 Разворачиваем приложение в кластере Kubernetes под управлением Deckhouse c помощью werf

В статье рассматривается целая куча полезных штук:

🔹 Как подступиться к миру Kubernetes в первый раз;
🔹 развернуть кластер под управлением платформы Deckhouse;
🔹 разработать и подготовить приложение;
🔹 развернуть его с помощью утилиты werf, предназначенной для построения рабочего процесса по принципам CI/CD;
🔹настроить сертификаты для доступа по HTTPS.

Читать

#гайд
👍72👏2
🧵🪡🧶 Материал для тех, кто не знал или забыл — прошивка Mikrotik утилитой Netinstall

Netinstall предназначен для установки или переустановки RouterOS на Mikrotik-ах. Netinstall может помочь в случаях, когда роутер не работает должным образом или вовсе перестал загружаться.

Скачать программу Netinstall и прошивку RouterOS можно с официального сайта. Выбирайте версию Netinstall помеченную Stable или Long Term. В Stable отсутствуют критические ошибки, в Long Term исправлены все известные ошибки.
Перед скачиванием прошивки Mikrotik обратите внимание на архитектуру процессора, для которой она предназначена, в основном это MIPSBE и ARM. В строке с наименованием архитектуры процессора будут перечислены наименования моделей Mikrotik.

Если вы не смогли выбрать нужную архитектуру, то скачивайте все — Netinstall сам выберет нужную.
Скачивайте из строки Main package - это основное ПО роутера (прошивка). В Extra packages содержатся дополнительные (не обязательные) модули. Версию прошивки роутера так же лучше выбрать Long-term - это самая стабильная версия.

Пошаговая инструкция восстановления Mikrotik

Настроить ip-адрес на сетевухе компьютера
IP-адрес может быть любым, но из одной сети с компьютером. Например, адрес компьютера 192.168.88.2, маска сети 255.255.255.0.

Запустить Netinstall и разрешить ему работу в Брандмауэре
При первом запуске Netinstall может появиться предупреждение — разрешаем доступ во всех сетях.

Задать ip-адрес Mikrotik-а
Для этого нужно нажать кнопку [Net booting], отметить пункт "Boot Server Enabled" и вписать ip-адрес из той же логической сети, что задана на интерфейсе компьютера: 192.168.88.3

Подключить роутер к ПК
Обычно подключают в первый порт Ether1 или порт обозначенный Boot.

Указать путь к прошивке
Когда устройство появится в списке Netinstall, необходимо кликнуть по нему мышкой в списке, затем нажать на кнопку [Browse] и указать папку с прошивкой.

После этого в списке ниже появятся названия прошивок, которые находятся в указанной папке. Выбираем нужную и нажимаем кнопку [Install]. Дождитесь завершения установки: должна появиться надпись "Done". Затем нажмите кнопку [Reboot] для перезагрузки устройства

#гайд
🔥62👍1
🐉🐉 Hydra

Это опенсорсный column-oriented Postgres. С ним вы можете мгновенно запрашивать миллиарды строк в Postgres без изменения кода.

Быстрый старт

Можно затестить Hydra Free Tier, чтобы создать экземпляр Postgres и подключиться к нему с помощью psql или beaver
В качестве альтернативы вы можете запустить Hydra локально.

#инструменты
👍8🔥41😁1
19 сентября в 14:00 состоится бесплатный вебинар в онлайн-формате: Утечки и фишинг: как реагировать

С января по июнь этого года хакеры выложили в сеть данные 201 российской компании общим объемом 91,8 ТБ, а количество фишинговых атак и случаев кибермошенничества в середине весны выросло на 26% по сравнению с аналогичным периодом 2022-го.

На мероприятии узнаете:

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

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

Регистрация

#мероприятия
6🔥1👏1😁1
🔥💪 Бесплатное мероприятие SmartDev 2023 пройдет 21 сентября в Москве, на Новом Арбате, 24 и онлайн, на котором топ-менеджеры и ведущие it-специалисты поделятся опытом.

Темы:

🔹 Devops
🔹 Архитектура решений
🔹 Машинное обучение
🔹 ИИ
🔹 Данные
🔹 Безопасность

Общие направления:

🔹 Создание современных инженерных решений
🔹 Внедрение и разработка инновационных технологий
🔹 Эффективное управление командой и продуктом
🔹 Выход на зарубежные рынки

Что будет:

Программа просто гигантских размеров, поэтому сюда ее нет смысла помещать — переходите по ссылке.

Регистрация тут
5👍2
😎 Очередной #дайджест полезных статей по DevOps:

🔹 Защита доступа к сайту с помощью Kubernetes NGINX Ingress Controller, OAuth2 и Azure AD — большинство приложений не обеспечивают аутентификацию, но вы можете это исправить

🔹 БД в Kubernetes — решение проблемы реплицирования приложения с сохранением состояния и без него

🔹 Управление секретами в Kubernetes — рассказ о передаче необходимой информации приложению, Secrets Source of Truth при миграции и способах передачи/одновления секретов

🔹 8 советов по безопасности в CI/CD pipeline — проверка зависимостей на наличие проблем с безопасностью, анализ кода, сканирование образов контейнеров и прочее

🔹 Netassert: проверка сетевой связности k8s — софтина для проверки сети междy объектами Kubernetes: Pods, Deployments, Daemon Sets и Stateful Sets
🔥64
🔌🪫📠 Подобрали 5 сканеров для поиска уязвимостей безопасности и неправильных конфигураций в Kubernetes:

🔹 Kube-bench проверяет, развернут ли Kubernetes в соответствии с best practices безопасности, определенными в CIS Kubernetes Benchmark. Тесты настраиваются с помощью файлов YAML.

Как использовать:

Внутри контейнера:
docker run - pid=host -v /etc:/etc:ro -v /var:/var:ro -t aquasec/kube-bench:latest - version 1.18
Внутри Kubernetes-кластера:
kubectl apply -f https://github.com/aquasecurity/kube-bench/blob/main/job.yaml

🔹 Kube-hunter ищет слабые места безопасности в кластерах Kubernetes. НЕ следует запускать в кластере Kubernetes, которым вы не владеете! Находясь за пределами кластера, kube-hunter сканирует домен или диапазон адресов на наличие открытых портов, связанных с Kubernetes, и проверяет наличие проблем конфигурации, которые делают ваш кластер уязвимым для злоумышленников.

Как использовать:

На любой машине выберите удаленное сканирование и укажите IP-адрес или доменное имя кластера:
pip install kube-hunter
На машине в кластере:
docker run -it — rm — network host aquasec/kube-hunter
В поде внутри кластера:
kubectl create -f https://github.com/aquasecurity/kube-hunter/blob/main/job.yaml

🔹 Kubeaudit инструмент командной строки и пакет Go для аудита кластеров Kubernetes на предмет различных проблем безопасности.

Как использовать:

Через Homebrew:
brew install kubeaudit
Через Helm:
helm upgrade — install kubeaudit secureCodeBox/kubeaudit

🔹 Kube-scan может получить оценку риска ваших рабочих нагрузок: от 0 (нет риска) до 10 (высокий риск) для каждой рабочей нагрузки. Kube-scan предназначен для того, чтобы помочь понять, какие из рабочих нагрузок подвергаются наибольшему риску и почему, а также позволяет определить приоритетность обновлений политики безопасности вашего модуля, определений модулей и файлов манифеста, чтобы держать риск под контролем.

Как использовать:

kubectl apply -f https://raw.githubusercontent.com/octarinesec/kube-scan/master/kube-scan.yaml
kubectl port-forward --namespace kube-scan svc/kube-scan-ui 8080:80

Затем установите для браузера значение http://localhost:8080

🔹 Kubesec — это open-source инструмент для оценки риска безопасности рабочих нагрузок Kubernetes на основе их конфигурации YAML. Тулза количественно оценивает риск для ресурсов Kubernetes, проверяя файлы конфигурации и файлы манифеста, используемые для развертываний и операций Kubernetes.

Как использовать:

Docker Container
Linux/MacOS/Win binary
Kubernetes Admission Controller
Kubectl Plugin

Пример использования командной строки:
kubesec scan k8s-deployment.yaml

#туториал
👍11👏43
🔥😎 Запускаем подов на GPU с помощью NVIDIA Multi-Instance в Amazon EKS

В 2020 году NVIDIA представила совместное использование Multi-Instance GPU (MIG). Эта функция разбивает графический процессор на несколько меньших по размеру, полностью изолированных экземпляров. Это полезно для рабочих нагрузок, которые не полностью насыщают вычислительную мощность ГП. Это позволяет пользователям параллельно запускать несколько ворколоадов на одном ГП для максимального использования ресурсов.

NVIDIA Multi-Instance GPU

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

MIG дает вам возможность точно настраивать объем ресурсов графического процессора, который получают ваши ворклоады. Эта функция обеспечивает гарантированное качество обслуживания (QoS) с детерминированной задержкой и пропускной способностью, гарантируя, безопасное использование ресурсов ГП.

Читаем подробнее тут

#гайд
5👍2