Установка та базове налаштування CentOS 8

У цій статті ми розглянемо чисту установку з нуля і в базову настройку сервера CentOS 8 в мінімальній конфігурації.

зміст:

  • Що нового в CentOS 8?
  • Установка CentOS 8 за допомогою ISO-образу
  • Базова настройка CentOS 8 після установки
  • Cockpit: Веб-інтерфейс управління сервером в CentOS 8

Що нового в CentOS 8?

24 вересня 2019 року, вийшов реліз 8-ий версії CentOS. CentOS - дистрибутив Linux, заснований на комерційному Red Hat Enterprise, компанії Red Hat і сумісний з ним.

Розглянемо найбільш великі зміни в релізі CentOS 8:

  • Використовується ядро ​​Linux kernel 4.18.
  • Перехід з пакетного менеджера yum на dnf. В даний момент yum існує як алиас до dnf.
  • Виконано поділ основного сховища на 2 - це BaseOS і AppStream. Зроблено це для того, щоб у користувача з'явилася можливість встановлювати різні версії пакетів на сервер. BaseOS працює як і раніше.
  • Оновилося все ПО, в тому числі і ядро. У базовому репозиторії тепер встановлюється php версії 7.2 (нарешті).
  • заміна iptables на nftables. Особисто я поки що з другим не працював безпосередньо, тому не можу сказати, добре це чи погано. Єдиний момент, якщо потрібно буде переносити якісь проекти на нову ОС, доведеться розбиратися з правилами, так як є сервера з чистим iptables.
  • network-skripts не використовуються за замовчуванням для настройки мережі, тепер управління мережею покладено на Network Manager.
  • За замовчуванням устаналівается веб-інтерфейс управління сервером cockpit (Зручно для новачків).
  • Для управління контейнерами використовується podman (замість docker і mobdy).
  • Нова версія стека TCP / IP 4.16 з поліпшеною продуктивністю і підтримкою алгоритмів контролю BBR і NV.
  • Нові версії дсітрібутівов:

Установка CentOS 8 за допомогою ISO-образу

Так як я проводив установку операційної системи на віртуальній машині KVM, попередньо я скачав інсталяційний ISO-образ з одного з офіційних дзеркал (https://www.centos.org/download/mirrors/) і примонтировать його для установки на віртуальному сервері (при установці на фізичний сервер залийте інсталяційний образ СentOS на USB флешку). Відразу скажу, процес установки CentOS 8, не відрізняється від установки попередньої версії і дана стаття розрахована на те, що буде служити помічником для користувачів, які виконують подібне вперше.

У рекомендованих вимоги зазначено, що для установки CentOS 8 необхідно мінімум 10 Гб місця на диску і 512 Мб RAM на одне ядро ​​процесора

Перезапустивши віртуальну машину з примонтировать чином, я увійшов в VNC-консоль. Першим кроком, вам буде запропоновано вибрати подальші дії. Так як ви виконуємо установку, нам цікавий перший пункт меню:

Install CentOS Linux 8.0.1905

Вибравши його, у вас запуститься процес установки:

В процесі поки все необхідне програмне забезпечення завантажується, можна просто спостерігати за процесом, від вас не потрібно ніяких дій.

І коли чорний екран зміниться на інтерактивний з логотипом CentOS, пора брати в руки мишу і клавіатуру.

У привітанні, система попросить вас вибрати мову, я завжди ставлю English (Англійська), тому що мені так зручніше працювати (та й не розумію, навіщо взагалі ставити російську мову на сервері). Натисніть кнопку "Continue". У наступному меню потрібно вибрати основні параметри для установки CentOS.

Для запуску установки, обов'язково налаштувати тільки один пункт "Installation Destination", там ви вказуєте розбивку диска, але я віддаю перевагу так само, відразу налаштувати мережу і дату з часом.

Залежно від вашого часового поясу, ви встановлюєте свої параметри, для мене це Москва.

Щоб налаштувати мережу, переходимо до пункту "Network & Host Name"

В полі "Host Name" вказуємо ім'я сервера і для конфігурації мережевих інтерфейсів натискаємо "Configure"

У головній вкладці, потрібно відзначити галочкою "Automatically connect to this network when it is available", це потрібно для того, щоб мережевий інтерфейс піднімався автоматично.

Перейдіть у вкладку "IPv4 Settings" (або IPv6 якщо ви використовуєте цей протокол) налаштуйте IP-адреса, маску підмережі та шлюз:

Для введення конкретного IP, потрібно вибрати метод "Manual" і натиснути кнопку "Add", після чого у вас з'явиться можливість ввести потрібні дані. Зберігши всі, ми повернемося до початкового вікна налаштувань мережі

Як можна побачити на скріншоті, IP адреса додався і мережевий інтерфейс вже піднято (стан Connected).

Наступним кроком ми перейдемо до розбивці диска:

Для прикладу установки я скористався автоматичним розбиттям від розробників CentOS. Якщо ви хочете розбити диск по-своєму, потрібно вибрати пункт "Custom".

Якщо контролер вашого сервера не підтримує апаратний RAID, в цьому пункті меню ви можете зібрати програмний RAID з дисків сервера на базі mdadm.

Так як на моїй віртуальній машині, раніше була встановлена ​​ОС, система установки побачила це. Я видалив розділи попередньої операційної системи в наступних відкриваються меню:

Видалити розділи можна кнопкою "Delete all", після чого буде потрібно натиснути кнопку "Reclaim space", щоб розмір дискового простору стало актуальним.

Список пакетів для установки вибирається в пункті Software Selection. Якщо ви плануєте використовувати CentOS 8 в якості сервера, досить вибрати Minimal Install, а з додавань Standard і Guest Agents (якщо ви ставите гостьову ОС у віртуальній машині).

Після вищеописаних дій, можна запускати установку кнопкою "Begin Installation"

В процесі вже самій розпакування і установки необхідних компонентів, вам буде потрібно вказати пароль для root-користувача і можна створити додаткового користувача, але це не обов'язковий пункт.

Натисніть на кнопку "Root Password", введіть і повторіть пароль і натисніть "Done", щоб повернутися до установки:

Спочатку я ставлю просте пароль, щоб в разі проблем з мережею, я міг легко його ввести в VNC-консолі і виправити проблеми. Після того, як система буде встановлена, пароль рекомендується змінити на більш складний. установка CentOS 8 у мене зайняла близько 5-7 хвилин і коли у вікні установки загориться кнопка "Reboot", це означає, що все було встановлено і потрібно перезапустити сервер.

На цьому установка CentOS 8 завершена.

Базова настройка CentOS 8 після установки

Базова настройка CentOS 8 практично не відрізняється від настройки CentOS, я роблю базові настройки однакові на всіх серверах.

CentOS 8: Установка оновлень і інструментів адміністратора

Як вже зазначалося раніше, в CentOS 8 на заміну yum, прийшов dnf.

Dnf - це наступне покоління додатки YUM, менеджер пакетів для дистрибутивів Linux на основі RPM-пакетів. раніше dnf використовувався в дистрибутивах Fedora, а тепер і в CentOS 8.

Перша дія, яке я виконую на знову встановленому сервері, це оновлення системи:

dnf update -y

Якщо образ свіжий, то швидше за все у вас не буде пакетів для оновлень як в моєму випадку:

[Root @ centos var] # dnf update

Last metadata expiration check: 0:21:47 ago on Wed 09 Oct 2019 2:36:45 PM +06. Dependencies resolved. Nothing to do. Complete! 

Якщо у вас виявляться поновлення, обов'язково їх встановіть.

Наступним кроком, підключимо репозиторій EPEL і встановимо необхідні утиліти для зручного адміністарірованія сервера:

dnf install epel-release -y
dnf install mc wget screen nano net-tools bind-utils curl lsof vim -y

Мені для комфортного адміністрування вистачає цього набору утиліт, ви можете встановити свої звичні утиліти.

Автоматичне оновлення системи я не включаю, так як завжди встановлюю необхідні оновлення вручну. Якщо ви хочете налаштувати автоматичне оновлення, встановіть пакет dnf-automatic:

dnf install -y dnf-automatic

Щоб перевірити активні завдання на оновлення системи введіть:

systemctl list-timers * dnf- *

відключення SELinux

На початковому етапі я завжди відключаю SELinux (Для застосування зміни потрібно перезавантажити сервер):

nano / etc / sysconfig / selinux
reboot

відключення SELinux нальоту, можна виконати командою:

setenforce 0

Налаштування мережі в CentOS 8

Так як мережа я налаштував на етапі установки системи, настройка її в даний момент не потрібно (детальна стаття з налаштування мережі в CentOS). Хочу лише сказати, що в CentOS 8, мережа керується тільки через Network Manager і утиліту nmcl. Network-scripts за замовчуванням не підтримуються. Якщо чесно, в своїй роботі я завжди відключав NM і не використав, для мене це не зручний інструмент, тепер доведеться розбиратися і з ним.

Перевірка статусу мережі:

[Root @ server ~] # systemctl status NetworkManager

● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-10-07 8:23:11 MSK ; 3h 37min ago Docs: man: NetworkManager (8) Main PID: 870 (NetworkManager) Tasks: 3 (limit: 5060) Memory: 4.7M CGroup: /system.slice/NetworkManager.service └─870 / usr / sbin / NetworkManager - -no-daemon 

Установка і зміна hostname

Якщо ви не задали коректний hostname сервера при установці або просто хочете змінити, це можна виконати декількома способами. Змініть його в файлі / Etc / hostname або поміняйте за допомогою команди:

hostnamectl set-hostname нужний_хостнейм

Налаштування firewalld в CentOS 8

Додамо в довірені зони на firewalld, потрібні для початкової роботи сервіси (SSH і HTTP / HTTPS):

firewall-cmd --add-service = ssh
firewall-cmd --permanent --add-service = http
firewall-cmd --permanent --add-service = https

Налаштування часу і годинного поясу (time-zone)

Щоб подивитися поточний час і time-zone, потрібно ввести команду date:

[Root @ centos var] # date

Wed Oct 9 13:03:00 MSK 2019

ми вказали time-zone при установці самої системи, тому у нас час по Москві. щоб поміняти time-zone, потрібно скористатися відповідною командою:

timedatectl set-timezone Europe / Moscow

де замість Europe / Moscow ви можете вказати свій варіант, наприклад:

[Root @ server network-scripts] # ​​date
Mon Oct 7 12:46:09 MSK 2019

[Root @ server network-scripts] # ​​timedatectl set-timezone Asia / Almaty
[Root @ server network-scripts] # ​​date

Mon Oct 7 15:46:22 +06 2019

Для синхронізації часу використовується chronyd, ми включимо його і додамо в автозавантаження через systemctl:

systemctl start chronyd
systemctl enable chronyd

[Root @ server network-scripts] # ​​systemctl status chronyd

● chronyd.service - NTP client / server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-10-07 16:13: 48 +06; 9s ago Docs: man: chronyd (8) man: chrony.conf (5) Main PID: 31700 (chronyd) Tasks: 1 (limit: 5060) Memory: 1.1M CGroup: /system.slice/chronyd.service └─31700 / usr / sbin / chronyd

Налаштування історії команда в bash_history

Для зручного перегляду історії, я завжди додаю пару рядків в .bashrc, щоб надалі можна було легко орієнтуватися в звітах.

Під час налаштування за замовчуванням, висновок history виглядає наступним чином:

[Root @ centos ~] # history

1 dnf repolist 2 dnf install epel-release

Тобто ми бачимо, що виконувалося на сервері, але не бачимо час і точну дату, для мене це критично, так як доступ до серверів можуть мати кілька фахівців. Тому наведемо history до приємного вигляду:

відкриємо файл /root/.bashrc і додамо в нього потрібні рядки:
nano /root/.bashrc

export HISTSIZE = 10000 export HISTTIMEFORMAT = "% h /% d /% y -% H:% M:% S"

Тепер при перевірці history, ми бачимо точний час виконання тієї чи іншої команди:

[Root @ centos ~] # history

1 Oct / 07/19 - 16:16:29 dnf repolist 2 Oct / 07/19 - 16:16:29 dnf install epel-release

Cockpit: Веб-інтерфейс управління сервером в CentOS 8

Як ми вже згадували, в CentOS 8 встановлено веб0-інтерфейс управління сервером. Він також управляється через systemctl. Ви можете запустити його і додати в автозгрузку:

# Systemctl enable cockpit.socket
# Systemctl start cockpit.socket

За замовчуванням веб сервер Cockpit слухає на порту 9090. Додайте цей порт в дозволені:

# Firewall-cmd --get-active-zones
# Firewall-cmd --add-port = 9090 / tcp --zone = MY_ACTIVE_ZONE --permanent
# Firewall-cmd --reload

Для доступу до веб-інтерфейсу Cockpit, відкрийте в браузері URL адреса https: // your-CentOS8-IP: 9090 і авторизуйтесь.

За допомогою веб-інтерфейсу Cockpit ви можете дивитися завантаження свого сервера, управляти мережами і сховищами, контейнерами, дивитися логи.

На цьому моя типова настройка CentOS сервера закінчена, далі я виконую настройки згідно технічного завдання за різними проектами і зазвичай вони відрізняються.