Admin Guides | Сисадмин
11.4K subscribers
1.22K photos
20 videos
34 files
557 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
Настройка VLAN с использованием ip и bridge в Linux

VLAN (Virtual Local Area Network) — это способ разделения одной физической сети на несколько логически изолированных сетей.

Это полезно для управления трафиком, повышения безопасности и уменьшения широковещательной нагрузки.

В этом посте мы разберём, как настроить VLAN в Linux с использованием утилит ip и bridge.

Пример задачи

Имеется интерфейс eth0, подключённый к коммутатору, поддерживающему VLAN. Мы хотим настроить две VLAN:
VLAN 10: с IP-адресом 192.168.10.1/24.
VLAN 20: с IP-адресом 192.168.20.1/24.

1️⃣Установка необходимых пакетов

В современных дистрибутивах утилиты ip и bridge уже включены в состав пакета iproute2.

Проверьте, что он установлен:

sudo apt install iproute2  # Для Debian/Ubuntu  
sudo yum install iproute # Для CentOS/RHEL


2️⃣ Настройка VLAN
Создайте VLAN-интерфейсы

С помощью команды ip link создадим виртуальные интерфейсы для VLAN 10 и VLAN 20:

sudo ip link add link eth0 name eth0.10 type vlan id 10  
sudo ip link add link eth0 name eth0.20 type vlan id 20


Назначьте IP-адреса VLAN-интерфейсам

sudo ip addr add 192.168.10.1/24 dev eth0.10  
sudo ip addr add 192.168.20.1/24 dev eth0.20


Включите интерфейсы

sudo ip link set eth0.10 up  
sudo ip link set eth0.20 up


3️⃣ Проверка конфигурации

Проверьте, что интерфейсы созданы и включены:

ip -d link show  


Вы должны увидеть интерфейсы eth0.10 и eth0.20, связанные с eth0.

4️⃣ (Опционально) Настройка VLAN-мостов

Если требуется подключить несколько VLAN к мосту (например, для виртуализации):

Создайте мост:

sudo ip link add name br-vlan type bridge  


Добавьте VLAN к мосту:

sudo ip link set eth0.10 master br-vlan  
sudo ip link set eth0.20 master br-vlan


Назначьте IP-адрес мосту:

sudo ip addr add 192.168.30.1/24 dev br-vlan  
sudo ip link set br-vlan up


5️⃣ Удаление VLAN

Чтобы удалить VLAN-интерфейс:

sudo ip link delete eth0.10  
sudo ip link delete eth0.20


Теперь ваш сервер поддерживает две изолированные VLAN. Это полезно для разделения трафика между службами или пользователями.

И используйте конфигурационные файлы (например, в /etc/netplan или /etc/sysconfig/network-scripts), чтобы сделать настройки постоянными после перезагрузки.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍101
👍51
Что такое SR-IOV и зачем это нужно

SR-IOV (Single Root Input/Output Virtualization) — технология аппаратной виртуализации ввода-вывода, позволяющая нескольким виртуальным машинам напрямую использовать одну физическую сетевую карту.

Это достигается за счёт разделения сетевой карты на физическую функцию (PF) и виртуальные функции (VF).


PF (Physical Function): основной интерфейс для управления устройством. Он отвечает за настройку SR-IOV.
VF (Virtual Function): выделенные виртуальные интерфейсы, которые подключаются к виртуальным машинам, обеспечивая минимальные задержки и высокую скорость.

Зачем использовать SR-IOV?
1️⃣Разгрузка гипервизора: виртуальные машины работают с сетью напрямую, снижая нагрузку на центральный процессор.
2️⃣ Оптимизация ресурсов: обеспечивает баланс между производительностью и количеством виртуальных машин.
3️⃣ Повышение безопасности: изоляция VF снижает риск вмешательства одной ВМ в работу другой.

Пример использования

В среде виртуализации с высокой сетевой нагрузкой (например, для финансовых транзакций) SR-IOV позволяет:

Включить поддержку SR-IOV на физической сетевой карте через настройки гипервизора.
Выделить несколько VF для виртуальных машин.
Настроить PF для управления и мониторинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥31
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое “Continuous Integration” (CI) и как оно помогает в DevOps?

Ответ: Continuous Integration (CI) — это практика регулярного объединения кода в основную ветку с автоматическим тестированием и сборкой.

1️⃣Автоматизация сборки: Каждый коммит автоматически проверяется и собирается, что позволяет быстро обнаружить ошибки.
2️⃣ Повышение качества кода: Автоматическое тестирование помогает выявить баги на ранней стадии.
3️⃣ Быстрая доставка: CI помогает ускорить процесс развертывания и интеграции новых функций.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1221
Мониторинг сети с помощью sFlow

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

Его основное преимущество — минимальная нагрузка на устройство благодаря выборочному сбору данных.

Как работает sFlow

Агент sFlow: встроен в сетевое устройство и собирает выборки пакетов.
Коллектор: сервер, принимающий выборки и анализирующий данные.
Выборки: небольшие фрагменты трафика передаются на коллектор для анализа.

Настройка sFlow на коммутаторе

1️⃣Включение агента sFlow

На устройствах Cisco:

sflow enable  


На устройствах HPE/Aruba:

sflow 1 sampling 1000  
sflow 1 destination 192.168.1.2 6343


2️⃣ Настройка параметров

Cisco: Установите IP-адрес агента (IP устройства):

sflow agent-ip 192.168.1.1  


Укажите частоту выборок:

sflow sampling-rate 1000  


Настройте интервал опроса счётчиков:

sflow polling-interval 30  


Укажите IP и порт коллектора:

sflow collector-ip 192.168.1.2 6343  


3️⃣ Проверка и мониторинг

Проверьте текущую конфигурацию:

show sflow  


На HPE:

show sflow agent  


Убедитесь, что данные отправляются на коллектор. Для анализа можно использовать инструменты, такие как sFlowTrend или ntopng.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Есть такое?)
😁21👀5👍4
Реплики и согласованность в распределённых системах

Репликация — это процесс создания копий данных между узлами в распределённой системе для повышения отказоустойчивости, масштабируемости и доступности.

Системные администраторы часто сталкиваются с задачами настройки и управления репликами, особенно в масштабируемых системах, таких как Cassandra, Kafka или Redis.


Модели репликации

1. Синхронная репликация
Данные подтверждаются только после записи на все узлы.
Плюсы: строгая консистентность.
Минусы: высокая задержка, проблемы с доступностью при сбоях.
Пример: финансовые системы, где важна точность данных.

2. Асинхронная репликация
Данные записываются на один узел, а потом синхронизируются с остальными.
Плюсы: высокая доступность, быстрая обработка запросов.
Минусы: возможны временные несоответствия данных.
Пример: географически распределённые системы, CDN.

Настройка репликации в MongoDB

1️⃣Создайте репликационный набор:

rs.initiate(
{
_id: "myReplicaSet",
members: [
{ _id: 0, host: "node1:27017" },
{ _id: 1, host: "node2:27017" },
{ _id: 2, host: "node3:27017" }
]
}
)


2️⃣ Проверьте статус репликации:

rs.status()


Настройка консистентности в Kafka

1️⃣Установите минимальное количество реплик, которые должны подтвердить запись:

min.insync.replicas=2


2️⃣ Гарантируйте консистентность для записи:

acks=all
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
💬Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.

Вопрос: Что такое DNS-записи и какие их типы?

Ответ: DNS-записи — это данные, которые связывают доменные имена с различной информацией, такой как IP-адреса или почтовые серверы.

1️⃣Типы DNS-записей:
A: Соединяет домен с IPv4-адресом.
AAAA: Соединяет домен с IPv6-адресом.
CNAME: Создает псевдоним для домена.
MX: Указывает почтовый сервер.
NS: Указывает серверы, управляющие доменом.
TXT: Хранит текстовую информацию, например, для проверки подлинности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍212
Какой инструмент используется для поиска утечек памяти в программе на Linux?
Anonymous Quiz
36%
strace
14%
valgrind
13%
gdb
38%
top
👍10
Команда ionice — Управление приоритетами ввода-вывода

Команда ionice позволяет управлять приоритетом операций ввода-вывода (I/O) для процессов в Linux.

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

Зачем использовать ionice?

1️⃣Устранение конфликтов:
Вы можете снизить влияние ресурсоемких процессов на более важные задачи.
2️⃣Оптимизация производительности:
Используется для повышения скорости критически важных операций, таких как базы данных или резервное копирование.
3️⃣ Контроль ресурсов:
Администратор может задать точные правила, определяя, какой процесс и с каким приоритетом будет работать с диском.

Основные классы приоритетов

ionice работает с тремя классами:
Idle (Класс 3):
Процесс выполняет операции ввода-вывода только тогда, когда диск не занят другими задачами.
Best-effort (Класс 2, значение по умолчанию):
I/O операции выполняются с указанным приоритетом (от 0 — самый высокий, до 7 — самый низкий).
Realtime (Класс 1):
Процесс получает доступ к диску немедленно, игнорируя другие задачи. Использовать с осторожностью!

Примеры использования
1️⃣Установить минимальный приоритет для резервного копирования:
Если вы запускаете резервное копирование с помощью rsync и не хотите, чтобы оно замедляло сервер:

ionice -c3 rsync -a /source /destination


2️⃣ Проверить текущий приоритет процесса:
Для процесса с PID 1234:

ionice -p 1234


Вывод покажет текущий класс и приоритет процесса.

3️⃣Установить высокий приоритет для базы данных: Если нужно ускорить работу MySQL:

ionice -c1 -p $(pgrep mysqld)


4️⃣ Запуск ресурсоемкого скрипта с низким приоритетом:
Для минимизации влияния скрипта на другие задачи:

ionice -c2 -n7 ./heavy_script.sh
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2
Microsoft создаёт AI Shell для командной строки Windows 11

Microsoft завершила тестирование новой интерактивной оболочки AI Shell, которая интегрирует возможности искусственного интеллекта непосредственно в Windows PowerShell.

Этот инструмент позволяет пользователям формулировать запросы на естественном языке, а ИИ преобразует их в соответствующие команды.


Пример использования AI Shell: запрос о отображении списка файлов на компьютере больше 200 МБ, который после нескольких уточнений ИИ преобразовал в подходящую команду.

AI Shell также обладает функцией генерации кода.

Тесты показали, что ИИ может создавать простые программы, такие как калькулятор на Python, что упрощает разработку и автоматизирует рутинные задачи. Сгенерированный код в тестах работал корректно.

На данный момент оболочка поддерживает два ИИ-инструмента: Azure OpenAI и Copilot. 


Однако пользователи могут добавлять и другие инструменты, что открывает возможности для выбора наиболее подходящей модели для конкретных задач.
👍12
Apache Maven – установка и настройка

Apache Maven - это инструмент управления проектами и автоматизации сборки с открытым исходным кодом, основанный на концепции объектной модели проекта (POM – Project Object Model), которая в основном используется для развертывания приложений на основе Java, но также может использоваться в проектах, написанных на C#, Ruby и другиех языках программирования.

В посте мы объясним, как установить и настроить последнюю версию Apache Maven в системе CentOS 7 (данная инструкция также работает с дистрибутивом RHEL и Fedora).

Установка OpenJDK 8 в CentOS 7
Java Development Kit (JDK)
является основным требованием для установки Apache Maven, поэтому сначала установите Java в системе CentOS 7 из репозитория по умолчанию и проверьте версию с помощью следующих команд.

# yum install -y java-1.8.0-openjdk-devel
# java -version


Если установка прошла успешно то, вы увидите следующий вывод.

openjdk version "1.8.0_141"
OpenJDK Runtime Environment (build 1.8.0_141-b16)
OpenJDK 64-Bit Server VM (build 25.141-b16, mixed mode)


Установка Apache Maven в CentOS 7

Далее перейдите на оф страницу загрузки Apache Maven и загрузите последнюю версию или используйте следующую команду wget, чтобы загрузить ее в домашний каталог maven ‘/usr/local/src’.

# cd /usr/local/src
# wget https://www-us.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz


Настройка среды Apache Maven

Теперь нам нужно сконфигурировать переменные окружения для предварительно скомпилированных файлов Apache Maven в нашей системе, создав файл конфигурации «maven.sh» в каталоге «/etc/profile.d» .

# cd /etc/profile.d/
# vim maven.sh


Добавьте следующую конфигурацию в файл конфигурации «maven.sh».

# Apache Maven Environment Variables

# MAVEN_HOME for Maven 1 - M2_HOME for Maven 2

export M2_HOME=/usr/local/src/apache-maven
export PATH=${M2_HOME}/bin:${PATH}


Теперь сделайте конфигурационный файл «maven.sh» исполняемым, а затем загрузите конфигурацию, выполнив команду «source» .

# chmod +x maven.sh
# source /etc/profile.d/maven.sh


Проверка версии Apache Maven

Чтобы проверить установку Apache Maven, выполните следующую команду.

# mvn --version


И вы должны получить вывод, похожий на следующий:

Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T19:33:14+01:00)
Maven home: /usr/local/src/apache-maven
Java version: 9.0.4, vendor: Oracle Corporation, runtime: /opt/java/jdk-9.0.4
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.17.6-1.el7.elrepo.x86_64", arch: "amd64", family: "unix"
👍111
Админы, было такое?
😁38👍12💯9🤣4🔥2
С наступающим Новым годом! 🥳

Три полезные команды для администрирования файловой системы


1️⃣inotifywait — мониторинг изменений в реальном времени

inotifywait отслеживает изменения в каталогах или файлах. Это полезно для мониторинга активности, например, в логах или критичных конфигурациях.

inotifywait -m /var/log/


Отображает события в реальном времени (добавление, изменение, удаление файлов). Полезно при поиске причин непредвиденных изменений в системе или отслеживании активности пользователя.

2️⃣ setfacl — настройка расширенных прав доступа

Команда setfacl позволяет задавать права доступа для отдельных пользователей или групп, не ограничиваясь стандартными атрибутами chmod.

setfacl -m u:username:rw /path/to/file


Назначает права доступа конкретному пользователю без изменения групповых настроек и удобно для разделения доступа к файлам между командами или проектами.

3️⃣ rename — массовое переименование файлов

Команда rename переименовывает файлы, используя регулярные выражения. Это полезно, если нужно быстро изменить множество имен файлов.

rename 's/old/new/' *.txt


Заменяет текст в именах файлов (в данном случае old на new) и идеально подходит для массовой обработки файлов, таких как логические архивы или бэкапы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍142
Nvidia откроет исходный код Run:ai

Nvidia завершила сделку по приобретению израильской компании Run:ai, которая разрабатывает программное обеспечение для технологий искусственного интеллекта.

Теперь Nvidia планирует открыть исходный код платформы стартапа.


Run:ai помогает корпоративным клиентам оптимизировать вычислительную нагрузку и управлять кластерами GPU на уровне дата-центров.

Основатели стартапа Омри Геллер и Ронен Дар заявили, что открытие исходного кода ускорит развитие экосистемы ИИ.

Хотя Run:ai изначально поддерживает только GPU от Nvidia, открытие кода позволит сделать платформу доступной для более широкой аудитории.

Nvidia и Run:ai сотрудничают с 2020 года, и это партнёрство уже доказало свою эффективность, особенно для крупных корпоративных клиентов.


🔥 Эта инициатива Nvidia станет важным шагом для развития сообщества open source, расширяя возможности использования искусственного интеллекта на глобальном уровне.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3
Основы команды SCP в Linux – безопасное копирование файлов

SCP (Secure Copy) — это команда для безопасного копирования файлов между системами Linux или Unix через зашифрованное соединение SSH. Благодаря этому данные остаются защищёнными даже при попытках перехвата.

Примеры использования SCP
1️⃣Копирование файлов с локального на удалённый сервер
Чтобы скопировать файл test.txt в каталог /location2 на удалённом сервере:

scp test.txt username@destination:/location2


2️⃣ Копирование всех файлов определённого типа
Для передачи всех файлов .txt из домашнего каталога в удалённую систему:

scp ~/files/*.txt username@destination:/location/


3️⃣ Переименование файлов во время копирования
Чтобы скопировать файл test.txt и сохранить его на удалённой системе под новым именем:

scp test.txt username@destination:/location/renamed_file.txt


4️⃣ Использование нестандартного порта
Если сервер SSH настроен на порт 1234:

scp -P 1234 test.txt username@destination:/location2/


Советы по использованию SCP
Будьте осторожны с перезаписью файлов: SCP автоматически перезаписывает файлы с одинаковым именем в каталоге назначения.
Контроль разрешений: Убедитесь, что у вас есть права на чтение/запись в исходной и целевой системах.

Для стабильной передачи больших файлов используйте SCP в сочетании с терминальным мультиплексором, например, tmux, чтобы избежать потери прогресса при разрыве соединения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое “Canary Deployment” и как оно помогает в процессе развертывания?

Ответ: Canary Deployment — это стратегия развертывания, при которой новая версия приложения сначала внедряется на небольшом числе серверов (canary-серверах), чтобы протестировать её на реальных пользователях перед полномасштабным развертыванием.

Принцип работы:
• Сначала новая версия развертывается на ограниченной группе пользователей.
• Мониторинг производительности и ошибок помогает определить, стоит ли расширять развертывание на всю инфраструктуру.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Три полезные команды для работы с SSH в Linux

SSH — не только инструмент для удалённого доступа, но и основа множества полезных команд, которые значительно упрощают работу администратора.

Разберём три менее популярные, но крайне удобные команды для управления через SSH.


1️⃣ssh-copy-id — Быстрая настройка ключей SSH

Чтобы не вводить пароль каждый раз при подключении к удалённому серверу, можно использовать SSH-ключи. Команда ssh-copy-id автоматизирует процесс их передачи.

Пример использования:

ssh-copy-id username@remote_host


После выполнения этой команды ваш публичный SSH-ключ будет добавлен в файл ~/.ssh/authorized_keys на удалённом сервере. Теперь вы можете подключаться без ввода пароля.

Почему полезно:
• Ускоряет настройку серверов.
• Устраняет необходимость в ручной передаче ключей.

2️⃣ sshfs — Монтирование удалённой файловой системы

С помощью sshfs можно монтировать удалённый сервер в локальную файловую систему. Это позволяет работать с файлами так, как будто они находятся на вашем компьютере.

Установка:

sudo apt install sshfs  # Для Debian/Ubuntu  
sudo yum install sshfs # Для CentOS/RHEL


Пример монтирования:

sshfs username@remote_host:/remote/directory /local/mountpoint


Чтобы размонтировать файловую систему:

fusermount -u /local/mountpoint


Почему полезно:
• Удобно для работы с файлами на сервере без использования SCP или SFTP.
• Подходит для редактирования конфигураций напрямую.

3️⃣ autossh — Перезапуск соединения при обрывах

При работе с нестабильными соединениями команда autossh автоматически восстанавливает разрывы. Это особенно полезно для туннелирования или долгосрочных подключений.

Установка:

sudo apt install autossh  # Debian/Ubuntu  
sudo yum install autossh # CentOS/RHEL


Пример использования:

autossh -M 0 -f -N -L 8080:remote_host:80 username@remote_host


Эта команда создаёт туннель через порт 8080 и поддерживает его активным.

Почему полезно:
• Устраняет необходимость ручного восстановления соединения.
• Надёжно работает даже в условиях плохой сети.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥54
Какой параметр в конфигурации sshd_config определяет максимальное количество попыток аутентификации для SSH?
Anonymous Quiz
33%
MaxAuthTries
46%
MaxLoginAttempts
14%
AuthMaxTries
7%
MaxTries
👍51🔥1
Команда at — Запуск задач по расписанию в Linux

at — это команда для одноразового планирования задач. В отличие от cron, который работает с повторяющимися заданиями, at позволяет запустить задачу в точно указанное время.

Основные примеры использования

1️⃣Запуск задачи через определённое время

Чтобы запланировать выполнение команды через 10 минут:

echo "sudo apt update" | at now + 10 minutes


После этого система обновит список пакетов через 10 минут.

2️⃣Запуск задачи в конкретное время

Например, чтобы запустить скрипт в 18:30:

echo "/path/to/script.sh" | at 18:30


Скрипт выполнится ровно в указанное время.

3️⃣ Просмотр запланированных задач

Чтобы увидеть список всех задач, выполните:

atq


Команда покажет ID задач и время их выполнения.

4️⃣ Удаление запланированной задачи

Для отмены задачи используйте её ID, который показывает atq:

atrm <task_id>


Почему at полезна?
• Удобно для одноразовых задач, например, перезагрузки сервера ночью.
• Не требует настройки сложных расписаний, как в cron.
• Легко управлять через команды atq и atrm.

Пример реального применения

Системный администратор может использовать at для автоматического перезапуска службы после ночных обновлений:

echo "systemctl restart nginx" | at 02:00


Задача выполнится без необходимости присутствия администратора.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍244