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

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
🔥А потом у них сетевой кабель не подключен и петель полный офис... 😂😂😂
👍19😁3🔥2👏1
😎 Очередной #дайджест полезных статей по 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