Библиотека девопса | DevOps, SRE, Sysadmin
Все самое полезное для девопсера в одном канале. Наши курсы: https://clc.to/ZJ7Z1w По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787 Заявка: 8137718351
Ko'proq ko'rsatish📈 Telegram kanali Библиотека девопса | DevOps, SRE, Sysadmin analitikasi
Библиотека девопса | DevOps, SRE, Sysadmin (@devopsslib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 10 336 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 11 813-o'rinni va Rossiya mintaqasida 61 444-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 10 336 obunachiga ega bo‘ldi.
29 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -47 ga, so‘nggi 24 soatda esa -3 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 10.47% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.97% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 1 082 marta ko‘riladi; birinchi sutkada odatda 514 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 1 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent devops'a, навигация, скрипт, docker, git kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Все самое полезное для девопсера в одном канале.
Наши курсы: https://clc.to/ZJ7Z1w
По рекламе: @tproger_sales_bot
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
Заявка: 8137718351”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 30 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
apiVersion: life/v2026
kind: NewYear
spec:
fridayDeploys: false
productionIncidents: 0
blame: "/dev/null"
status:
phase: TooGoodToBeTrue
message: "CrashLoopBackOff на реальность"
С Новым годом! Пусть единственным rollback будет откат к оливье за добавкой.
🐸 Библиотека devops'agit pull в проде часто превращается в лотерею, потому что меняет рабочую директорию прямо на месте и может оставить полусобранное состояние.
Как сделать чуть безопаснее
Вместо pull лучше делать fetch и жестко ставить нужный коммит или ветку. Так меньше сюрпризов с мержами и конфликтами. А еще обязательно чистить мусор, иначе старые файлы могут остаться в каталоге и влиять на запуск.
Скрипт на python:
import os
import subprocess
def run(cmd):
subprocess.run(cmd, check=True)
def deploy(repo_path, branch="main"):
os.chdir(repo_path)
run(["git", "fetch", "origin", branch])
run(["git", "reset", "--hard", f"origin/{branch}"])
run(["git", "clean", "-df"])
print(f"Код обновлен до origin/{branch}")
deploy("/path/to/repo")
Этот вариант повторяемее, чем git pull, потому что не пытается мержить локальные изменения.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженераterraform init && apply пишите terragrunt apply. Auto-init сам подтянет провайдеры, работает с Terraform/OpenTofu.
Пример:
# main.tf
variable "content" {}
resource "local_file" "file" { content = var.content; filename = "hi.txt" }
# terragrunt.hcl
inputs = { content = "from terragrunt" }
terragrunt apply создаст .terragrunt-cache (в .gitignore) и файл.
Вынесите логику в shared/main.tf с переменными. В env/ terragrunt.hcl:
terraform { source = "../shared" }
inputs = { content = "env-specific"; output_path = "${get_terragrunt_dir()}/hi.txt" }
Логика одна, запускайте из dev/prod. Backend/provider дубли не нужны — Terragrunt генерит.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root@promptkubectl get secret <secret-name> -o jsonpath='{.data.password}' | base64 --decode решает проблему. Jsonpath вытаскивает точный ключ из data, пайп декодирует в терминале. Получаете чистый текст локально, без посредников.
Дебаг ускоряется, комплаенс соблюден.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#aрсенал_инженераset -g prefix C-a
unbind C-b
bind C-a send-prefix
Перезапуск tmux kill-server; tmux. Теперь Ctrl-a вместо Ctrl-b для всех команд.
Разделение окон:
bind | split-window -h bind - split-window -v
Ctrl-a | горизонтально, Ctrl-a - вертикально. Без префикса Ctrl-b % или ".
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#aрсенал_инженераkubectl get events --sort-by='.lastTimestamp', и логи выстраиваются по времени. Последние ошибки вроде BackOff, FailedMount или ImagePullBackOff всплывают в самом низу.
Добавьте --field-selector involvedObject.name=your-pod-name, чтобы видеть только события вашего пода. Или --namespace=prod для пространства.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#aрсенал_инженераn8n: создание автоматизированных воркфлоу;
— использование CrewAI и AutoGen для командной работы ботов;
— работа с протоколом MCP для интеграции AI в существующую инфраструктуру;
— настройка RAG для быстрого доступа агентов к логам и документации.
Дипломный проект: автономная группа агентов для автоматической техподдержки или мониторинга систем.
Автоматизировать всё с AI 🤖Go или Python;
— знает всё про Kubernetes, CI/CD и облачные сервисы;
— способен структурировать хаос и обучать этому других;
— готов работать на большую аудиторию.
Суть сделки:
— гонорар за участие в образовательных проектах;
— прокачка твоего имени в DevOps-среде;
— статус эксперта Proglib Academy.
Явка с повинной
P.S. Твой коллега автоматизировал всё, даже кофеварку? Сдай его нам.import subprocess
SERVICE_NAME = "nginx"
def restart_service():
try:
status = subprocess.run(
["systemctl", "is-active", SERVICE_NAME],
capture_output=True,
text=True,
)
if "inactive" in status.stdout or "failed" in status.stdout:
print(f"{SERVICE_NAME} is down! Restarting...")
subprocess.run(["systemctl", "restart", SERVICE_NAME], check=True)
print(f"{SERVICE_NAME} restarted successfully.")
else:
print(f"{SERVICE_NAME} is running fine.")
except Exception as e:
print(f"Error checking service: {e}")
if __name__ == "__main__":
restart_service()
systemctl is-active возвращает состояние сервиса, по которому вы определяете, нужно ли его перезапускать.
При падении юнита скрипт выполняет systemctl restart nginx и сообщает в stdout об успешном запуске.
Как использовать на сервере
• Положите скрипт, например, в /usr/local/bin/check-nginx.py и сделайте его исполняемым.
• Добавьте cron‑задание * * * * * /usr/bin/python3 /usr/local/bin/check-nginx.py чтобы проверять сервис каждую минуту.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root@prompt