Привет, %username%
! Небольшая заметка (в первую очередь для меня) о том, что требуется сделать при разворачивании нового Linux-сервера.
Выбор OS
Начать стоит с выбора OS, т.к. это довольно важный момент. Если в компании уже имеется какое-то количество серверов на Linux, то стоит выбирать тот дистрибутив, который преобладает. Если среди дистрибутивов творится бардак и зоопарк, то стоит определиться с тем, на какой дистрибутив переводить все остальные и разворачивать новые. На выбор есть несколько дистрибутивов, которые стоит рассматривать:
- Debian 10;
- Ubuntu Server LTS;
- CentOS;
- RHEL;
- Oracle Linux;
- Rocky Linux;
- AlmaLinux;
Со сравнением некоторых дистрибутивов можно ознакомиться в статье на Habr: Есть ли жизнь после CentOS?.
Шаблонизирование
Чтобы проще было выбирать (если еще не определился) просто разверни виртуалку с каждым дистрибутивом на своей системе виртуализации (VMware или Proxmox). Поиграйся с каждым дистрибутивом и оцени какой именно тебе больше подходит. Как только ты определился с выбором, сделай преднастройку минимальную и сконвертируй в Template готовую виртуалку.
Важно: Не стоит сразу ставить весь необходимый софт (агенты мониторинга, базовые тулзы) – тебе в дальнейшем надо будет как-то это обновлять сразу после разворачивания виртуалки из шаблона.
Создай служебного пользователя automator
под которым в дальнейшем будешь ходить на сервер с помощью того же Ansible. Если есть какой-то стандарт со стороны ИБ, то можешь перенастроить порт SSH =)
Короче на этом этапе не стоит сильно увлекаться – кажущееся упрощение принесет только дополнительные страдания.
Авторизация
Этот пункт относится уже к свежеразвернутому серверу. Запомни: никто не должен иметь прямого доступа от пользователя root
– запрети вход по SSH с учеткой root
. Так же запрети вход на сервера по паролю. С помощью автоматизации на ansible
и пользователя automator
создаешь отдельных пользователей для всех своих коллег (из числа тех, кто должен иметь доступ на сервер).
Я лично для себя держу отдельную роль Ansible для случаев, когда “надо кому-то помочь” – jtprogru.profile.
Ставится она вот так просто (как и любая другая роль из Ansible Galaxy):
ansible-galaxy install jtprogru.profile
Данная роль создает мою учетку, устанавливает пароль, добавляет ключи и кидает некоторые конфиги в профиль. Сделай себе что-то подобное и будет тебе счатье! А если ты работаешь в команде, то можно всем стандартизировать профили. Короче включай фантазию и пользуйся мозгами.
Есть еще и альтернативная роль. В ней ничего грандиозного нету. Позволяет указать список логинов и ключей. Так же доступна в Ansible Galaxy: jtprogru.admins_access.
В дальнейшем тебе никто не мешает прикрутить ту же FreeIPA, LDAP, Keycloak для авторизации на серверах и ходить по доменным учеткам. Но иметь локальую служебную учетку на случай “БИГ БАДА БУМ!” ты обязан.
Необходимый софт
Список необходимых тулзовин, которые надо ставить на сервер обычно у каждого админа свой, но я попытался собрать что-то усредненно-обобщенное. Список этого софта я так же для упрощения своей жизни собрал в виде Ansible-роли, которая так же доступна для всех – jtprogru.install_base_soft. Ставим роль:
ansible-galaxy install jtprogru.install_base_soft
Роль позволяет расширить список софта каким-то специфичным и даже переопределить основной список – все в твоих руках.
Параметры ядра
К настройкам ядра в Linux стоит относится аккуратно и читать документацию. С некоторыми из параметров ядра можно ознакомиться в одной из моих прошлых статей: [Linux] Настройка Linux для HL и защиты от DDoS. На случай работы с параметрами ядра у меня – не поверишь! – тоже есть ролька небольшая в Ansible Galaxy – jtprogru.sysctl. Данную роль стоит запускать с осторожностью и трижды подумать подбирая и меняя параметры.
Так же стоит учитывать, что в зависимости от дистрибутива, его версии и версии используемого ядра наименования некоторых параметров ядра могут отличаться. Короче как обычно – БУДЬ ВНИМАТЕЛЬНЕЕ!
Мониторинг
В качестве систем мониторинга используй ту систему, которую хорошо знаешь. Ну это мой тебе субъективный совет. В остальном я лично вижу два стандарта: Prometheus и Zabbix.
Если у тебя нет еще работающей системы мониторинга или ты пока не особо понимаешь “зачем оно тебе надо”, то сходи вот в эту статью и почитай: [Monitoring] Мониторинг: что/куда/зачем?.
Я лично делю эти системы для себя по следующему принципу:
- Zabbix – мониторинг инфраструктуры, состояние сервера, хранение исторических данных за большой промежуток времени;
- Prometheus – мониторинг Docker/Kubernetes;
Я знаю что в Zabbix появляется возможность мониторить и Docker, и Kubernetes, но не могу полноценно рекомендовать т.к. не использовал. Просто установленный на хосте Docker daemon отлично мониторится с помощью Zabbix Agent 2, думаю и для Kubernetes уже появилось какое-то решение.
Итог
По итогу мы получаем Linux-сервер с локальной служебной учетной записью для работы автоматизации (или в случае аварийного доступа). Который будет очень быстро разворачиваться и не будет требовать дополнительных телодвижений.
В целом для первоначального старта этого всего достаточно, а дополнительное и полезное можно глянуть в этих статьях:
- [Linux] Что показывает atop? – отличная утилита, которая может быть очень полезна на самых первых этапах (когда мониторинга как такового нету совсем);
- [Linux] Авторизация по ключу при подключении по SSH – как настроить авторизацию по ключу (не редко среди разрабов и начинающих админов этого не популярная инфа);
- [DevOps] Ansible – основы управления конфигурацией – немного об основах Ansible, который мне очень нравится своей тем, что он довольно простой для старта и с ним легко начать практиковать IaC;
- [Linux] Настройка systemd-resolved – настройка встроенного резолвера (SystemD уже здесь – смирись и прекрати срать башовыми скриптами в
/etc/init.d/
); - [Linux] Настраиваем systemd-timesyncd – настройка встроенного демона синхронизации времени;
- [Ubuntu] Установка Zabbix 5.0 на Ubuntu 20.04 – небольшая заметка о том, как установить Zabbix;
- [Grafana] Установка Grafana 7 на Ubuntu 20.04 – стандартная визуализация от Zabbix мне не заходит, а вот Grafana прям доставляет удовольствие;
Что-то прям дофига набралось ссылочек на собственные статьи =\
Ну если чего-то не хвататет – ссылки для связи внизу. На этом всё!
Если у тебя есть вопросы, комментарии и/или замечания – заходи в чат, а так же подписывайся на канал.