AI tarapyndan döredildiAdamlar tarapyndan gowulandyryldy

Riqli · ýaşaýan resminamalar · yzygiderli täzelenýär

AI biliminiň adam tejribesi bilen duşuşýan ýeri.

Dostlaryňyz bilen paýlaş
image

Администрирование Linux. Hard skill. (Linux администрирование. Linux настройка сервера. Командная строка linux. Systemd unit file. Tutorial. Practice. Standard.)

bölümler

Администрирование Linux: Управление пакетами и репозиториями (YUM/DNF)

Этот раздел охватывает основы работы с менеджерами пакетов в семействе Red Hat. Вы узнаете, как искать, устанавливать, обновлять и удалять программное обеспечение, а также управлять репозиториями для автоматического разрешения зависимостей.
contents

В дистрибутивах семейства Red Hat (RHEL, CentOS, Rocky Linux) основным инструментом для управления пакетами является YUM (Yellowdog Updater Modified) и его преемник DNF. Они автоматически разрешают и устанавливают зависимости пакетов, что критически важно для стабильности и безопасности системы. Файлы конфигурации репозиториев с расширением `.repo` хранятся в каталоге /etc/yum.repos.d/. Просмотреть историю всех транзакций (установка, удаление, обновление) можно с помощью команды `yum history`.

contents

Для поиска пакета, когда точное имя неизвестно, используется команда yum search. Например, `yum search web server`. Для получения подробной информации о конкретном пакете (версия, архитектура, описание, лицензия, репозиторий) применяется команда yum info. Установка пакета выполняется командой `yum install`, а удаление — `yum remove`.

bölümler

Сетевая безопасность: Управление брандмауэром firewalld

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

Firewalld использует концепцию зон (zones) для определения уровня доверия к сети. Каждая зона (например, `public`, `home`, `internal`, `dmz`) имеет свой набор предопределенных правил. Зона по умолчанию — `public`. Для просмотра активной зоны используется команда `firewall-cmd --get-default-zone`. Чтобы добавить правило, нужно использовать ключ `--permanent` для сохранения после перезагрузки, а затем выполнить `firewall-cmd --reload`.

contents

Для разрешения доступа к веб-серверу необходимо добавить службы `http` (порт 80) и `https` (порт 443) в зону. Команда: `firewall-cmd --permanent --add-service=http --add-service=https`. Также можно разрешить доступ по номеру порта: `firewall-cmd --permanent --add-port=8080/tcp`. Для проверки всех правил в зоне используется `firewall-cmd --list-all`.

bölümler

Безопасность Linux: SELinux и управление доступом

Этот раздел погружает вас в механизм принудительного контроля доступа SELinux (Security-Enhanced Linux). Вы узнаете о его режимах работы, контекстах безопасности, а также научитесь диагностировать и исправлять проблемы, связанные с SELinux.
contents

SELinux добавляет уровень безопасности поверх стандартных прав доступа (rwx). Каждый процесс и файл имеют контекст безопасности, включающий пользователя, роль и тип. Основные режимы SELinux: Enforcing (правила применяются и блокируют запрещенный доступ), Permissive (правила не применяются, только логируются) и Disabled (полностью отключен). Проверить текущий режим можно командой `getenforce`.

contents

Каждый файл и каталог имеет контекст SELinux, который можно просмотреть с помощью команды `ls -Z`. Например, веб-сервер Apache может работать только с файлами, имеющими тип `httpd_sys_content_t`. Если переместить файл сайта в другой каталог, контекст может измениться, и Apache не сможет его прочитать. Для восстановления правильного контекста используется команда restorecon.

bölümler

Планирование задач и автоматизация (Cron и Bash)

В этом разделе вы научитесь автоматизировать рутинные задачи системного администратора с помощью планировщика Cron и создавать собственные скрипты на языке Bash для эффективного управления системой.
contents

Демон crond выполняет задачи по расписанию. Пользовательские задания настраиваются в crontab (команда `crontab -e`). Синтаксис строки crontab: `минуты часы день_месяца месяц день_недели команда`. Специальные директории, такие как /etc/cron.daily/, позволяют запускать скрипты ежедневно. Просмотреть список заданий текущего пользователя можно командой `crontab -l`.

contents

Bash-скрипты начинаются с shebang (`#!/bin/bash`), указывающего интерпретатор. Для получения ввода от пользователя используется команда read. Условные операторы (`if-then-else`) и циклы (`for`, `while`) управляют логикой. Для обработки текста и фильтрации данных применяются мощные утилиты grep, awk и sed. Важно устанавливать правильные права доступа на скрипт (`chmod +x`).

bölümler

Виртуализация и контейнеризация (KVM и Podman)

Этот раздел знакомит с технологиями виртуализации на базе ядра KVM и контейнеризации с помощью Podman. Вы научитесь создавать и управлять виртуальными машинами и контейнерами, что является ключевым навыком для современного DevOps-инженера.
contents

KVM (Kernel-based Virtual Machine) — это встроенное в ядро Linux решение для виртуализации. Управление осуществляется через libvirt. Основные команды: virsh list --all (список всех ВМ), virsh start (запуск), virsh shutdown (корректное выключение) и virsh destroy (принудительное выключение). Графический интерфейс для управления — Virtual Machine Manager (virt-manager).

contents

Podman — это демон-less (без центрального демона) инструмент для управления контейнерами, что делает его более безопасным, чем Docker. Команды Podman совместимы с Docker. Запустить контейнер можно командой podman run. Ключ `-it` запускает интерактивный сеанс, `--rm` автоматически удаляет контейнер после остановки, а `-d` запускает контейнер в фоновом режиме (демоном).

bölümler

Мониторинг и производительность системы (top, nice, renice)

В этом разделе вы освоите инструменты для мониторинга системы в реальном времени, анализа загрузки CPU, использования памяти и дисковых операций I/O, а также научитесь управлять приоритетами процессов для оптимизации производительности.
contents

Команда top предоставляет динамический взгляд на работающие процессы. Она показывает загрузку процессора (CPU), использование оперативной памяти (Memory) и swap-раздела. Для сортировки процессов по использованию CPU нажмите клавишу `P`, по использованию памяти — `M`. Для выхода из top используется клавиша `q`. Более современная альтернатива — htop.

contents

Изменить приоритет уже запущенного процесса можно командой renice. Например, `renice -n 10 -p 1234` установит nice-значение 10 для процесса с PID 1234 (понизив его приоритет). Только суперпользователь (root) может устанавливать отрицательные значения (повышать приоритет). Для запуска нового процесса с измененным приоритетом используется команда `nice -n 5 command`.

bölümler

Администрирование Linux: Автоматизация с Python

Основы Python для замены Bash-скриптов. Динамическая типизация, условные операторы, работа с файлами и модуль subprocess.
contents

В отличие от Bash, Python лучше подходит для сложной логики и обработки данных. Переменные не требуют указания типа. Условный оператор if-elif-else управляет логикой. Модуль subprocess выполняет системные команды.

contents

Обработка ошибок: конструкция try-except-else-finally. Списки (list) и словари (dict) — основные структуры данных. Функции переиспользуют код. Модули и пакеты организуют проект.

bölümler

Администрирование Linux: Основы Ansible

Введение в Ansible — инструмент автоматизации без агентов. Ключевые компоненты: модули, инвентаризация, playbooks на YAML и ad-hoc команды.
contents

Ключевое преимущество Ansible — отсутствие агентов (используется SSH). Инвентаризация (Inventory) — файл со списком хостов и групп. Модули — инструменты для задач. Playbooks на YAML описывают желаемое состояние системы.

contents

Модуль ping проверяет доступность узлов. Модуль apt/yum управляет пакетами. Модуль copy копирует файлы. Модуль template использует Jinja2 для динамических конфигураций. Переменные параметризуют конфигурации.

bölümler

Администрирование Linux: Контейнеризация с Docker

Основы Docker: образы, контейнеры, Docker Hub, Dockerfile. Отличия контейнеров от виртуальных машин.
contents

Контейнеры используют одно ядро хостовой ОС, они легковесны. Образ (image) — read-only шаблон. Docker Hub — публичный реестр образов. docker pull загружает образ, docker run создает контейнер. -d — фон, -it — интерактив.

contents

Управление: docker ps (список), stop, rm, logs. Тома (volumes) для постоянных данных. Docker Compose и docker-compose.yml для многоконтейнерных приложений. Многоэтапная сборка уменьшает размер образов.

bölümler

Администрирование Linux: Git и CI/CD

Основы Git: репозитории, ветки, слияние. Базовые концепции CI/CD и автоматизация с GitHub Actions.
contents

Git — распределенная система контроля версий. Основные команды: init, clone, add, commit, push, pull, branch, merge. Ветки (branches) изолируют разработку новых функций. GitHub Actions — платформа CI/CD.

contents

В GitLab CI конвейер в файле .gitlab-ci.yml. Элементы: stages (этапы), jobs (задачи), runners (агенты). Git Flow — стратегия ветвления (main, develop, feature). Pull Request — рецензирование кода.

bölümler

Администрирование Linux: Мониторинг с ELK Stack

Введение в экосистему ELK: Elasticsearch, Logstash, Kibana, Beats. Централизованный сбор и визуализация логов и метрик.
contents

Elasticsearch — распределенная поисковая NoSQL. Logstash — конвейер обработки (сбор, фильтрация). Kibana — веб-интерфейс для визуализации. Beats — легковесные агенты: Filebeat (логи), Metricbeat (метрики системы).

contents

APM отслеживает производительность приложений. Elasticsearch Query DSL — язык запросов JSON. Алерты (Alerts) в Kibana на основе правил (CPU > 90%). Визуализации объединяются в дашборды.

bölümler

Администрирование Linux: Управление пользователями и правами

Управление локальными пользователями и группами. Файлы /etc/passwd, /etc/shadow, /etc/group. Команды useradd, usermod, userdel, groupadd.
contents

Файл /etc/passwd хранит информацию о пользователях (имя, UID, GID, домашний каталог, shell). Файл /etc/shadow содержит зашифрованные пароли и политики их действия. Команда useradd создает пользователя, userdel удаляет (ключ -r удаляет домашний каталог).

contents

Права доступа (чтение r=4, запись w=2, выполнение x=1). Команда chmod меняет права. chown меняет владельца и группу. ACL (setfacl/getfacl) дают гибкие права. Специальные биты: SUID (4), SGID (2), Sticky (1).

bölümler

Администрирование Linux: Управление процессами

Управление процессами: ps, top, htop, kill, jobs, bg, fg. Сигналы процессов. Приоритеты nice и renice.
contents

ps aux — список всех процессов. top/htop — интерактивный мониторинг. kill отправляет сигналы (SIGTERM=15, SIGKILL=9). jobs показывает фоновые задачи. bg/fg управляют задачами. nice запускает процесс с приоритетом, renice меняет приоритет работающего.

contents

Команда top: клавиша P — сортировка по CPU, M — по памяти, k — убить процесс, r — изменить приоритет (renice). htop — улучшенная версия с цветами и управлением мышью. systemd-cgtop показывает использование ресурсов по контрольным группам (cgroups).

bölümler

Администрирование Linux: Управление дисками и файловыми системами

Управление дисками: fdisk, parted, mkfs, mount, umount, df, du, LVM. Монтирование файловых систем.
contents

df -h — свободное место на дисках. du -sh — размер каталога. fdisk -l — список разделов. mkfs.ext4 создает файловую систему. mount монтирует раздел, umount размонтирует. /etc/fstab — автоматическое монтирование при загрузке.

contents

LVM (Logical Volume Manager): PV (Physical Volume), VG (Volume Group), LV (Logical Volume). pvcreate, vgcreate, lvcreate. Расширение LV: lvextend + resize2fs (для ext4) или xfs_growfs (для XFS). snapshots — снимки состояния.


soraglar

Какой инструмент командной строки в RHEL 9 и CentOS Stream 9 используется для управления пакетами с автоматическим разрешением зависимостей?

jogaplarDogry

DNF (Dandified YUM).

dusundirishler

Начиная с RHEL 8 и CentOS 8, YUM был заменен на DNF как стандартный менеджер пакетов. DNF предлагает улучшенную производительность, лучшее разрешение зависимостей, более чистый API и поддержку сторонних плагинов, оставаясь при этом обратно совместимым с основными командами YUM.

jogaplarNädogry

APT (Advanced Package Tool).


soraglar

Какая команда YUM/DNF позволяет просмотреть историю всех выполненных транзакций с пакетами (установка, удаление, обновление)?

jogaplarDogry

Команда yum history (или dnf history).

dusundirishler

`yum history` отображает список транзакций с уникальными ID, датой, временем, действием и количеством затронутых пакетов. Это незаменимый инструмент для аудита и отката изменений, так как с помощью `yum history undo ` можно отменить любую прошлую транзакцию.