Я анонсировал ранее подборку сайтов IT блогеров со статьями на различные темы, связанные с настройкой и эксплуатацией IT систем. Собралось небольшое сообщество авторов. Полный список сайтов есть в прошлой подборке. А пока анонс новых статей тех авторов, кто согласился участвовать и прислал свои материалы.
⇨ Разрабатываем мини-автоматизацию по оповещению администратора о факте НСД в Astra Linux
Оповещения администратора безопасности при попытках подключения незарегистрированных носителей информации к Astra Linux. Реализовано через правило udev, которое запускает скрипт при подключении носителя, скрипт отправляет запись в локальный syslog сервер, а тот пересылает в удалённый.
⇨ Человеческий фактор или вредные советы по Astra Linux
Несколько примеров из практики на тему того, как не работают внедрённые регламенты и правила.
⇨ Установка Astra Linux 1.8. Как установить и что нового?
Подробная статья на тему установки новой Astra Linux 1.8 от создания загрузочной флешки до разбивки диска и начальной настройки.
🔥 Windows и оперативная память
Подробная статья на тему работы с памятью в Windows: чем виртуальная отличается от физической, как происходит выделение памяти процессам, что такое рабочий набор, swap и др. Работа с утилитами RAMMap, Process Explorer, Testlimit, Strings, NotMyFault и poolmon. Кому не интересно всё это, можете перемотать в раздел Диспетчер задач Windows и память и посмотреть описание метрик памяти в диспетчере задач.
⇨ Как установить сертификат ECC (Elliptic Curve Cryptography) в Exchange Server
ECC сертификаты приехали в Exchange. Я давно начал их использовать для SSH и вам советую. Если быть точным, ECC - это алгоритм Elliptic Curve Cryptography (криптография на эллиптических кривых), а я имею ввиду ключи на базе алгоритма Ed25519, который основан на эллиптических кривых.
⇨ Как установить RSAT на Windows 11
Установка Remote Server Administration Tools для управления различными ролями Windows Server: AD, DNS, DHCP и другие.
⇨ Как исправить спам-сообщения в средстве просмотра очереди Exchange Server
Письма, отправленные на несуществующие адреса в вашем домене, обрабатываются, формируются отчёты о недоставке (NDR) и отправляются обратно отправителю. В статье рассказано, как с этим бороться.
⇨ Как настроить учетную запись службы для присоединения к домену
Создание учётки с ограниченными правами, предназначенной только для присоединения устройств к домену.
⇨ Установка контроллера ZeroTier на свой сервер с помощью ZTNET
Selfhosted размещение ZeroTier контроллера со встроенной панелью администратора.
⇨ Построение защищенных виртуальных сетей с помощью Nebula
Объединение распределенных устройств в отдельную изолированную сеть с помощью Nebula.
⇨ Собираем docker образ DNS сервера Unbound
Создание собственного Docker образа популярного DNS сервера. Процесс рассмотрен очень подробно, так что материал можно использовать как пример сборки собственных образов других сервисов.
⇨ Поднимаем свой DNS сервер Unbound и блокировщик рекламы Pihole в docker
К собранному ранее образу с Unbound добавляется Pi-hole для блокировки рекламы.
⇨ Пользователи в Linux
Небольшая справочная статья по работе с пользователями в Linux - создание, удаление и т.д.
⇨ Использование sudo в Linux
База по установке и настройке Sudo. Кому любопытно, когда-то давно я написал статью Sudo не нужен при работе в консоли сервера.
⇨ SSH – Тонкая настройка клиента в Linux: config файл и ssh-agent
Примеры некоторых настроек клиента SSH, а также использование ssh-agent.
⇨ Ollama — Локальный ИИ на вашем Linux ПК
Установка Ollama и запуск на ней бесплатных моделей разной сложности.
⇨ RabbitMQ. Практика. Troubleshooting. CLI. Отсутствует утилита rabbitmqadmin
Небольшая заметка по установке консольной утилиты rabbitmqadmin.
⇨ Как полностью удалить Microsoft Office с компьютера
Использование утилиты Office Scrubber для очистки компа от следов офиса.
⇨ Основы SQL на примере PostgreSQL
База по синтаксису SQL на основе примеров в PostgreSQL.
#статьи
⇨ Разрабатываем мини-автоматизацию по оповещению администратора о факте НСД в Astra Linux
Оповещения администратора безопасности при попытках подключения незарегистрированных носителей информации к Astra Linux. Реализовано через правило udev, которое запускает скрипт при подключении носителя, скрипт отправляет запись в локальный syslog сервер, а тот пересылает в удалённый.
⇨ Человеческий фактор или вредные советы по Astra Linux
Несколько примеров из практики на тему того, как не работают внедрённые регламенты и правила.
⇨ Установка Astra Linux 1.8. Как установить и что нового?
Подробная статья на тему установки новой Astra Linux 1.8 от создания загрузочной флешки до разбивки диска и начальной настройки.
🔥 Windows и оперативная память
Подробная статья на тему работы с памятью в Windows: чем виртуальная отличается от физической, как происходит выделение памяти процессам, что такое рабочий набор, swap и др. Работа с утилитами RAMMap, Process Explorer, Testlimit, Strings, NotMyFault и poolmon. Кому не интересно всё это, можете перемотать в раздел Диспетчер задач Windows и память и посмотреть описание метрик памяти в диспетчере задач.
⇨ Как установить сертификат ECC (Elliptic Curve Cryptography) в Exchange Server
ECC сертификаты приехали в Exchange. Я давно начал их использовать для SSH и вам советую. Если быть точным, ECC - это алгоритм Elliptic Curve Cryptography (криптография на эллиптических кривых), а я имею ввиду ключи на базе алгоритма Ed25519, который основан на эллиптических кривых.
⇨ Как установить RSAT на Windows 11
Установка Remote Server Administration Tools для управления различными ролями Windows Server: AD, DNS, DHCP и другие.
⇨ Как исправить спам-сообщения в средстве просмотра очереди Exchange Server
Письма, отправленные на несуществующие адреса в вашем домене, обрабатываются, формируются отчёты о недоставке (NDR) и отправляются обратно отправителю. В статье рассказано, как с этим бороться.
⇨ Как настроить учетную запись службы для присоединения к домену
Создание учётки с ограниченными правами, предназначенной только для присоединения устройств к домену.
⇨ Установка контроллера ZeroTier на свой сервер с помощью ZTNET
Selfhosted размещение ZeroTier контроллера со встроенной панелью администратора.
⇨ Построение защищенных виртуальных сетей с помощью Nebula
Объединение распределенных устройств в отдельную изолированную сеть с помощью Nebula.
⇨ Собираем docker образ DNS сервера Unbound
Создание собственного Docker образа популярного DNS сервера. Процесс рассмотрен очень подробно, так что материал можно использовать как пример сборки собственных образов других сервисов.
⇨ Поднимаем свой DNS сервер Unbound и блокировщик рекламы Pihole в docker
К собранному ранее образу с Unbound добавляется Pi-hole для блокировки рекламы.
⇨ Пользователи в Linux
Небольшая справочная статья по работе с пользователями в Linux - создание, удаление и т.д.
⇨ Использование sudo в Linux
База по установке и настройке Sudo. Кому любопытно, когда-то давно я написал статью Sudo не нужен при работе в консоли сервера.
⇨ SSH – Тонкая настройка клиента в Linux: config файл и ssh-agent
Примеры некоторых настроек клиента SSH, а также использование ssh-agent.
⇨ Ollama — Локальный ИИ на вашем Linux ПК
Установка Ollama и запуск на ней бесплатных моделей разной сложности.
⇨ RabbitMQ. Практика. Troubleshooting. CLI. Отсутствует утилита rabbitmqadmin
Небольшая заметка по установке консольной утилиты rabbitmqadmin.
⇨ Как полностью удалить Microsoft Office с компьютера
Использование утилиты Office Scrubber для очистки компа от следов офиса.
⇨ Основы SQL на примере PostgreSQL
База по синтаксису SQL на основе примеров в PostgreSQL.
#статьи
Покажу небольшой bash трюк, который поможет грепнуть информацию, когда обычный способ не работает. Демонстрирую сразу на примере, с которым сам постоянно сталкиваюсь.
Вам нужно узнать, есть ли необходимый модуль в составе Nginx. По идее всё просто:
На выходе портянка, в которой глазами трудно что-то найти. Пробуем грепнуть:
Вообще ноль изменений. И причины тут на самом деле не одна, а сразу две:
1️⃣ nginx -V выводит информацию не в стандартный поток с данными stdout, с которым работает grep и прочие консольные утилиты, а в stderr;
2️⃣ все модули перечислены одной строкой, так что грепнуть её содержимое не получится.
Показываю решение обоих проблем:
Видим нужный нам модуль. Я сначала через
В принципе, можно обойтись без разбивки одной строки на несколько, так как grep скорее всего подсветит найденную фразу, но это зависит от различных настроек. Где-то может и не подсветить. Если всё же разбить, то будет нагляднее.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bash
Вам нужно узнать, есть ли необходимый модуль в составе Nginx. По идее всё просто:
# nginx -V
На выходе портянка, в которой глазами трудно что-то найти. Пробуем грепнуть:
# nginx -V | grep http_realip_module
Вообще ноль изменений. И причины тут на самом деле не одна, а сразу две:
Показываю решение обоих проблем:
# nginx -V 2>&1 | tr ' ' '\n' | grep http_realip_module
--with-http_realip_module
Видим нужный нам модуль. Я сначала через
2>&1
направил поток stderr в stdout, чтобы с ним можно было работать консольными утилитами, а затем с помощью tr
заменил все пробелы символами перехода на новую строку \n
. В итоге у нас весь вывод nginx -V разбился на отдельные фразы, каждая в новой строке и после этого успешно грепнулся.В принципе, можно обойтись без разбивки одной строки на несколько, так как grep скорее всего подсветит найденную фразу, но это зависит от различных настроек. Где-то может и не подсветить. Если всё же разбить, то будет нагляднее.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bash
Please open Telegram to view this post
VIEW IN TELEGRAM
⚠️ Terraform меняет правила игры в DevOps. Хотите освоить инструмент, с которым инфраструктура развертывается в несколько кликов?
⏰ На открытом вебинаре 20 мая в 20:00 МСК вы узнаете, как Terraform делает инфраструктуру управляемой, прозрачной и масштабируемой. Разберём ключевые понятия: провайдеры, состояние, модули и переменные. Вы узнаете, почему IaC стал золотым стандартом DevOps.
💪 Научитесь автоматизировать развёртывание ресурсов, избавьтесь от рутинной ручной работы и освободите время на действительно важные задачи.
👉 Регистрируйтесь прямо сейчас и получите скидку на программу обучения «DevOps-практики и инструменты»: https://clck.ru/3M6C8k
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
⏰ На открытом вебинаре 20 мая в 20:00 МСК вы узнаете, как Terraform делает инфраструктуру управляемой, прозрачной и масштабируемой. Разберём ключевые понятия: провайдеры, состояние, модули и переменные. Вы узнаете, почему IaC стал золотым стандартом DevOps.
💪 Научитесь автоматизировать развёртывание ресурсов, избавьтесь от рутинной ручной работы и освободите время на действительно важные задачи.
👉 Регистрируйтесь прямо сейчас и получите скидку на программу обучения «DevOps-практики и инструменты»: https://clck.ru/3M6C8k
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Парочка наглядных примеров вранья ИИ, в частности ChatGPT. Последнее время регулярно им пользуюсь, практически каждый день, для решения различных задач и поиска информации. Фактически он мне стал заменять поиск. Я не использую каких-то больших промтов для решения масштабных задач. Скорее использую его как базу данных и расширенный поиск. Соответственно и пишу туда примерно то же самое, что я бы спросил у поисковика. Результат получается лучше.
При этом постоянно сталкиваюсь с тем, что ИИ врёт. Просто сходу придумывает факты, решения, ключи к утилитам и т.д. При этом не ставит под сомнение свои ответы, не делает акцент на том, что вот тут я выдумываю и могу быть не прав. Так как я уже специалист с опытом, мне это больших проблем не доставляет.
А как быть тем, кто только учится и использует в качестве помощника ИИ? По идее это делать нельзя, а в процессе обучения и наработки опыта вообще противопоказанно им пользоваться. Нужно всё перепроверять, а это потеря времени. А если ты не специалист, то узнаешь, что надо перепроверять только тогда, когда уже случится ошибка и тебе на неё кто-то укажет.
В примере с mount ошибка сразу видна, а вот в первом неочевидна, так как проверить её весьма затратно. И если перепроверять все результаты, которые выдал ИИ, то окажется, что самому составить список было бы быстрее. И такое случается нередко. Иногда ИИ ходит вокруг да около решения, предлагая тебе нерабочие варианты, а на отладку тратится времени больше, чем если бы ты сам его сделал с помощью подсказок со stackoverflow.
У меня отношение средненькое к современным ИИ. Зачастую не понимаю восторгов в их адрес. Да, пользоваться можно и нужно. Результат хороший в вопросах анализа и обобщения информации, клонировании контента в заданном стиле с заданными правками, создания изображений, инфографики. И очень посредственный в создании чего-то нового. Те же скрипты он пишет, но без отладки и исправления ошибок практически никогда не обходится. И это в довольно простых задачах, которые в общем-то можно сходу нагуглить. Более сложные не пытался решать, так как задач под это нет. Возможно у программистов другие выводы по этой теме.
#AI #chatgpt
При этом постоянно сталкиваюсь с тем, что ИИ врёт. Просто сходу придумывает факты, решения, ключи к утилитам и т.д. При этом не ставит под сомнение свои ответы, не делает акцент на том, что вот тут я выдумываю и могу быть не прав. Так как я уже специалист с опытом, мне это больших проблем не доставляет.
А как быть тем, кто только учится и использует в качестве помощника ИИ? По идее это делать нельзя, а в процессе обучения и наработки опыта вообще противопоказанно им пользоваться. Нужно всё перепроверять, а это потеря времени. А если ты не специалист, то узнаешь, что надо перепроверять только тогда, когда уже случится ошибка и тебе на неё кто-то укажет.
В примере с mount ошибка сразу видна, а вот в первом неочевидна, так как проверить её весьма затратно. И если перепроверять все результаты, которые выдал ИИ, то окажется, что самому составить список было бы быстрее. И такое случается нередко. Иногда ИИ ходит вокруг да около решения, предлагая тебе нерабочие варианты, а на отладку тратится времени больше, чем если бы ты сам его сделал с помощью подсказок со stackoverflow.
У меня отношение средненькое к современным ИИ. Зачастую не понимаю восторгов в их адрес. Да, пользоваться можно и нужно. Результат хороший в вопросах анализа и обобщения информации, клонировании контента в заданном стиле с заданными правками, создания изображений, инфографики. И очень посредственный в создании чего-то нового. Те же скрипты он пишет, но без отладки и исправления ошибок практически никогда не обходится. И это в довольно простых задачах, которые в общем-то можно сходу нагуглить. Более сложные не пытался решать, так как задач под это нет. Возможно у программистов другие выводы по этой теме.
#AI #chatgpt
Искал на днях материалы на тему Playwright. Это фреймворк для веб тестирования и автоматизации, более современный аналог Selenium. Последний я немного учил, но он довольно замороченный, с полтычка не освоишь. Playwright показался немного попроще в каких-то базовых вещах.
Рассказать сегодня хотел не об этом. Я попал на сайт к какому-то девопсу, где были материалы по Playwright. Я немного походил по нему и набрёл на раздел DevTools. Он там собрал то ли свои, то ли просто open source инструменты для решения простых прикладных задач. Вроде ничего особенного, но некоторые вещи я просто не знал, что вообще существуют. Всегда их делал вручную.
Покажу сразу на примерах, что мне показалось полезным:
- Docker Run to Docker Compose Converter
Отправляем в форму однострочник с
- Docker Compose to Docker Run Converter
И соответственно в обратную сторону преобразование из docker compose в однострочник для
- Bash Command Formatter
Эта штука тоже очень понравилась. Она длинный однострочник разбивает на строки с переходами через \ То есть вот такую колбасу:
Нарезает на кусочки:
Я тоже всегда это вручную делал, особенно для публикации сюда. Можно упростить себе задачу.
- URL Extractor
Просто кидаешь сюда любой текст, а на выходе получаешь набор ссылок, если они в нём присутствуют.
Там много всяких конвертеров и анализаторов синтаксиса для json, yaml, toml, csv. Не стал обращать на них внимание, так как их существует десятки. Обычно просто в гугле ищут что-то подобное, когда надо преобразовать. Посмотрите список, может вам что-то ещё приглянётся. Меня впечатлили только эти четыре штуки.
#devops #docker #bash
Рассказать сегодня хотел не об этом. Я попал на сайт к какому-то девопсу, где были материалы по Playwright. Я немного походил по нему и набрёл на раздел DevTools. Он там собрал то ли свои, то ли просто open source инструменты для решения простых прикладных задач. Вроде ничего особенного, но некоторые вещи я просто не знал, что вообще существуют. Всегда их делал вручную.
Покажу сразу на примерах, что мне показалось полезным:
- Docker Run to Docker Compose Converter
Отправляем в форму однострочник с
docker run
и получаем файл для docker compose. Вроде мелочь, но я всегда это делал вручную. Не думал, что кому-то придёт в голову написать конвертер.- Docker Compose to Docker Run Converter
И соответственно в обратную сторону преобразование из docker compose в однострочник для
docker run
. Не припоминаю, чтобы мне приходилось такие преобразования делать, но в тему к первому упоминаю.- Bash Command Formatter
Эта штука тоже очень понравилась. Она длинный однострочник разбивает на строки с переходами через \ То есть вот такую колбасу:
curl -v --url "smtp://mail.server.ru:25" --mail-from "root@server.ru" --mail-rcpt "user@gmail.com" --user 'root@server.ru:password123' --upload-file ~/mail.txt
Нарезает на кусочки:
curl -v \
--url "smtp://mail.server.ru:25" \
--mail-from "root@server.ru" \
--mail-rcpt "user@gmail.com" \
--user 'root@server.ru:password123' \
--upload-file ~/mail.txt
Я тоже всегда это вручную делал, особенно для публикации сюда. Можно упростить себе задачу.
- URL Extractor
Просто кидаешь сюда любой текст, а на выходе получаешь набор ссылок, если они в нём присутствуют.
Там много всяких конвертеров и анализаторов синтаксиса для json, yaml, toml, csv. Не стал обращать на них внимание, так как их существует десятки. Обычно просто в гугле ищут что-то подобное, когда надо преобразовать. Посмотрите список, может вам что-то ещё приглянётся. Меня впечатлили только эти четыре штуки.
#devops #docker #bash
«Скорость, экономия, контроль: как управлять проектами и клиентским сервисом в единой системе»
Покажем, как на платформе ITSM 365 создать типовой клиентский проект, а затем бесшовно и с минимумом затрат перейти к сервисному обслуживанию.
Что еще узнаете на встрече:
👉 Какие инструменты есть в системе для быстрого запуска проекта и контроля над его ходом
👉 Простая коммуникация между командами и с заказчиками: каким образом?
👉 Какие данные наследует сервисная поддержка после реализации проекта. Спойлер:
👉 Быстрый старт обслуживания: как подготовить систему к приему заявок за 15 минут
👉 Как автоматизировать рутину и вести всю работу по проектам и сервису в едином окне
👉 Аналитика по проектам и поддержке: что умеет оценивать система и насколько гибко ее можно настроить?
Нажмите, чтобы зарегистрироваться.
Ждем вас!
Обзор платформы от автора канала:
⇨ Обзор ITSM 365 – Service Desk система для малого и среднего бизнеса
Реклама, ООО «Смартнат» 6658396257, erid: 2SDnjc472kd
Please open Telegram to view this post
VIEW IN TELEGRAM
Часто возникают ситуации, когда хочется силами веб сервера закрыть доступ к какому-то непубличному ресурсу. Причём не обязательно у этого ресурса нет своей аутентификации. Если нет явной необходимости то и её стоит закрыть от посторонних глаз. Расскажу, какими способами это можно сделать в веб сервере Angie/Nginx.
1️⃣ Basic Authentication. Самый простой и быстрый способ, известный очень давно. Для аутентификации используется текстовый файл с сохранёнными там парами логин-пароль. Очевидное неудобство – этот файл нужно вести отдельно от любых других хранилищ учётных записей.
2️⃣ Модуль ngx_http_auth_request_module. Это модуль от команды Nginx, который работает относительно просто. Он создаёт подзапрос к какому-то внешнему сервису и если получает от него код ответа 2xx, доступ разрешается, если 401 и 403, то запрещается. В качестве внешнего сервиса могут использоваться разные системы с разными бэкендами для хранения учётных данных. Например, для аутентификации через LDAP обычно используют nginx-ldap-auth. Полная схема работы с ним есть в статье на сайте Nginx.
Удобство этой схемы в том, что конфигурация веб сервера не содержит в себе логики аутентификации, не привязана к ней. А внешний сервис может располагаться где угодно.
3️⃣ Модуль ngx_http_auth_ldap_module. Это внешний модуль стороннего разработчика для аутентификации через внешний LDAP сервис. Его отличие от предыдущего варианта в намного более простой настройке. Вся логика подключения к LDAP каталогу настраивается в конфигурации веб сервера. Он делает все запросы к каталогу и выполняет аутентификацию.
4️⃣ Модуль ngx_http_auth_spnego_module. Этот модуль позволяет настроить аутентификацию через Active Directory с помощью Kerberos. Его удобство относительно описанных выше способов в том, что если у вас браузер поддерживает сквозную аутентификацию Kerberos, то доменные пользователи будут автоматически попадать на закрытые ресурсы без необходимости отдельно вводить учётные данные.
5️⃣ Сервис SSO, например, Authentik. Решил вынести этот способ в отдельный пункт, хотя это и не совсем корректно. Это может быть комбинация различных методов аутентификации, так как тот же Authentik, к примеру, может выступать в качестве LDAP каталога, либо реализовывать тот же метод Basic Authentication, только с хранением учётных данных у себя.
Если будете использовать внешние модули, то удобнее взять Angie, так как там в базовом репозитории они все уже есть. Для Nginx скорее всего что-то придётся собирать самому в зависимости от дистрибутива. Где-то в репозиториях есть модули, где-то нет.
Современным и удобным способом является использование сервиса SSO. Наиболее известные - Keycloak, Authentik, Authelia, ZITADEL. Список составлен от сложного и тяжёлого к более простому и лёгкому. Они реализуют в том числе современные технологии типа OAuth2, OTP (one-time password), OpenID Connect и т.д. Но и, соответственно, требуют больше внимания и времени на настройку. Если какой-то модуль Nginx можно быстро установить и настроить, то с SSO придётся повозиться. Для простых ситуаций это может быть неоправданно.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#nginx #angie
Удобство этой схемы в том, что конфигурация веб сервера не содержит в себе логики аутентификации, не привязана к ней. А внешний сервис может располагаться где угодно.
Если будете использовать внешние модули, то удобнее взять Angie, так как там в базовом репозитории они все уже есть. Для Nginx скорее всего что-то придётся собирать самому в зависимости от дистрибутива. Где-то в репозиториях есть модули, где-то нет.
Современным и удобным способом является использование сервиса SSO. Наиболее известные - Keycloak, Authentik, Authelia, ZITADEL. Список составлен от сложного и тяжёлого к более простому и лёгкому. Они реализуют в том числе современные технологии типа OAuth2, OTP (one-time password), OpenID Connect и т.д. Но и, соответственно, требуют больше внимания и времени на настройку. Если какой-то модуль Nginx можно быстро установить и настроить, то с SSO придётся повозиться. Для простых ситуаций это может быть неоправданно.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#nginx #angie
Please open Telegram to view this post
VIEW IN TELEGRAM
Nginx
Restricting Access with HTTP Basic Authentication
Control access using HTTP Basic authentication, and optionally in combination with IP address-based access control.
⚠️ Как настроить Nginx и Angie для стабильной и быстрой работы при большом количестве запросов?
👉 Приглашаем на вебинар: Оптимизация Nginx и Angie под высокие нагрузки
На вебинаре вы узнаете:
- Как оптимизировать системные параметры для повышения производительности
- Как правильно настроить TLS и сократить накладные расходы на шифрование
- Какие возможности по кэшированию есть у Nginx и Angie и как их эффективно использовать
- Как измерять и анализировать клиентскую и серверную производительность
В результате вебинара вы:
- Научитесь выявлять и настраивать ключевые параметры, влияющие на производительность
- Сможете оптимизировать конфигурацию Nginx и Angie под конкретные сценарии нагрузки
- Попробуете применять техники кэширования и настройки TLS для снижения нагрузки
- Поймёте, как оценивать эффективность настройки и устранять узкие места
Все участники получат скидку на большое обучение «Инфраструктура высоконагруженных систем».
👉 Для участия зарегистрируйтесь: https://clck.ru/3M9Dua
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👉 Приглашаем на вебинар: Оптимизация Nginx и Angie под высокие нагрузки
На вебинаре вы узнаете:
- Как оптимизировать системные параметры для повышения производительности
- Как правильно настроить TLS и сократить накладные расходы на шифрование
- Какие возможности по кэшированию есть у Nginx и Angie и как их эффективно использовать
- Как измерять и анализировать клиентскую и серверную производительность
В результате вебинара вы:
- Научитесь выявлять и настраивать ключевые параметры, влияющие на производительность
- Сможете оптимизировать конфигурацию Nginx и Angie под конкретные сценарии нагрузки
- Попробуете применять техники кэширования и настройки TLS для снижения нагрузки
- Поймёте, как оценивать эффективность настройки и устранять узкие места
Все участники получат скидку на большое обучение «Инфраструктура высоконагруженных систем».
👉 Для участия зарегистрируйтесь: https://clck.ru/3M9Dua
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Существует удобный и функциональный инструмент для добавления интерактива в shell скрипты под названием Gum. Я посмотрел несколько примеров, в том числе на ютубе, как люди решают те или иные задачи с его помощью. Синтаксис очень простой, особо разбираться не надо. Можно сходу брать и писать скрипт.
Я для примера решил сделать поиск по директории с выводом топ 10 самых больших файлов, из которых можно какие-то выбрать и удалить. Сделал просто в лоб на bash – сформировал список, отправил его в gum и добавил действие для выбранных файлов:
Понял, что всё получилось и решил как-то это усложнить и сделать более удобным. Дай, думаю, попрошу Chatgpt что-то написать. На самом деле не рассчитывал на успех, так как это не особо популярный инструмент. Откуда ему взять навык написания скриптов для gum? Вряд ли их много в интернете можно найти.
Отправил ему адрес репозитория и попросил сделать 2 списка: один с самыми большими файлами, второй – с самыми старыми. Причём вывести их вместе на один экран, в списках отобразить размер файлов и их даты.
Задача не сильно сложная, но немного муторная, так как списки надо правильно сформировать, объединить, пункты выбора насытить дополнительной информацией в виде размера файлов и даты. Потом всё это надо очистить, чтобы передать на удаление только имя файла. Чтобы самому это сделать, надо потратить какое-то время.
Chatgpt меня удивил, когда практически сразу же выдал рабочее решение. Там были ошибки по части bash. Нужно было что-то экранировать, а что-то получше очистить. А вот в части непосредственно Gum он на удивление сразу же всё корректно оформил в соответствии с его возможностями. Я думал, что-то выдумает от себя нерабочее, но нет.
В итоге минут за 15-20 со всеми тестами я получил рабочий вариант скрипта. Реально, был очень удивлён. Не так давно его мучал конфигурациями Nginx, по которым море примеров в сети, но так и не добился того, что хотел. А тут какой-то Gum и сразу всё заработало.
☝️ Какое в итоге резюме. Gum – прикольная штука, которую можно приспособить под какие-то свои задачи. Например, выбор подключений по SSH, работа с ветками GIT, работа со списками файлов и т.д. Тут уж каждому своё. А второй момент – используйте ИИ для своих задач. Где-то он мимо советует, а где-то сразу рабочий вариант даёт. Причём в таких небольших прикладных задачах он нормально работает. На bash пишет уверенно. Есть проблемы, но поправить после него намного проще, чем написать самому, вспомнив все возможности и ключи консольных утилит.
⇨ Итоговый скрипт
Использовать:
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bash #AI #script
Я для примера решил сделать поиск по директории с выводом топ 10 самых больших файлов, из которых можно какие-то выбрать и удалить. Сделал просто в лоб на bash – сформировал список, отправил его в gum и добавил действие для выбранных файлов:
#!/bin/bash
DIR="/tmp/backup"
files=$(find "$DIR" -type f -exec du -b {} + 2>/dev/null | sort -nr | head -n 10 | awk '{print $2}')
selected=$(echo "$files" | gum choose --no-limit)
delete=$(echo -e "$selected")
if [[ -z "$delete" ]]; then
echo "Ничего не выбрано."
exit 0
fi
gum confirm "Удалить выбранные файлы?" &&
echo "$delete" | xargs -d '\n' rm -f && echo "Выбранное удалено."
Понял, что всё получилось и решил как-то это усложнить и сделать более удобным. Дай, думаю, попрошу Chatgpt что-то написать. На самом деле не рассчитывал на успех, так как это не особо популярный инструмент. Откуда ему взять навык написания скриптов для gum? Вряд ли их много в интернете можно найти.
Отправил ему адрес репозитория и попросил сделать 2 списка: один с самыми большими файлами, второй – с самыми старыми. Причём вывести их вместе на один экран, в списках отобразить размер файлов и их даты.
Задача не сильно сложная, но немного муторная, так как списки надо правильно сформировать, объединить, пункты выбора насытить дополнительной информацией в виде размера файлов и даты. Потом всё это надо очистить, чтобы передать на удаление только имя файла. Чтобы самому это сделать, надо потратить какое-то время.
Chatgpt меня удивил, когда практически сразу же выдал рабочее решение. Там были ошибки по части bash. Нужно было что-то экранировать, а что-то получше очистить. А вот в части непосредственно Gum он на удивление сразу же всё корректно оформил в соответствии с его возможностями. Я думал, что-то выдумает от себя нерабочее, но нет.
В итоге минут за 15-20 со всеми тестами я получил рабочий вариант скрипта. Реально, был очень удивлён. Не так давно его мучал конфигурациями Nginx, по которым море примеров в сети, но так и не добился того, что хотел. А тут какой-то Gum и сразу всё заработало.
☝️ Какое в итоге резюме. Gum – прикольная штука, которую можно приспособить под какие-то свои задачи. Например, выбор подключений по SSH, работа с ветками GIT, работа со списками файлов и т.д. Тут уж каждому своё. А второй момент – используйте ИИ для своих задач. Где-то он мимо советует, а где-то сразу рабочий вариант даёт. Причём в таких небольших прикладных задачах он нормально работает. На bash пишет уверенно. Есть проблемы, но поправить после него намного проще, чем написать самому, вспомнив все возможности и ключи консольных утилит.
⇨ Итоговый скрипт
Использовать:
# ./cleanup-with-gum.sh /mnt/backup
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bash #AI #script
Современная веб разработка и частично эксплуатация плотно завязаны на Docker контейнеры. Они используются повсеместно. Недавние истории с временной блокировкой docker hub и внедрением новых лимитов одним днём усложнили жизнь тем, кто завязан на публичное хранилище образов в виде Docker Hub. При этом нет никаких проблем использовать своё Docker Registry, причём как для хранения своих образов, так и кэширования запросов с Docker Hub.
Использовать своё хранилище образов имеет смысл уже при наличии хотя бы пары разработчиков, которые с ними работают. Я уже кратенько упоминал, что существуют различные бесплатные self-hosted решения:
🔹Gitlab Registry или Gitea Registry. Их имеет смысл использовать, если у вас используется одноимённая инфраструктура для хранения кода. С Gitlab Registry проблем особых нет, кроме некоторых заморочек с проксированием, а у Gitea Registry после релиза были некоторые баги. Сейчас не знаю как, наверное уже поправили.
🔹Nexus - известное хранилище для репозиториев и Docker образов. Это комбайн, где можно хранить всё, что угодно: deb и rpm репы, репозиторий контейнеров, npm репозиторий, pypi и многие другие. Если у вас задача только для Docker, то наверное такой комбайн большого смысла использовать нет. Хотя каких-то особых проблем с установкой и настройкой не будет. Я не раз его настраивал. Установить и запустить в работу относительно просто. Всё управление через веб интерфейс.
🔹Docker Registry - продукт от самого Docker. Это был маленький легковесный проект без GUI. Сейчас глянул, а он уже deprecated, его кому-то отдали и переименовали в Distribution. Не знаю даже, что про него сказать. Описание куцее. Посмотрел документацию. На вид это продолжение того же небольшого проекта без GUI, что не очень удобно. Есть веб интерфейс от стороннего разработчика - docker-registry-ui.
🔹Harbor. На нём я хочу остановиться подробно. Это самостоятельное open source хранилище для образов Docker с встроенным веб интерфейсом и хорошим набором возможностей в open source версии. Вот основные:
◽️управление доступом на основе ролей (RBAC)
◽️поддержка LDAP для аутентификации
◽️автоматическая проверка образов с помощью Trivy
◽️режим работы как proxy/кэш-сервер для Docker Hub или других Registry
Имеем универсальное, бесплатное и функциональное решение для собственного хранилища образов. Для небольшой установки подойдёт обычная VPS с 2CPU и 4GB оперативной памяти. Показываю пошаговую установку:
В конфигурации надо указать:
Для использования HTTPS надо предварительно получить сертификаты и указать их:
Можно получить как бесплатные от Let's Encrypt, так и использовать самоподписанные. Я получил бесплатные так:
Укажите пароль для admin и место для хранилища образов. Остальные настройки можно не трогать.
Устанавливаем Harbor:
Дожидаемся загрузки и запуска всех контейнеров. После этого идём в веб интерфейс по настроенному ранее домену. Логинимся под учётной записью admin и паролем из конфигурации.
В разделе Registries добавляем Endpoint и указываем Provider - Docker Hub. Cоздаём новый проект, ставим галочку Proxy Cache, указываем созданный Endpoint.
На рабочей машине логинимся:
Сache - имя созданного проекта. Образ nginx будет скачан через Harbor и останется там в кэше.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#devops #docker
Использовать своё хранилище образов имеет смысл уже при наличии хотя бы пары разработчиков, которые с ними работают. Я уже кратенько упоминал, что существуют различные бесплатные self-hosted решения:
🔹Gitlab Registry или Gitea Registry. Их имеет смысл использовать, если у вас используется одноимённая инфраструктура для хранения кода. С Gitlab Registry проблем особых нет, кроме некоторых заморочек с проксированием, а у Gitea Registry после релиза были некоторые баги. Сейчас не знаю как, наверное уже поправили.
🔹Nexus - известное хранилище для репозиториев и Docker образов. Это комбайн, где можно хранить всё, что угодно: deb и rpm репы, репозиторий контейнеров, npm репозиторий, pypi и многие другие. Если у вас задача только для Docker, то наверное такой комбайн большого смысла использовать нет. Хотя каких-то особых проблем с установкой и настройкой не будет. Я не раз его настраивал. Установить и запустить в работу относительно просто. Всё управление через веб интерфейс.
🔹Docker Registry - продукт от самого Docker. Это был маленький легковесный проект без GUI. Сейчас глянул, а он уже deprecated, его кому-то отдали и переименовали в Distribution. Не знаю даже, что про него сказать. Описание куцее. Посмотрел документацию. На вид это продолжение того же небольшого проекта без GUI, что не очень удобно. Есть веб интерфейс от стороннего разработчика - docker-registry-ui.
🔹Harbor. На нём я хочу остановиться подробно. Это самостоятельное open source хранилище для образов Docker с встроенным веб интерфейсом и хорошим набором возможностей в open source версии. Вот основные:
◽️управление доступом на основе ролей (RBAC)
◽️поддержка LDAP для аутентификации
◽️автоматическая проверка образов с помощью Trivy
◽️режим работы как proxy/кэш-сервер для Docker Hub или других Registry
Имеем универсальное, бесплатное и функциональное решение для собственного хранилища образов. Для небольшой установки подойдёт обычная VPS с 2CPU и 4GB оперативной памяти. Показываю пошаговую установку:
# curl https://get.docker.com | bash -
# wget https://github.com/goharbor/harbor/releases/download/v2.12.3/harbor-online-installer-v2.12.3.tgz
# tar xzvf harbor-online-installer-v2.12.3.tgz
# cd harbor/
# cp harbor.yml.tmpl harbor.yml
В конфигурации надо указать:
hostname: domain.example.com # или IP-адрес
Для использования HTTPS надо предварительно получить сертификаты и указать их:
https:
port: 443
certificate: /etc/letsencrypt/live/338365.simplecloud.ru/fullchain.pem
private_key: /etc/letsencrypt/live/338365.simplecloud.ru/privkey.pem
Можно получить как бесплатные от Let's Encrypt, так и использовать самоподписанные. Я получил бесплатные так:
# apt install certbot
# certbot certonly -d 338365.simplecloud.ru
Укажите пароль для admin и место для хранилища образов. Остальные настройки можно не трогать.
harbor_admin_password: Harbor12345
data_volume: /data
Устанавливаем Harbor:
# ./prepare
# ./install.sh --with-trivy
Дожидаемся загрузки и запуска всех контейнеров. После этого идём в веб интерфейс по настроенному ранее домену. Логинимся под учётной записью admin и паролем из конфигурации.
В разделе Registries добавляем Endpoint и указываем Provider - Docker Hub. Cоздаём новый проект, ставим галочку Proxy Cache, указываем созданный Endpoint.
На рабочей машине логинимся:
# docker login <harbor-host>
# docker pull <harbor-host>/cache/nginx
Сache - имя созданного проекта. Образ nginx будет скачан через Harbor и останется там в кэше.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#devops #docker
🌐 Роль и задачи DevOps в современном IT
На открытом уроке рассмотрим:
- что меняется в DevOps;
- актуальные инструменты DevOps инженера;
- сравним DevOps c SRE, Platform Engineer.
После занятий вы будете знать:
- в чем различия и пересечения между ролями DevOps и SRE (Site Reliability Engineering);
- об актуальных трендах и изменениях в методологиях DevOps;
- об актуальных инструментах DevOps инженера.
👉 Регистрация и подробности о курсе DevOps Advanced: https://clck.ru/3MATuc
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке рассмотрим:
- что меняется в DevOps;
- актуальные инструменты DevOps инженера;
- сравним DevOps c SRE, Platform Engineer.
После занятий вы будете знать:
- в чем различия и пересечения между ролями DevOps и SRE (Site Reliability Engineering);
- об актуальных трендах и изменениях в методологиях DevOps;
- об актуальных инструментах DevOps инженера.
👉 Регистрация и подробности о курсе DevOps Advanced: https://clck.ru/3MATuc
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Столкнулся вчера со странной ошибкой на одном из веб серверов. В мониторинг прилетело оповещение, что протухает сертификат от Let's Encrypt через 10 дней. Если всё нормально, то такого быть не должно, так как он должен обновиться за 20 дней до протухания.
Иду на сервер разбираться. Запускаю обновление и получаю странную ошибку:
Судя по всему сетевая ошибка. Делаю в консоли простой запрос:
Он отваливается по таймауту. Пробую пинговать acme-v02.api.letsencrypt.org, не пингуется. Думаю, может с DNS проблемы. Иду на другие сервера, проверяю. Везде этот домен нормально резолвится и отвечает. И на этом сервере отвечал раньше, сертификаты же регулярно обновлялись.
Пингую этот домен по IP адресу, тоже нет ответа. Призадумался. Думаю, неужели этот сервер так жёстко забанили в сервисе, что ему даже на icmp запросы отвечать перестали. Проверяю
Начинаю выборочно пинговать разные адреса. И тут начинаются чудеса. Например, не пингуются 8.8.8.8 и 8.8.4.4, но при этом пингуется 1.1.1.1 и многие другие. Смотрю системные логи, никаких ошибок. Не понимаю, что происходит.
Пошёл в панель управления хостера и создал запрос, описав ситуацию. С других серверов этого хостера всё нормально работает, все адреса доступны. Я сначала решил, что это какие-то сетевые проблемы со стороны инфраструктуры хостера. Потом вспомнил, что этот веб сервер работает в виртуальной машине. Захожу на гипервизор, проверяю эти же адреса там – всё в порядке. Они доступны.
Тикет отменил, успел написать текст, приложить скрин, но не отправил. Ещё раз внимательно посмотрел на сервер. В исходящих правилах файрвола никаких запретов, в системных логах никаких ошибок. Не понимаю, в чём проблема.
«Семь бед – один Reset»
Перезагружаю сервер, захожу, проверяю. Всё в порядке. Все адреса доступны, сертификаты обновились.
Первый раз с таким сталкиваюсь. Хотя смутно припоминаю, что вроде как-то раз что-то подобное было и тоже вылечил перезагрузкой. Но никаких подробностей не помню. Если и было, то очень давно. У кого-нибудь есть идеи, что это могло быть? Уже когда сервер перезагрузился, я подумал, что возможно были какие-то проблемы в таблице маршрутизации, но после перезагрузки там уже всё в порядке. Ничего необычного не было.
#ошибка
Иду на сервер разбираться. Запускаю обновление и получаю странную ошибку:
ERROR: Problem connecting to server (get for https://acme-v02.api.letsencrypt.org/directory; curl returned with 7)
Судя по всему сетевая ошибка. Делаю в консоли простой запрос:
# curl https://acme-v02.api.letsencrypt.org/directory
Он отваливается по таймауту. Пробую пинговать acme-v02.api.letsencrypt.org, не пингуется. Думаю, может с DNS проблемы. Иду на другие сервера, проверяю. Везде этот домен нормально резолвится и отвечает. И на этом сервере отвечал раньше, сертификаты же регулярно обновлялись.
Пингую этот домен по IP адресу, тоже нет ответа. Призадумался. Думаю, неужели этот сервер так жёстко забанили в сервисе, что ему даже на icmp запросы отвечать перестали. Проверяю
ping ya.ru
, работает. Да и сам веб сервер на вид в порядке. Всё работает, как обычно. Начинаю выборочно пинговать разные адреса. И тут начинаются чудеса. Например, не пингуются 8.8.8.8 и 8.8.4.4, но при этом пингуется 1.1.1.1 и многие другие. Смотрю системные логи, никаких ошибок. Не понимаю, что происходит.
Пошёл в панель управления хостера и создал запрос, описав ситуацию. С других серверов этого хостера всё нормально работает, все адреса доступны. Я сначала решил, что это какие-то сетевые проблемы со стороны инфраструктуры хостера. Потом вспомнил, что этот веб сервер работает в виртуальной машине. Захожу на гипервизор, проверяю эти же адреса там – всё в порядке. Они доступны.
Тикет отменил, успел написать текст, приложить скрин, но не отправил. Ещё раз внимательно посмотрел на сервер. В исходящих правилах файрвола никаких запретов, в системных логах никаких ошибок. Не понимаю, в чём проблема.
«Семь бед – один Reset»
Перезагружаю сервер, захожу, проверяю. Всё в порядке. Все адреса доступны, сертификаты обновились.
Первый раз с таким сталкиваюсь. Хотя смутно припоминаю, что вроде как-то раз что-то подобное было и тоже вылечил перезагрузкой. Но никаких подробностей не помню. Если и было, то очень давно. У кого-нибудь есть идеи, что это могло быть? Уже когда сервер перезагрузился, я подумал, что возможно были какие-то проблемы в таблице маршрутизации, но после перезагрузки там уже всё в порядке. Ничего необычного не было.
#ошибка
Вчера в публикации про сетевые проблемы в комментариях подписчик упомянул проблемы с сетевой картой Realtek. Я сталкивался с ними несколько раз и прилично натерпелся, так что мне есть что сказать. Возможно кому-то это сэкономит время, если столкнётся с похожими проблемами.
Проблема эта всплывает, когда ставишь Proxmox на десктопное железо. Я нередко его использовал для различных вспомогательных задач – тестирование бэкапов, временный запасной гипервизор и т.д. В прод ставить не рекомендую, хоть и будет работать, и может показаться это выгодным. Я всегда настаивал на покупке хоть какого, старого, бушного, но сервера на полноценной серверной платформе с IPMI.
Итак, проблемы могут возникнуть, когда у вас будет примерно такая сетевая карта:
По умолчанию у вас будет установлен драйвер r8169. Проверить так:
С ним сетевая карта может быть как вообще недоступна, так и на вид полностью рабочей, но с вероятностью непрогнозируемого зависания. Причём зависать она может очень редко, например, раз в месяц в момент сильной сетевой загрузки. Выглядит это так, что сеть как-будто вообще не работает. Причём проявляться это может как на гипервизоре, так и в каких-то отдельных виртуальных машинах. Они перестают быть доступны по сети.
Проблема может через 10 минут пройти сама, а может и нет, и поможет только перезагрузка. В логах могут быть какие-то упоминания проблем с сетевой картой, типа таких:
А может и вообще ничего не быть. Известное мне решение только одно – использовать драйвер r8168. Это решение широко освещено на официальном форуме Proxmox. Там можно найти множество веток с обсуждением подобной проблемы.
Драйвер можно скачать самому и собрать его. Взять можно, например, тут. Там есть инструкция по сборке, она несложная. Можно взять готовый пакет для Debian из non-free репозитория: r8168-dkms. Установить его можно так. Добавляем себе в систему репозитории non-free и non-free-firmware. То есть в файле
Ставим необходимые пакеты:
Во время установки r8168-dkms должен собраться и установиться драйвер r8168, а предыдущий r8169 отключиться и добавиться к заблокированным во время загрузки.
Есть ещё один пакет с этим драйвером, собранный специально под PVE. Я не знаю, чем он отличается от обычного дебиановского. Брать тут. Его достаточно просто скачать и установить:
Описанные выше действия могут как помочь, так и нет. Например, на одном сервере я вообще не видел сетевой карты. После установки драйвера r8168, она определялась в системе и начинала нормально работать. А иногда ничего не менялось и сеть как отваливалась периодически, так и продолжала отваливаться. Тогда приходилось делать что-то типа такого:
Ставил подобный bash скрипт в cron на исполнение каждую минуту. В моменты редких зависаний он перезапускал сеть и всё продолжало нормально работать.
☝️ А резюме всего этого такое. Если у вас сетевая карта Realtek, то либо замените её, либо не ставьте туда Proxmox. Есть высокая вероятность, что нормально он всё равно работать не будет, а вы только время потеряете на отладку и решение проблем.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#proxmox #ошибка
Проблема эта всплывает, когда ставишь Proxmox на десктопное железо. Я нередко его использовал для различных вспомогательных задач – тестирование бэкапов, временный запасной гипервизор и т.д. В прод ставить не рекомендую, хоть и будет работать, и может показаться это выгодным. Я всегда настаивал на покупке хоть какого, старого, бушного, но сервера на полноценной серверной платформе с IPMI.
Итак, проблемы могут возникнуть, когда у вас будет примерно такая сетевая карта:
# lspci | grep Ethernet
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
По умолчанию у вас будет установлен драйвер r8169. Проверить так:
# lsmod | grep r81
r8169
С ним сетевая карта может быть как вообще недоступна, так и на вид полностью рабочей, но с вероятностью непрогнозируемого зависания. Причём зависать она может очень редко, например, раз в месяц в момент сильной сетевой загрузки. Выглядит это так, что сеть как-будто вообще не работает. Причём проявляться это может как на гипервизоре, так и в каких-то отдельных виртуальных машинах. Они перестают быть доступны по сети.
Проблема может через 10 минут пройти сама, а может и нет, и поможет только перезагрузка. В логах могут быть какие-то упоминания проблем с сетевой картой, типа таких:
[01448.532276] r8169 0000:09:00.0 enp3s0: rtl_rxtx_empty_cond == 0 (loop: 42, delay: 100).
А может и вообще ничего не быть. Известное мне решение только одно – использовать драйвер r8168. Это решение широко освещено на официальном форуме Proxmox. Там можно найти множество веток с обсуждением подобной проблемы.
Драйвер можно скачать самому и собрать его. Взять можно, например, тут. Там есть инструкция по сборке, она несложная. Можно взять готовый пакет для Debian из non-free репозитория: r8168-dkms. Установить его можно так. Добавляем себе в систему репозитории non-free и non-free-firmware. То есть в файле
/etc/apt/sources.list
должна быть строка:deb http://ftp.ru.debian.org/debian bookworm main contrib non-free non-free-firmware
Ставим необходимые пакеты:
# apt install pve-headers r8168-dkms
Во время установки r8168-dkms должен собраться и установиться драйвер r8168, а предыдущий r8169 отключиться и добавиться к заблокированным во время загрузки.
Есть ещё один пакет с этим драйвером, собранный специально под PVE. Я не знаю, чем он отличается от обычного дебиановского. Брать тут. Его достаточно просто скачать и установить:
# wget https://github.com/nathanhi/r8168/releases/download/pve8%2F8.054.00-1-bpo12/r8168-dkms_8.054.00-1-bpo12_all.deb
# dpkg -i r8168-dkms_8.054.00-1-bpo12_all.deb
Описанные выше действия могут как помочь, так и нет. Например, на одном сервере я вообще не видел сетевой карты. После установки драйвера r8168, она определялась в системе и начинала нормально работать. А иногда ничего не менялось и сеть как отваливалась периодически, так и продолжала отваливаться. Тогда приходилось делать что-то типа такого:
#!/bin/bash
IP="10.20.1.2"
if ! ping -c 1 -W 5 "$IP" > /dev/null 2>&1; then
echo "$(date): $IP недоступен. Перезапуск сетевой службы..."
systemctl restart networking
else
echo "$(date): $IP доступен."
fi
Ставил подобный bash скрипт в cron на исполнение каждую минуту. В моменты редких зависаний он перезапускал сеть и всё продолжало нормально работать.
☝️ А резюме всего этого такое. Если у вас сетевая карта Realtek, то либо замените её, либо не ставьте туда Proxmox. Есть высокая вероятность, что нормально он всё равно работать не будет, а вы только время потеряете на отладку и решение проблем.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#proxmox #ошибка
GitHub
GitHub - mtorromeo/r8168: Linux device driver for Realtek Ethernet controllers (unofficial mirror)
Linux device driver for Realtek Ethernet controllers (unofficial mirror) - mtorromeo/r8168
Открытый практикум Networks by Rebrain: Настройка протокола PVST
После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.
👉Регистрация
Время проведения:
27 мая (вторник) в 19:00 по МСК
Программа практикума:
▪️ Изучим основы функционирования протокола Per-VLAN Spanning Tree
▫️ Выполним базовую настройку PVST на примере сетевого оборудования Cisco
▪️Познакомимся с STP Toolkit
Кто ведёт?
Андрей Шабалин — Ph.D in Information Security. Cisco / Huawei Networking Academy Trainer / Instructor. Преподаватель академии Eltex и Астра-Университета. Автор сообщества «Компьютерные сети и сетевая безопасность»: https://vk.com/utmn_network
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFJFAwVi
После регистрации мы отправим вам подарок! Вы сможете найти его в ответном письме.
👉Регистрация
Время проведения:
27 мая (вторник) в 19:00 по МСК
Программа практикума:
▪️ Изучим основы функционирования протокола Per-VLAN Spanning Tree
▫️ Выполним базовую настройку PVST на примере сетевого оборудования Cisco
▪️Познакомимся с STP Toolkit
Кто ведёт?
Андрей Шабалин — Ph.D in Information Security. Cisco / Huawei Networking Academy Trainer / Instructor. Преподаватель академии Eltex и Астра-Университета. Автор сообщества «Компьютерные сети и сетевая безопасность»: https://vk.com/utmn_network
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
Реклама. ООО "РЕБРЕИН", ИНН: 7727409582, erid: 2W5zFJFAwVi