uz
Feedback
NetworkAdmin.ru

NetworkAdmin.ru

Kanalga Telegram’da o‘tish

Авторский блог про сетевое и системное администрирование. Сайт: networkadmin.ru Реклама: @dad_admin Биржа: https://telega.in/c/networkadminru

Ko'proq ko'rsatish
4 714
Obunachilar
+224 soatlar
-97 kunlar
-530 kunlar
Postlar arxiv
🛡 Как корректно отслеживать и логировать выполнение Ansible-плейбуков Если вы регулярно работаете с Ansible - важно не только писать рабочие плейбуки, но и контролировать, когда, кем и как они были запущены. Особенно, если в вашей инфраструктуре Ansible используется как часть CI/CD или централизованного управления. 1️⃣ Включаем логирование в конфиге Ansible. В файле /etc/ansible/ansible.cfg (или в локальной копии ansible.cfg) пропишите:

[defaults]
log_path = /var/log/ansible.log
Ansible начнет писать все свои действия в указанный файл. Убедитесь, что у пользователя, запускающего Ansible, есть права на запись. 2️⃣ Используйте теги и переменные для понятности. Добавляйте теги к задачам:

- name: Установка nginx
  apt:
    name: nginx
    state: present
  tags:
    - web
    - nginx
Это поможет фильтровать задачи в логах, запускать только нужные части и документировать назначение. 3️⃣ Логируйте переменные, хосты, результаты. Для отладки - полезно писать значения переменных в лог:

- name: Показываем значение переменной
  debug:
    var: some_variable
Также можно логировать hostname, пользователя и дату запуска, добавляя кастомную задачу:

- name: Логируем запуск
  shell: echo "{{ ansible_date_time.iso8601 }}: {{ inventory_hostname }} - {{ ansible_user }}" >> /var/log/ansible_run.log
4️⃣ Используйте Ansible Callback Plugins. Для более глубокого логирования можно подключить callback-плагины. Например, json или yaml:

[defaults]
stdout_callback = yaml
А если хотите логировать в файл в формате JSON, можно использовать:

[defaults]
callback_whitelist = json
stdout_callback = json
log_path = /var/log/ansible-json.log
5️⃣ Храните вывод выполнения с ansible-playbook. При запуске:

ansible-playbook site.yml | tee -a /var/log/ansible-run-$(date +%F-%T).log
Так у вас будет отдельный лог под каждое выполнение. 6️⃣ Интеграция с CI/CD и мониторингом. Если Ansible запускается через GitLab, Jenkins, Drone и прочее - обязательно сохраняйте артефакты выполнения и возвращайте статус завершения. Также можно отправлять результаты выполнения в телегу через webhook после ansible-playbook. #ansible #security 🧑‍💻 NetworkAdmin

Как работает LACP и зачем использовать агрегирование каналов Когда одного сетевого интерфейса мало - приходит время объединять их в «команду». Это называется агрегация каналов, и один из самых популярных способов реализовать ее - протокол LACP (Link Aggregation Control Protocol). LACP - часть стандарта IEEE 802.3ad. Он позволяет объединить несколько физических интерфейсов в один логический (LAG - Link Aggregation Group), который операционная система и приложения видят как один. 🌟 Зачем это нужно?
📍 Повышение пропускной способности; 📍 Повышение отказоустойчивости (если один порт отваливается - остальные продолжают работать); 📍 Балансировка нагрузки между портами.
🌟 Как это работает
📍 LACP автоматически обнаруживает, какие интерфейсы можно объединить 📍 Обе стороны (свитч и хост) договариваются, какие порты войдут в LAG 📍 Если кабель выпал или порт упал - он просто исключается из группы, ничего не рушится
▪️ Настройка в Linux. Пример для двух интерфейсов ens33 и ens34: 1️⃣ Устанавливаем ifenslave (если нужно):

sudo apt install ifenslave
2️⃣ Настраиваем bonding-мод LACP (mode 4): В /etc/network/interfaces или аналогичном конфиге:

auto bond0
iface bond0 inet static
  address 192.168.1.100
  netmask 255.255.255.0
  gateway 192.168.1.1
  bond-slaves ens33 ens34
  bond-mode 802.3ad
  bond-miimon 100
  bond-lacp-rate fast
  bond-xmit-hash-policy layer3+4
3️⃣ Важно! На свитче тоже нужно включить LACP на соответствующих портах (обычно называются channel-group или LAG в интерфейсе). ⭐️ Несколько нюансов:
📍 LACP работает только при поддержке с обеих сторон (сервер + свитч) 📍 LAG не удваивает скорость для одного TCP-соединения, но позволяет нескольким соединениям распределяться по разным каналам 📍 Лучше всего работает с хешированием по Layer3+4 (IP + порт)
#network #LACP 🧑‍💻 NetworkAdmin

📈 Как сымитировать нагрузку в linux без сторонних утилит Иногда при настройке мониторинга на малонагруженных серверах нужно протестировать графики и дашборды, добавив искусственную нагрузку. Устанавливать отдельные утилиты вроде stress или stress-ng не всегда хочется. К счастью, это можно сделать встроенными средствами - через dd, sha1sum, yes, /dev/zero, /dev/urandom и другие. ▪️ Нагрузка на диск и CPU одновременно. Сжимаем случайные данные и пишем во временный файл:

while true; do
  dd if=/dev/urandom count=30M bs=1 | bzip2 -9 > /tmp/tempfile
  rm -f /tmp/tempfile
done
/dev/urandom → нагрузка на диск bzip2 -9 → нагрузка на CPU count=30M - объем данных -9 - максимальная степень сжатия
Изменяйте параметры, чтобы регулировать силу нагрузки. ▪️ Только диск: оценка скорости записи. Быстрое тестирование производительности диска:

sync; dd if=/dev/zero of=/tmp/tempfile bs=1M count=1024; sync
Вывод покажет, с какой скоростью пишутся 1 ГБ данных. ▪️ Только CPU: простейшие варианты. Нагрузка на одно ядро:

dd if=/dev/zero of=/dev/null
Параллельная нагрузка на несколько ядер:

cpuload() {
  dd if=/dev/zero of=/dev/null &
  dd if=/dev/zero of=/dev/null &
}
cpuload; read; pkill dd
Либо:

sha1sum /dev/zero
Для нескольких ядер:

seq 4 | xargs -P0 -n1 timeout 10 sha1sum /dev/zero
▪️ Простая нагрузка в пространстве ядра

seq 4 | xargs -P0 -n1 timeout 10 yes > /dev/null
Запускается yes, который генерирует бесконечный вывод. Отлично грузит CPU в режиме ядра. ▪️ Загрузка памяти. Скрипт на Python, резервирующий 1 ГБ RAM:

python3 -c 'a="a"*1024**3; input()'
Можно менять объем, изменяя 1024**3. #linux #monitoring 🧑‍💻 NetworkAdmin

⚙️ Настройка DHCP-сервера и резервации IP-адресов Когда устройств в сети становится больше десятка, раздача IP вручную перестает быть удобной. Решение - поднять свой DHCP-сервер, который будет автоматически раздавать адреса, DNS, шлюз и другие параметры клиентам. Но важно не просто «раздавать все подряд», а уметь закрепить конкретные IP-адреса за нужными устройствами (например, серверами, принтерами, VoIP). Это делается через резервации (DHCP reservations). 🐧 Настройка DHCP-сервера на Linux (например, ISC-DHCP) 1️⃣ Устанавливаем сервер:

sudo apt install isc-dhcp-server
2️⃣ Пример настройки /etc/dhcp/dhcpd.conf:

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.200;
  option routers 192.168.1.1;
  option domain-name-servers 8.8.8.8;
  option domain-name "home.lan";
}

# Резервация IP по MAC-адресу
host printer01 {
  hardware ethernet 00:11:22:33:44:55;
  fixed-address 192.168.1.10;
}
Теперь каждый раз принтер с указанным MAC-адресом будет получать именно 192.168.1.10. 🏠 На Windows Server (DHCP Role) Откройте оснастку DHCP → Перейдите к своему пулу IP-адресов → ПКМ → New Reservation Укажите имя, IP, MAC-адрес и тип клиента 🌟 Зачем нужны резервации:
Упрощают администрирование (IP-адреса не меняются) Удобны для мониторинга и firewall-правил Избавляют от конфликтов IP Полезны при интеграции с DNS (обратная зона)
#network #DHCP 🧑‍💻 NetworkAdmin

Однажды встает выбор, решающий судьбу.. #юмор 🧑‍💻 NetworkAdmin
Однажды встает выбор, решающий судьбу.. #юмор 🧑‍💻 NetworkAdmin

🔔 Уведомления из консоли прямо на смартфон и десктоп Иногда хочется, чтобы о важных событиях (бэкапы, алерты мониторинга, запуск задач) приходило пуш-уведомление прямо на смартфон. Без танцев с ботами и сторонними облаками. Есть отличный инструмент - ntfy.sh. 🌟 Как это работает Заходим в веб-приложение: https://ntfy.sh/app Разрешаем уведомления, подписываемся на тему и получаем URL вроде: https://ntfy.sh/Stkclnoid6pLCpqU Теперь отправим уведомление:

curl -d "Test Message" https://ntfy.sh/Stkclnoid6pLCpqU
Уведомление мгновенно прилетит в веб-интерфейс или в мобильное приложение (Android/iOS). ▪️ Интеграция с системой мониторинга (например, Zabbix). Zabbix умеет отправлять Webhook-запросы. Достаточно в настройках создать новый метод оповещения и использовать такой скрипт:

var params = JSON.parse(value),
    msg = params.Message,
    url = params.URL,
    req = new CurlHttpRequest();

req.AddHeader('Content-Type: text/plain');
req.Post(url, msg);
Указываем в URL свой ntfy-адрес, а в сообщении - макрос {ALERT.MESSAGE}. ▪️ Пример: уведомления о результате бэкапа

rsync -a /mnt/data user@10.10.10.10:/backups/srv01 \
  && curl -H prio:low -d "Backup OK" https://ntfy.sh/Stkclnoid \
  || curl -H prio:high -H tags:warning -d "Backup FAILED" https://ntfy.sh/Stkclnoid
Ntfy - полностью open-source. Вы можете установить сервер у себя (есть готовые пакеты и образы в Docker) и использовать его как закрытую систему уведомлений. ➕ Небольшая пачка плюсов:
Поддержка push-уведомлений на мобильные и десктопы; Безопасность: можно хостить у себя; Простая интеграция через curl; Поддержка приоритетов, тэгов, вложений, подписок; Бесплатно.
#monitoring #bash 🧑‍💻 NetworkAdmin

🏠 Повышение производительности Windows с помощью Sysinternals Tools Когда windows начинает тормозить, а «диспетчер задач» мало что говорит - на помощь приходят sysinternals tools. Это набор от microsoft, разработанный ещё Марком Руссиновичем, и он до сих пор незаменим для администраторов. 🔗 Скачать все разом Ключевые инструменты, которые реально помогают увидеть и устранить узкие места в системе: ▪️ Process Explorer. Улучшенный «Диспетчер задач». Показывает дерево процессов, какие DLL они используют, как именно загружают систему. Можно отследить, кто блокирует файл, кто грузит ЦП, кто жрет RAM. 📍 Альтернатива taskmgr 📍 Ищем паразитные процессы и утечки памяти 📍 Убиваем вирусы, которые не видит антивирус ▪️ Process Monitor (Procmon). Показывает все, что происходит: файловые операции, работа с реестром, сеть. Идеально, когда приложение «виснет», но не пишет ошибок. 📍 Отладка медленных запусков программ 📍 Отслеживание, куда приложение пытается записать 📍 Найти, кто трогает подозрительный файл ▪️ RAMMap. Показывает, куда на самом деле уходит ОЗУ. Иногда в диспетчере — пусто, а система тормозит. RAMMap покажет все по сегментам: кэш, драйверы, standby, modified и т.д. ▪️ Autoruns. Разбираемся с автозагрузкой: служба, планировщик, драйверы, контекстное меню, расширения проводника. Можно безопасно отключить мусор без сторонних твикеров. 📍 Удалить нежелательные утилиты из автозагрузки 📍 Быстро выявить вирус или майнер ▪️ TCPView. Если тормозит сеть - можно посмотреть, какие процессы установили соединения, какие порты открыты, куда идет трафик. ▪️ Disk Usage (du.exe). Утилита в стиле unix du - покажет, какие каталоги занимают больше всего места. Особенно полезно при очистке диска.

du -q -l 1 C:\Users\admin
Все утилиты можно использовать без установки, просто скачать и запускать по мере надобности. А некоторые - использовать прямо из PowerShell, если положить их в %PATH%. #windows #sysinternals 🧑‍💻 NetworkAdmin

Канал опытного инженера с многолетним стажем! За свою карьеру он поработал со многими технологиями и языками программирования
Канал опытного инженера с многолетним стажем! За свою карьеру он поработал со многими технологиями и языками программирования: ⚙️ Python 👩‍💻 Linux 👣 Golang 🖥 Docker 🖥 Kubernetes 🖥 Bash RECURA: программирование, проще чем кажется

📍 Как не перезапустить не тот сервер: утилита molly-guard Если вы когда-нибудь случайно выполнили reboot или shutdown не на том сервере - вы знаете, насколько это больно. Особенно, когда в консоли много сессий, и все на одинаковых хостах типа prod01, prod02, db01... Чтобы подстраховаться от таких ошибок - есть простейшее, но гениальное решение: molly-guard. После установки утилита подменяет стандартные команды reboot, shutdown, poweroff. При их запуске появляется запрос на подтверждение имени хоста. Ошиблись терминалом - команда не выполнится. ▪️ Установка:

# apt install molly-guard
▪️ Пример:

# reboot
W: molly-guard: SSH session detected!
Please type in hostname of the machine to reboot:
>
Вводим имя хоста вручную. Только после этого произойдёт перезагрузка. 🌟 Небольшой совет: сразу после установки можно прописать ее в список стандартного ПО для всех серверов. Минимум настроек - максимум пользы. #linux #mollyguard 🧑‍💻 NetworkAdmin

🔒 Использование VLAN в домашних и офисных сетях Многие думают, что VLAN - это только для крупных корпоративных сетей, но на практике он может оказаться крайне полезным и в небольшом офисе или даже дома. Виртуальные локальные сети позволяют разделить трафик по логике, повысить безопасность и упростить администрирование.
VLAN (Virtual LAN) - это способ логического разделения одной физической сети на несколько изолированных друг от друга сегментов. Устройства в разных VLAN не видят друг друга, пока не настроен маршрутизатор.
▪️ Сценарии для дома: 📍 Разделение умного дома и основной сети — изоляция IoT-устройств (камеры, лампочки, чайники) от домашней Wi-Fi-сети с личными данными. 📍 Детская VLAN с ограничениями - создаем отдельный сегмент с фильтрацией сайтов и доступом по расписанию. 📍 Гостевая Wi-Fi - изолируем гостей от основной сети. ▪️ Сценарии для офиса: 📍 VLAN для бухгалтерии - выделенный сегмент с доступом только к 1С и серверам документов. 📍 VLAN для VoIP - стабильная телефония без помех от общего трафика. 📍 VLAN для видеонаблюдения - чтобы камеры не грузили общий канал. 📍 Разделение Wi-Fi по ролям (сотрудники, гости, администрация). ▪️ Как настраивать? 1️⃣ На свитче (управляемом): назначаем порты access (одна VLAN) или trunk (несколько VLAN). Пример на Cisco:

interface FastEthernet0/1
  switchport mode access
  switchport access vlan 10
2️⃣ На роутере: интерфейсы или саб-интерфейсы на разные VLAN. Настройка маршрутизации между VLAN при необходимости. 3️⃣ На клиенте (Linux):

ip link add link eth0 name eth0.10 type vlan id 10
ip addr add 192.168.10.2/24 dev eth0.10
ip link set up eth0.10
Даже в домашних условиях VLAN дает возможность для наведения порядка, контроля и повышения безопасности в сети. #vlan #security 🧑‍💻 NetworkAdmin

🔝 Borg + Borgmatic: удобные и надежные бэкапы в linux Обычные бэкапы - тема, о которой стоит напоминать регулярно. Сегодня расскажу о проверенной связке инструментов: Borg и его обертке Borgmatic. Это отличное решение, если вам нужен надежный и автоматизированный консольный бэкап без внешних агентов. ▪️ Borg - это утилита для создания резервных копий с поддержкой: дедупликации данных (экономия места), шифрования, работы по SSH без установки агентов, монтирования архива через FUSE для удобного просмотра содержимого. Установка:

apt install borgbackup
▪️ Borgmatic - это python-обертка над borg, позволяющая описывать бэкап в YAML-конфиге - никаких длинных команд и скриптов. Все в одном месте. Установка:

pip3 install borgmatic
⭐️ Преимущества использования Borgmatic:
несколько целевых репозиториев для хранения бэкапов; автоматические дампы баз данных (PostgreSQL, MySQL, MongoDB, SQLite); хуки до и после запуска (удобно для остановки сервисов); отправка уведомлений (в том числе по ошибке); централизованное хранение параметров и секретов (через переменные среды).
▪️ Пример конфигурации:

location:
  source_directories:
    - /etc
    - /var/www
  repositories:
    - user@backupserver:repo.borg

retention:
  keep_daily: 7
  keep_weekly: 4
  keep_monthly: 6

hooks:
  before_backup:
    - systemctl stop nginx
  after_backup:
    - systemctl start nginx
Если уже используете borg, переход на borgmatic - это чистое удобство. Упрощенная автоматизация, гибкость и читаемость настроек. #linux #backup 🧑‍💻 NetworkAdmin

Универсальная комбинация для входа в BIOS #юмор 🧑‍💻 NetworkAdmin

Прокачай свои пайплайны с GitLab CI — секреты для DevOps и разработчиков. Хотите, чтобы ваши пайплайны в GitLab CI были не то
Прокачай свои пайплайны с GitLab CI — секреты для DevOps и разработчиков. Хотите, чтобы ваши пайплайны в GitLab CI были не только надёжными, но и эффективными? Тогда этот вебинар — для вас!  Мы покажем, как избежать ошибок, ускорить релизы и сделать процесс работы с GitLab CI простым и предсказуемым. Ошибки, которые вы научитесь избегать: 📲чрезмерная ручная настройка: мы покажем, как сделать пайплайн автономным и стабильным 📲сложные и нечитаемые пайплайны: узнаете, как разделить логику пайплайна для лучшей поддержки и управления 📲непонимание влияния CI/CD на бизнес: мы объясним, как правильный пайплайн ускоряет процесс разработки и способствует росту бизнеса 📅 Дата: 30 июля, 19:00 (МСК) - бесплатно 👉 Записаться на вебинар — https://tglink.io/094b02fbe6d2 Не упустите шанс сделать процесс разработки более предсказуемым и эффективным Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFHRC8Hn

📂 Проверка и восстановление файловой системы Поврежденная структура каталогов или битые иноды могут привести к потере данных или проблемам при загрузке. Для таких случаев есть проверенные временем инструменты: fsck в linux и chkdsk в windows. 🐧 Linux: fsck (file system check). fsck - утилита для проверки и восстановления файловой системы. Работает с различными типами ФС: ext2/3/4, xfs, btrfs и т.д. ▪️ Проверка и автоматическое исправление ошибок:

fsck -y /dev/sda1
▪️ Только проверка (без изменений):

fsck -n /dev/sda1
▪️ Проверка всех файловых систем, указанных в /etc/fstab, кроме смонтированных:

fsck -A
⚠️ Не запускайте fsck на смонтированных разделах - особенно тех, которые используются системой. Лучше делать это с LiveCD или в режиме восстановления. 🏠 Windows: chkdsk. chkdsk - аналогичная утилита в windows. Она проверяет раздел на наличие логических и физических ошибок, может попытаться восстановить поврежденные сектора. ▪️ Проверка и исправление ошибок:

chkdsk C: /F
▪️ Проверка с попыткой восстановления поврежденных секторов:

chkdsk D: /F /R
▪️ Назначение проверки при следующей перезагрузке (если диск системный):

chkntfs /C C:
#fsck #chkdsk 🧑‍💻 NetworkAdmin

Вебинар: GPU в облаке: как выжать максимум без лишних затрат ⛅️ Как выбрать облачный сервер с GPU, чтобы задачи решались быст
Вебинар: GPU в облаке: как выжать максимум без лишних затрат ⛅️ Как выбрать облачный сервер с GPU, чтобы задачи решались быстро, а счёт не шокировал? 5 августа за один час расскажем и покажем на кейсах: — Примеры использования GPU: какие задачи решает и сколько можно сэкономить — В чём разница между видеокартами NVIDIA L4, A16 и L40S; — Что учесть при запуске ML и нейросетей в облаке; — Бенчмарки и время обработки на разных моделях. 🔗 Для участия в вебинаре зарегистрируйтесь

🔗 Коллекция приемов на чистом Bash Если вы пишете скрипты и хотите свести количество зависимостей к минимуму - загляните в pure-bash-bible. Это подборка трюков и функций, реализующих полезные операции на чистом bash, без использования sed, awk, grep, perl и других внешних утилит. Все работает прямо внутри интерпретатора. ▪️ Пример 1. Преобразование строки в нижний регистр. Из библиотеки берём такую функцию:

lower() {
  printf '%s\n' "${1,,}"
}
Создаем скрипт lower.sh:

#!/bin/bash
lower() {
  printf '%s\n' "${1,,}"
}
lower "$1"
Запускаем:

$ ./lower.sh HELLO
hello
▪️ Пример 2. Получение имени файла из полного пути

basename() {
  local tmp
  tmp=${1%"${1##*[!/]}"}
  tmp=${tmp##*/}
  tmp=${tmp%"${2/"$tmp"}"}
  printf '%s\n' "${tmp:-/}"
}
Скрипт basename.sh:

#!/bin/bash
basename() {
  local tmp
  tmp=${1%"${1##*[!/]}"}
  tmp=${tmp##*/}
  tmp=${tmp%"${2/"$tmp"}"}
  printf '%s\n' "${tmp:-/}"
}
basename "$1"
Запуск:

$ ./basename.sh /var/log/syslog.2.gz
syslog.2.gz
В большинстве систем можно просто вызвать утилиты basename или tr, но в минималистичных окружениях (например, initrd, embedded Linux, Docker) такие функции в bash-стиле особенно ценны. Библиотека охватывает десятки задач: обработка строк, массивов, файлов, путей, случайные числа, цвета в терминале и т.д. Сохрани себе 😺 #bash #linux 🧑‍💻 NetworkAdmin

⚡️Хаос с зависимостями может стать угрозой безопасности вашего проекта. Присоединяйтесь к открытому уроку «Страх и ненависть
⚡️Хаос с зависимостями может стать угрозой безопасности вашего проекта. Присоединяйтесь к открытому уроку «Страх и ненависть при работе с зависимостями (SCA)» 29 июля в 20:00 МСК и научитесь контролировать зависимости без уязвимостей. Вы узнаете: - Какие зависимости проходят проверки и как это влияет на инфраструктуру. - Как правильно хранить, обновлять и обогащать список компонентов. - Методы контроля целостности и версионности зависимостей. Урок станет отличной подготовкой к курсу «Внедрение и работа в DevSecOps», все участники получат скидку на обучение. Научитесь управлять зависимостями эффективно и безопасно. 👉Записывайтесь на вебинар, получайте скидку и готовьтесь к углубленному изучению DevSecOps с OTUS: https://otus.pw/QokLL/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

🎉 С днем системного администратора! 🎉 Сегодня не будет познавательных постов, но будет не менее важное - поздравление! Сего
🎉 С днем системного администратора! 🎉 Сегодня не будет познавательных постов, но будет не менее важное - поздравление! Сегодня - день тех, кто всегда остается за кулисами, но без кого не работает ничего. Это вы начинающие или уже опытные - волшебники командной строки, мастера uptime и защитники серверов от хаоса. Именно Вы держите на плаву сети, базы данных, почту, бэкапы, мониторинг, безопасность и еще тысячу вещей, о которых никто не догадывается... пока все не сломается, ну или им не покажется, что все сломалось.. Буду короток: пусть в логах будет чисто, аптайм радует глаз, а пользователи не беспокоят в пятницу вечером. А еще - стабильных обновлений, бесшумных серверов и свободного времени для себя. За вас, сисадмины! С праздником! 🎆 🧑‍💻 NetworkAdmin

Превзошел себя #юмор 🧑‍💻 NetworkAdmin
Превзошел себя #юмор 🧑‍💻 NetworkAdmin