Администрирование Linux серверов

Здесь рассказывается про Linux сервера в общих чертах, и их администрирование, то есть какие задачи у IT Специалиста.

Что такое сервер

Понятие «Сервер» имеет множество определений, в зависимости от того, с какой стороны посмотреть. В данном контексте я называю сервером компьютер, на котором работают серверные приложения. Эти приложения, в свою очередь, получают запросы от клиентских приложений и выполняют какие-то действия.

Сервер и Клиентские компьютеры

Серверы играют ключевую роль в IT-инфраструктуре и используются для различных задач.

Что такое Linux

Прежде всего, Linux — это ядро операционной системы. Оно отвечает за взаимодействие с железом, распределение ресурсов и подобные низкоуровневые задачи.

Под Linux серверами понимают компьютеры с установленной на них GNU/Linux системой. Это операционная система на базе ядра Linux и других программ, которые написаны проектом GNU или для проекта GNU. А вообще GNU/Linux это общее название типа операционных систем. И чаще всего GNU/Linux системы называют просто Linux системами.

А каждая конкретная GNU/Linux система, это дистрибутив Linux. В частности, дистрибутив — это конкретная сборка GNU/Linux системы, которая включает в себя ядро Linux, программное обеспечение, пакеты и конфигурации, созданные для удовлетворения определенных потребностей пользователей. Существует много разных дистрибутивов Linux.

Но, существуют операционные системы на базе ядра Linux, которые не являются GNU/Linux. Например система Android. Компания Google модифицировала ядро Linux, а вдобавок поверх ядра создало виртуальное окружение — ART. Собственно в виртуальной среде происходит вся работа Android, потому Android систему можно называть ART/Linux.

Популярные дистрибутивы Linux

Вот пять самых популярных Linux дистрибутивов, которые часто используются для серверов.

Ubuntu Server является одним из самых популярных серверных дистрибутивов благодаря своей простоте установки и управлению. Он поддерживает большое количество приложений, имеет обширную документацию и активное сообщество. Кроме того, Ubuntu Server часто используется в облачных средах благодаря своей интеграции с популярными сервисами, такими как AWS и Google Cloud.

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

Red Hat Enterprise Linux (RHEL) — это коммерческий дистрибутив, предназначенный для корпоративных серверов. Он обеспечивает поддержку от Red Hat и предлагает расширенные функции для бизнеса, такие как интеграция с облачными решениями и контейнерами. RHEL известен высокой безопасностью, регулярными обновлениями и долгосрочной поддержкой.

CentOS Stream, являющийся обновленной версией традиционного CentOS, основан на Red Hat Enterprise Linux (RHEL). CentOS был (его уже нет) бесплатным клоном RHEL, и поэтому пользовался большой популярностью. А CentOS Stream постоянно получает обновления, являясь платформой для тестирования будущих изменений в RHEL. Таким образом CentOS Stream имеет меньшую стабильность, что делает этот дистрибутив менее предпочтительным выбором для критически важных серверов.

SUSE Linux Enterprise Server (SLES) — это коммерческий дистрибутив, предназначенный для предприятий с высокими требованиями к производительности и надежности. Он предоставляет функции для высокопроизводительных вычислений и масштабируемых серверных инфраструктур. SLES широко используется для виртуализации и облачных решений.

Классификация серверов

В этой статье я классифицирую сервера по причинам их использования.

Хранение и управление данными

Серверы обеспечивают централизованное хранение данных, что позволяет организациям хранить большие объёмы информации в одном месте. Кроме того, они управляют доступом к этим данным и защищают их от несанкционированного доступа.

Файловые серверы позволяют централизованно хранить документы, фотографии, видео и другие файлы. Пример: Samba, NFS, ProFTPD, Nextcloud.

Серверы баз данных управляют структурированными данных. Обычно к ним подключаются не конечные пользователи а серверы приложений или веб-сайтов. Пример: MariaDB, PostgreSQL, Redis.

Обеспечение совместной работы

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

Почтовые серверы обеспечивают отправку, получение и хранение электронных писем. Пример: Postfix, Exim, Dovecot, Zimbra.

Серверы IP телефонии обеспечивают корпоративную телефонную связь, или позволяют создать Кол-Центры. Пример: Asterisk, FreePBX, Elastix.

Серверы управления проектами помогают командам координировать работу. Пример: Redmine, OpenProject.

Хостинг веб-сайтов и приложений

Серверы используются для размещения веб-сайтов или приложений, которые доступны пользователям по сети.

Веб-серверы обрабатывают запросы пользователей и отправляют им контент. Пример: Apache, Nginx.

Серверы приложений позволяют пользователям взаимодействовать с программами по сети. Пример: Apache Tomcat (для работы веб-приложений Java), Ktor (для приложений написанных на Kotlin), Сервер 1С (для работы с конфигурациями 1С).

Безопасность и контроль доступа

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

Серверы аутентификации управляют процессами входа и предоставления прав доступа. Пример: FreeIPA, OpenLDAP, Kerberos, FreeRADIUS.

Резервное копирование и восстановление данных

Серверы обеспечивают автоматическое резервное копирование данных, а также хранение копий данных, чтобы обеспечить их восстановление при необходимости

Серверы резервного копирования выполняют резервное копирование данных. Пример: Bacula, Amanda, rsnapshot.

Виртуализация

Серверы позволяют запускать несколько виртуальных машин на одном физическом сервере.

Серверы виртуализации позволяют создавать виртуальные машины или контейнеры для выполнения различных задач. Пример: Xen, Proxmox Virtual Environment (PVE).

Установка приложений

Чтобы система на базе ядра Linux стала сервером, в эту систему устанавливают серверные приложения. Примеры таких приложений были даны выше, в главе про классификацию серверов. Где же искать приложения для ваших серверов.

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

Linux дистрибутивы и репозитории

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

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

Настройка приложений

После установки серверного приложения, его ещё нужно настроить. Так как, обычно, Linux сервер не имеет графического интерфейса, то для настройки серверных приложений используются конфигурационные файлы (конфиги). Это текстовые файлы, в которых прописаны настройки того или иного приложения. После редактирования такого файла обычно нужно, с помощью специальной команды, заставить приложение перечитать конфигурационный файл, либо перезапустить приложение.

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

Командная строка

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

Вот пример терминала командной строки:

Как правило, администратор не работает непосредственно за самим сервером, а подключается к его командной строке по сети. Для такого удаленного подключения используется протокол SSH и одноименный сервер. Установив ssh сервер на Linux, и ssh клиент себе на компьютер, администратор может управлять сервером со своего рабочего места по сети.

SSH клиентов очень много. Они есть для разных операционных систем, например для Windows, Linux, или даже для Android. Про некоторые ssh клиенты я писал здесь.

Задачи IT специалиста

Можно выделить следующие задачи, которые будет выполнять IT специалист по Linux серверам:

  • Установка дистрибутивов на физические или виртуальные серверы.
  • Настройка самих дистрибутивов, например настройка сети, фаервола, создание пользователей и так далее.
  • Установка пакетов из репозиториев и настройка серверных приложений используя конфигурационные файлы.
  • Создание, запуск и остановка служб серверных приложений. Редактирование конфигов и перезапуск служб.
  • Работа с серверными приложениями. Например создание нового почтового ящика для нового сотрудника, если это почтовый сервер. Создание новой виртуальной машины, если это сервер виртуализации. И так далее.
  • Выполнение обновлений серверов.
  • Создание резервных копий данных, виртуальных серверов, или физических серверов. Чтобы была возможность восстановить IT инфраструктуру компании.


Оставьте комментарий