🐳 Почему секреты в Dockerfile остаются навсегда
Хардкодить ключи и пароли в Dockerfile кажется быстрым решением, но в контейнерном мире это почти гарантированная утечка. Даже если потом удалить секрет, он уже может остаться в слоях образа, логах, кэше сборки и сторонних регистрах.
Docker строит образ послойно, и каждый слой можно просмотреть через docker history или инструменты анализа образов.
Если на каком то шаге в Dockerfile задать ENV с токеном или скопировать файл с секретами, этот слой останется в истории образа даже после последующих RUN rm и похожих команд. В результате любой, кто получил образ или доступ к реестру, может восстановить эти данные.
Надежное правило для повседневной работы простое — в Dockerfile никогда не должно быть токенов, паролей и ключей. Секреты передаются только в рантайме через env file или встроенные механизмы секретов платформы, а процесс сборки остается максимально слепым к конфиденциальным данным.
🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека devops'a
#root@prompt
Хардкодить ключи и пароли в Dockerfile кажется быстрым решением, но в контейнерном мире это почти гарантированная утечка. Даже если потом удалить секрет, он уже может остаться в слоях образа, логах, кэше сборки и сторонних регистрах.
Docker строит образ послойно, и каждый слой можно просмотреть через docker history или инструменты анализа образов.
Если на каком то шаге в Dockerfile задать ENV с токеном или скопировать файл с секретами, этот слой останется в истории образа даже после последующих RUN rm и похожих команд. В результате любой, кто получил образ или доступ к реестру, может восстановить эти данные.
Надежное правило для повседневной работы простое — в Dockerfile никогда не должно быть токенов, паролей и ключей. Секреты передаются только в рантайме через env file или встроенные механизмы секретов платформы, а процесс сборки остается максимально слепым к конфиденциальным данным.
🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня Let’s Encrypt выдаёт сертификаты на 90 дней, но постепенно этот срок урежут до 45 дней для всех публично доверенных сертификатов.
Меняется не только срок действия сертификата, но и период повторного использования авторизации домена: сейчас домен‑валидация может переиспользоваться 30 дней, к 2028 году это окно сократят до 7 часов. То есть подтверждать контроль над доменом придётся намного чаще.
Если у вас автоматизированный выпуск и продление сертификатов, скорее всего менять ничего не придётся, но автоматизация должна выдерживать более частые обновления.
🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
📰 Новости первой недели декабря
Новый Год всё ближе, а мы с новостями.
— Solus 4.8
— Опасное «обновление» винды
— MiniOS v5.1.0
— Linux 6.18
— Let's Encrypt будет выпускать сертификаты на 45 дней
🔹 Специалист по ИИ
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека devops'a
#дайджест_недели
Новый Год всё ближе, а мы с новостями.
— Solus 4.8
— Опасное «обновление» винды
— MiniOS v5.1.0
— Linux 6.18
— Let's Encrypt будет выпускать сертификаты на 45 дней
🔹 Специалист по ИИ
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#дайджест_недели
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍4🤩2❤1
🖇 Как быстро узнать публичный IP сервера
Узнать публичный айпи можно за одну строку:
Эта команда отправляет запрос к сервису ifconfig.me, который возвращает текущий внешний IP вашего сервера. Ключ -s отключает лишний вывод, чтобы показать только сам IP.
🔹 Программирование на языке Python
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека devops'a
#root@prompt
Узнать публичный айпи можно за одну строку:
curl -s ifconfig.me
Эта команда отправляет запрос к сервису ifconfig.me, который возвращает текущий внешний IP вашего сервера. Ключ -s отключает лишний вывод, чтобы показать только сам IP.
🔹 Программирование на языке Python
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Вот несколько вещей, которые стоит сделать уже сейчас, чтобы не ловить прод ночью без HTTPS.
Для локального PEM‑файла:
openssl x509 -enddate -noout -in /path/to/cert.pem
Для сертификата, который уже стоит на сервере (через SNI):
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate
Удобно обернуть это в скрипт и повесить на мониторинг, который будет ругаться, если до истечения меньше, скажем, 7 дней.
Если вы используете certbot, базовый cron может выглядеть так:
0 2 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"
• Запускайте чаще, чем раз в 30 дней: certbot сам решит, нужно ли обновлять, но у него будет больше попыток.
• post-hook важен: Nginx (или другой веб‑сервер) должен перечитать новый сертификат.
Для тех, кто предпочитает acme.sh за лёгкость и поддержку разных провайдеров DNS:
0 0 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null
Обратите внимание
• acme.sh сам следит за сроком и обновляет вовремя.
• После выпуска не забудьте один раз прописать перезагрузку сервиса, например:
/home/user/.acme.sh/acme.sh --install-cert -d example.com
--key-file /etc/ssl/example.com.key
--fullchain-file /etc/ssl/example.com.fullchain.pem
--reloadcmd "systemctl reload nginx"
Даже при настроенном cron бывает, что что‑то ломается: права, DNS, лимиты CA. Хорошая практика
• В мониторинг (Prometheus, Zabbix, Grafana Agent, любой другой) добавить проверку срока сертификата.
• Завести оповещение, если осталось меньше N дней или срок истёк.
Избегайте жёстких «обновлять раз в 60 дней»
При 45‑дневных сертификатах такая логика приведёт к просрочке. Без ARI или «умных» клиентов используйте правило: обновлять примерно на 2/3 срока жизни сертификата. Для 45 дней это где‑то на 30‑й день.
Если у вас уже есть боевой контур на Let’s Encrypt, самое важное сейчас — убедиться, что:
• продление полностью автоматизировано
• веб‑сервер корректно перечитывает новые сертификаты
• есть мониторинг и алерты на срок действия
Тогда переход на более короткий срок будет почти незаметен для вас и ваших пользователей.
🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩7
🌐 Как найти все открытые сетевые порты
Чтобы понять, какие порты на вашем компьютере сейчас прослушиваются и ждут подключения, можно быстро проверить все активные сетевые точки с помощью команды:
Она показывает все открытые порты и процессы, которые их используют.
•
•
🔹 Специалист по ИИ
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека devops'a
#root@prompt
Чтобы понять, какие порты на вашем компьютере сейчас прослушиваются и ждут подключения, можно быстро проверить все активные сетевые точки с помощью команды:
netstat -tulnp | grep LISTEN
Она показывает все открытые порты и процессы, которые их используют.
•
netstat -tulnp выводит список TCP и UDP портов, которые прослушиваются, а также PID соответствующих процессов.•
grep LISTEN отфильтровывает этот список, показывая только порты, которые на самом деле слушают входящие соединения.🔹 Специалист по ИИ
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Ghostty теперь работает под финансовым зонтиком Hack Club, который зарегистрирован как некоммерческая организация в США.
Для пользователей и контрибьюторов важны два момента:
Ghostty остаётся бесплатным и с той же MIT лицензией, но при этом у проекта появляется прозрачная модель финансирования и защита от сценариев вроде продажи продукта или тихой смены миссии.
Все торговые марки и права на название переданы некоммерческой структуре, а деньги из донатов могут тратиться только на задачи проекта и его сообщества.
Библиотека devops'a
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Летим зимовать ✈️
Когда холодает, айтишники пакуют чемоданы, а мы разыгрываем ваучер на 50 000 рублей в Островке.
Поехать к морю или остаться среди снежных пейзажей — выбирайте сами!
Чтобы участвовать, нужно оставить любую реакцию под этим постом и подписаться на каналы ниже:
😎 Типичный программист
🐸 Библиотека программиста
🟢 Ostrovok! Tech
Теперь осталось нажать на кнопку участия под этим постом и вы в игре!
Итоги подведём 12 декабря. Победителя выберем с помощью бота. Подробнее с правилами можно ознакомиться здесь.
Всем удачи!
Участников: 111
Призовых мест: 1
Дата розыгрыша: 19:00, 12.12.2025 MSK (3 дня)
Когда холодает, айтишники пакуют чемоданы, а мы разыгрываем ваучер на 50 000 рублей в Островке.
Поехать к морю или остаться среди снежных пейзажей — выбирайте сами!
Чтобы участвовать, нужно оставить любую реакцию под этим постом и подписаться на каналы ниже:
Теперь осталось нажать на кнопку участия под этим постом и вы в игре!
Итоги подведём 12 декабря. Победителя выберем с помощью бота. Подробнее с правилами можно ознакомиться здесь.
Всем удачи!
Участников: 111
Призовых мест: 1
Дата розыгрыша: 19:00, 12.12.2025 MSK (3 дня)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Когда Grafana была просто красивым дашбордом поверх Prometheus и прочих источников метрик.
Сейчас из лёгкой панели это выросло в полноценную платформу наблюдаемости с Loki, Tempo, Mimir и облачным сервисом Grafana Cloud и вместе с этим подтянулись сложность и ценники очень похожие на историю ELK.
Для небольших команд такая платформа часто оказывается избыточной и опасной в деньгах, особенно если нет чёткого понимания что именно нужно мониторить и сколько это будет стоить.
🔹 Программирование на языке Python
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
Пример плейбука для Ansible, который устанавливает Jenkins на группу серверов:
- name: Install Jenkins
hosts: cicd_servers
become: yes
tasks:
- name: Install Java
apt:
name: openjdk-11-jdk
state: present
- name: Add Jenkins repository and install
shell: |
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo "deb http://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
apt update && apt install -y jenkins
Что делает этот плейбук:
• Устанавливает нужную версию Java, обязательную для работы Jenkins.
• Добавляет официальный репозиторий Jenkins и его ключ для безопасной установки.
• Обновляет списки пакетов и устанавливает Jenkins.
🔹 ML для старта в Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🧑💻 Дебаг Kubernetes без kubectl
k9sight это лёгкий open source интерфейс для k8s который работает прямо в терминале и управляется только с клавиатуры. Инструмент заточен под дебаг: быстро показывает workloads логи и состояние подов без постоянного набора kubectl.
Можно на лету переключаться между deployment и pod, раскрывать контейнеры, смотреть логи, делать exec и port forward одной клавишей. Работает поверх обычного kubeconfig, ставится как один Go бинарник и не требует агентов в кластере.
➡️ Репозиторий проека
🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека devops'a
#арсенал_инженера
k9sight это лёгкий open source интерфейс для k8s который работает прямо в терминале и управляется только с клавиатуры. Инструмент заточен под дебаг: быстро показывает workloads логи и состояние подов без постоянного набора kubectl.
Можно на лету переключаться между deployment и pod, раскрывать контейнеры, смотреть логи, делать exec и port forward одной клавишей. Работает поверх обычного kubeconfig, ставится как один Go бинарник и не требует агентов в кластере.
🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Самая частая ошибка в K8s: Pods без CPU/memory requests/limits конкурируют несправедливо. Без лимитов один Pod может сожрать все ресурсы ноды, вызывая голодание или вытеснение других подов под нагрузкой.
Реальный кейс: Java-приложение без limits во время GC жрёт 4GB и выкидывает важные сервисы.
Плохо (нет ресурсов):
containers:
- name: app
image: myapp:latest
# а где...
Правильно. Requests для планирования, limits для защиты:
resources:
requests:
memory: "256Mi" # минимум для scheduler
cpu: "250m" # 0.25 CPU
limits:
memory: "512Mi" # максимум памяти
cpu: "500m" # максимум CPU
Ставьте ресурсы везде. Это спасёт от 90% проблем с нестабильностью кластера.
🔹 AI-агенты для DS-специалистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Автоматическое резервное копирование с cron
Автоматизация рутинных задач — ключ к стабильной работе серверов. Один из популярных способов — запустить задачу по расписанию с помощью cron.
Пример:
Здесь:
•
•
Такой подход позволит автоматически сохранять резервные копии без вашего вмешательства.
🔹 Основы IT для непрограммистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека devops'a
#root@prompt
Автоматизация рутинных задач — ключ к стабильной работе серверов. Один из популярных способов — запустить задачу по расписанию с помощью cron.
Пример:
echo "0 2 * * * tar -czf /backup.tar.gz /important/data" | crontab -
Здесь:
•
0 2 * * * — расписание, указывающее запуск в 2:00 каждый день.•
tar -czf /backup.tar.gz /important/data — создание сжатого архива с папкой /important/data.Такой подход позволит автоматически сохранять резервные копии без вашего вмешательства.
🔹 Основы IT для непрограммистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😢1
Fastfetch обновился до 2.56.0 — завезли как полезные фичи, так и пачку мелких, но приятных фиксов. Fastfetch показывает сводку по системе в одном компактном блоке.
Что нового:
• Подправили определение версий некоторых шеллов на Linux и улучшили парсинг конфигурации Alacritty в формате TOML.
• Теперь относительные пути для
--config/-c умеют искать файлы и в стандартных конфигурационных директориях Fastfetch, например, ~/.config/fastfetch/.• Печать встроенных логотипов стала аккуратнее работать при пайпинге и буферизации, а для определения версий терминала и оболочки по возможности используются абсолютные пути.
🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
DevOps часто воспринимают как чисто практическую специальность где главное уметь поднять кластер и настроить пайплайны.
На практике высшее образование здесь играет чуть другую роль чем у классических разработчиков помогает пройти формальные фильтры в корпорациях но быстро уступает месту опыту эксплуатации.
🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
Лог-файлы растут со временем и могут быстро заполнить дисковое пространство, если их не контролировать. Ротация логов — простой способ автоматически управлять старыми записями, сжимая и удаляя устаревшие файлы.
Пример Ansible плейбука для настройки ротации логов:
- name: Set up log rotation
hosts: all
become: yes
tasks:
- name: Configure logrotate
copy:
dest: /etc/logrotate.d/custom_logs
content: |
/var/log/*.log {
daily
rotate 7
compress
missingok
notifempty
}
Этот плейбук создаёт конфигурационный файл для logrotate с правилами:
• Логи из /var/log/ с расширением .log обрабатываются ежедневно
• Хранятся только последние 7 архивов, чтобы не захламлять диск
• Логи сжимаются для экономии пространства
• Если файлы отсутствуют, ошибок не возникает
• Пустые файлы не обрабатываются
🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#root@prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Oracle Linux 10.1
Новая версия Oracle Linux 10.1 уже доступна для x86_64 и aarch64 и сохраняет 100% бинарную совместимость с RHEL 10.1. Дистрибутив по‑прежнему ориентирован на продовые enterprise‑нагрузки, AI/ML и мультиоблако, плюс остаётся бесплатным в части исходников, ISO и репозиториев.
Что нового
• Свежие Podman/Buildah/Skopeo/crun/runc, новые возможности Quadlet, работа с томами, секретами и API.
• Новые GCC и LLVM, Rust 2024 Edition, актуальный OpenJDK и переработанный Valgrind с модульным пакетом.
• Обновлённая криптографическая база с поддержкой постквантовых алгоритмов: ML‑KEM, ML‑DSA, SLH‑DSA; улучшения в OpenSSL, NSS, GnuTLS и openCryptoki.
➡️ Release notes
🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека devops'a
#пульс_индустрии
Новая версия Oracle Linux 10.1 уже доступна для x86_64 и aarch64 и сохраняет 100% бинарную совместимость с RHEL 10.1. Дистрибутив по‑прежнему ориентирован на продовые enterprise‑нагрузки, AI/ML и мультиоблако, плюс остаётся бесплатным в части исходников, ISO и репозиториев.
Что нового
• Свежие Podman/Buildah/Skopeo/crun/runc, новые возможности Quadlet, работа с томами, секретами и API.
• Новые GCC и LLVM, Rust 2024 Edition, актуальный OpenJDK и переработанный Valgrind с модульным пакетом.
• Обновлённая криптографическая база с поддержкой постквантовых алгоритмов: ML‑KEM, ML‑DSA, SLH‑DSA; улучшения в OpenSSL, NSS, GnuTLS и openCryptoki.
🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🛠 Исключаем лишнее из бэкапа
При резервном копировании не всегда нужно тащить за собой логи и кэш. Это грузит диск и сеть без пользы.
Команда:
копирует всё из
🔹 ML для старта в Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека devops'a
#арсенал_инженера
При резервном копировании не всегда нужно тащить за собой логи и кэш. Это грузит диск и сеть без пользы.
rsync решает проблему через флаг exclude.Команда:
rsync -av --exclude="*.log" --exclude="cache/" /var/app/ /backup/app/
копирует всё из
/var/app/ в /backup/app/, но пропускает файлы с расширением .log и директорию cache со всем её содержимым.🔹 ML для старта в Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
systemd умеет не только запускать и перезапускать сервисы, но и разговаривать с ними. Механизм notify — это способ для демона сказать: «я реально готов», «я перезагружаю конфиг», «я живой, не убивай меня».
Зачем вообще нужен notify
Классический юнит Type=simple врёт сам себе: как только процесс стартанул — считаем сервис запущенным. А в реальности БД ещё поднимает файлы, веб‑сервер открывает сокеты, а ваш сервис в этот момент не готов обслуживать запросы.
Type=notify + systemd-notify решают эту проблему: systemd ждёт явного сигнала READY=1, и только после этого считает сервис активным и запускает зависящие юниты.
Как это устроено под капотом
• При старте юнита с Type=notify systemd прокидывает в окружение переменную NOTIFY_SOCKET — путь до UNIX‑сокета, куда сервис должен отправлять уведомления.
• Сам сервис либо вызывает
sd_notify() из libsystemd, либо запускает утилиту systemd-notify, чтобы отправить строки вида READY=1, STATUS=…, RELOADING=1, STOPPING=1, WATCHDOG=1.systemd-notify — это просто тонкая обёртка над
sd_notify(), которая делает этот протокол доступным из shell‑скриптов и простых сервисов без прямой линковки с libsystemd. Она умеет:• отправлять
--ready, --reloading, --stopping, --status="...", --pid=...• работать в режиме
--exec: сначала отправить уведомление, потом exec процесса; или --fork: подождать READY=1 от дочернего процесса и вернуть его PID.Watchdog и «я живой»
Через этот же канал работает и watchdog. Если в юните настроен
WatchdogSec=…, systemd ждёт периодических сообщений WATCHDOG=1. Пока они приходят — сервис считается здоровым, как только нет — менеджер перезапускает его. Это даёт очень дешёвый health‑check без дополнительных скриптов и cron’ов: сервис сам регулярно подтверждает, что цикл событий жив и не завис.
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2