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

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

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

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

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
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
#вопросы_с_собеседования

Что за none образы можно увидеть в docker images?


Каждый образ в докере состоит из слоев, и имеет дочерние связи с другими слоями. По умолчанию они лежат в /var/lib/docker/graph. И когда мы закачиваем новую версию образа, он подгружает слой раз за разом. И получается что none это лишь один из слоев. Этот образ называется промежуточным. Их можно увидеть с помощью docker images -a Также есть обособленные образы none:none. Например, когда мы собираем примерно такой же образ, но, например, с иной версией ОС. В этом случае будет создан именно такой образ. Поскольку мы пересобрали образ с помощью докерфайла, а старая система стала обособленной.

Можно почистить так:

docker rmi $(docker images -f "dangling=true" -q)
5🔥5
💰⬆️ 10 факторов, влияющих на зарплату программиста

Узнайте 10 факторов, как превратиться из рядового программиста в высокооплачиваемого специалиста и научиться аргументированно запрашивать зарплату выше рынка.

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

#новость
2👍2🥰2
Рассмотрим полезный набор хоткеев для эффективной работы в оболочке bash.

Навигация

Ctrl+A переместить курсор в начало строки
Ctrl+E переместить курсор в конец строки
Ctrl+F переместить курсор на один символ вправо
Ctrl+B переместить курсор на один символ влево
Alt+B / Esc+B переместить курсор влево на одно слово


Редактирование


Ctrl+U удалить все и вернуться в начала строки
Ctrl+K удалить все после курсора
Ctrl+W удалить слово перед курсором
Alt+D удалить слово после курсора
Ctrl+Y вернуть удаленное
Ctrl+D удалить символ под курсором
Ctrl+H аналогично backspace
Alt+T смена позиции текущего слова на предыдущее
Ctrl+T замена местами двух символа перед курсором
Alt+U перевод слова в заглавные после курсора
Alt+L перевод слова в строчные после курсора
Ctrl+_ отмена последнего ввода


Bash History

Ctrl+R режим обратного поиска
Ctrl+P переход к предыдущей команде
Ctrl+N переход к следующей команде
Ctrl+O выполнить найденную команду
Ctrl+G выход из режима поиска
!! выполнить предыдущую команду
!vim выполнить последнюю команду, которая начиналась на vim
!vim:p вывести последнюю команду, которая начиналась на vim
!n запустить n команду из history


Общие хоткеи


Ctrl+C завершить команду
Ctrl+L очистить экран
Ctrl+S приостановить вывод, остановить прокрутку
Ctrl+Q возобновить прокрутку
Ctrl+D закрыть оболочку
Ctrl+Z приостановить процесс
👍25🎉5👏1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤖 Итоги недели в мире ИИ и обзоры новых сервисов

Мы написали статью на VC, которая основана на очередном выпуске нашей рассылки про последние новости и тенденции в мире ИИ. Залетайте и читайте!

👇Ниже — мини-подборка из статьи 👇

📰 Новости

▫️ OpenAI объявила о запуске долгожданного магазина кастомных чат-ботов.
▫️ В Пасадене (штат Калифорния) открывается первая закусочная CaliExpress by Flippy, полностью управляемая ИИ.
▫️ NVIDIA выпустила модель для распознавания речи Parakeet, которая по всем показателям превосходит OpenAI Whisper.
▫️ Использование ИИ в совместном научном проекте Microsoft и Тихоокеанской северо-западной национальной лаборатории в течение недели помогло определить новый элемент, который поможет снизить на 70% использование лития в батареях. Без ИИ такое исследование заняло бы по меньшей мере 20 лет.
▫️ Компания ByteDance выпустила новую модель MagicVideo-V2 для генерации видео.

🛠 Инструменты

◾️ Auto Wiki — генерирует вики-документацию для GitHub репозиториев.
◾️ Code to Flow — визуализирует, анализирует и объясняет код, написанный на всех популярных языках и фреймворках.
◾️ Concepto — платформа для создания прототипов веб-приложений.
◾️ Afforai — выполняет суммаризацию, перевод и поиск по множеству документов.
◾️ Corgea — исправляет уязвимые фрагменты кода.
◾️ Jan — опенсорсный оффлайновый чат-бот.
◾️ Plus AI — плагин для Google Slides: делает профессиональные презентации, персональные и командные дашборды, любые отчеты.

🤙 Сделай сам

🔸 WikiChat — опенсорсный инструмент для коррекции галлюцинаций с помощью информации из Википедии.
🔸 Подробная шпаргалка и советы по созданию продвинутых RAG.
🔸 OpenVoice — опенсорный инструмент для мгновенного клонирования голоса.

🎓 Туториалы

🔹 Туториал по работе с новым API Query Pipelines показывает примеры создания простых линейных цепочек и сложных ациклических графов из модулей LlamaIndex.
🔹 Туториал по объединению LLM с помощью mergekit детально разбирает 4 основных метода объединения моделей.

#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
#memes

Когда повесил кучу тикетов на разрабов 😆
😁5👍1
#вопросы_с_собеседования

Почему latency до 8.8.8.8 всегда низкий?

8.8.8.8 это не один хост. Это anycast адрес, который перенаправляет на ближайший хост, которые по всему миру.
👍12🥰4
#memes

Про курьеров и программистов уже слышали многие. Вот ещё данные из того же исследования.
21👍5🥰1
🤔 Очередной #дайджест для DevOps-ов

🛠️ D-Bus overview — о том, что такое d-bus, и о том, как эта система взаимодействия процессов работает

🛠️ dockly — TUI для управления docker контейнерами прямо из командной строки

🛠️ pghero — дашборд для PostgreSQL, умеет показывать общее состояние сервера, запросы и соединения к нему

🛠️ atuin — инструмент для синхронизации истории команд между системами

🛠️ Как обслуживать миллионы запросов в месяц с помощью VPS объемом 2 ГБ — история о размещении большого ресурса на простом виртуальном сервере без применения 100500 слоёв современных облачных технологий
🔥8🥰7🤩5👍4😁4
Стратегии развертывания Kubernetes

💩 Сине-зеленое развертывание (Blue/Green)

Эта стратегия базируется на двух продуктивных средах: «синяя» — там, где живут старые версии приложения, и «зеленая» — зона, где мы запускаем новую версию приложения.

💩 Shadow

Теневое развертывание заключается в выпуске версии 1.1 наряду с версией 1.0, перехвате входящих запросов с первой версии и отправке на вторую без влияния на трафик. Это особенно полезно для тестирования production нагрузки на новую функцию.

💩 Постепенное развертывание (Rolling)

Все инстансы приложения будут последовательно обновляться до новой версии.

💩 A/B testing

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

💩 Повторное создание (Recreate)

Сперва удаление текущей версии приложения, затем развертывание новой версии.

💩 Канареечное развертывание (Canary)

«Канареечный» деплой схож с зелено-синей стратегией. Часть текущих инстансов приложения заменяется новой версией, на которую переключается часть трафика.

Каждая стратегия предлагает свой подход к управлению обновлениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥2🤔2🥰1
😵☠️ Смерть от тысячи микросервисов

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


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

#почитать
👍8🔥1
Тренировки по DevOps — плейлист на YouTube для новичков. Лекторы рассказывают теорию и показывают, что делают на практике.

Лекция 1: Кто такой DevOps (+ разбор домашнего задания)
Лекция 2: Облако. Кто виноват и что делать? (+ разбор дз)
Лекция 3: Процессы Linux (+ разбор дз)
Лекция 4: Сети Часть 1. Коты и коробки (+ разбор дз)
Лекция 5: Linux: инструменты командной строки (+ разбор дз)
Лекция 6: Базы данных (+ разбор дз)
Лекция 7: Сети. Часть 2. Коробки и коты (+ разбор дз)
Лекция 8: Как запустить «облако»
🔥14🥰3👍1
Зачем делать touch, перед тем, как что-то записать в файл? Имеется в виду такая ситуация:

touch file.txt
vim file.txt
:w


Проще так:

vim file.txt
:w


Почему не делать такого?

dd if=/dev/zero of=newfile bs=1 count=0


Оно ведь тоже создает новый файл…

На самом деле правильного ответа нет. Единственно что нужно знать, это — используя touch вы всегда будете уверены, что сможете записать свои данные в файл.

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

Да и еще touch используется для обновления даты модификации. Например, вы редактировали конфиг nginx в прошлом году, но всем нужно показать что вчера, делаете touch nginx.conf и проставляется актуальная дата и время. И в bash скриптах можно использовать, если есть какая-то логика с lock файлами, таймштампами и т.п.

А как правильно создавать файлы? Правильный способ для создания файлов, это любая команда, которая использует системный вызов create или open (с флагом O_CREATE). Таких команд и программ масса.

Кстати есть еще такой древний строковый редактор, называется ed. Идет в коробке почти со всеми дистрибутивами. Этот редактор изначально требовал наличия файла перед его редактированием. И да, из этого редактора выйти намного сложнее чем из vim 😂. Попробуйте ради интереса.

А как вы создаете файлы?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18👏87🎉6😁5
🎉🎉 Релиз Grafana k6 v0.48.0

Многочисленные критические изменения, новая k6 new подкоманда для создания тестового сценария, новый k6/experimental/fs модуль для взаимодействия с файлами, поддержка регулирования ЦП и сети для модуля браузера k6 и многое другое.

Изучить

#новость
👍4🎉3🔥1
🤓🤓 Pure bash bible

Цель этого материала — задокументировать методы выполнения различных задач с использованием только встроенных функций bash. Использование фрагментов из этой библии может помочь удалить ненужные зависимости из скриптов и в большинстве случаев ускорить их выполнение.

Подробнее

#почитать
❤‍🔥23👍3🥰21