Перше, що треба зробити після встановлення Linux Debian на сервер

debianПісля того як ми встановили Linux Debian 8 Jessie на сервер та розібрались з віддаленою роботою через SSH, є кілька речей, які треба зробити, перш ніж використовувати його в роботі. Мова йде про базові налаштування та встановлення необхідних пакетів.

Наперед скажу, що всі приклади стосуватимуться Debian Linux 8 Jessie, а команди виконуються під користувачем root.

Оновлення

Для початку треба оновити Debian до останньої версії. Оскільки оновлення завантажуються з репозиторіїв, то потрібно мати правильний перелік репозиторіїв.

Перелік основних репозиторіїв знаходиться в файлі /etc/apt/sources.list

# nano /etc/apt/sources.list

Туди рекомендується прописати наступні шляхи до репозиторіїв:

deb http://http.debian.net/debian jessie main contrib non-free
deb-src http://http.debian.net/debian jessie main contrib non-free

deb http://http.debian.net/debian jessie-updates main contrib non-free
deb-src http://http.debian.net/debian jessie-updates main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

Треба зауважити, що це буде працювати лише для Debian 8 Jessie. Якщо у вас інший реліз, тоді варто пошукати шляхи до репозиторіїв саме для вашого релізу. Як заведено, це можна зробити просто замінивши слова jessie на назву вашого релізу.

Старі посилання можете закоментувати додавши на початок стрічок символ решітки #.

Тепер оновимо списки доступних пакетів:

# aptitude update

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

Оновимо встановлені пакети:

# aptitude upgrade
# aptitude dist-upgrade

Перша команда лише оновить версії встановлених пакетів, якщо такі є. Це зазвичай мінорні оновлення, що не вимагають встановлення додаткових пакетів чи видалення існуючих.

Друга команда зазвичай встановлює мажорні оновлення і може вирішувати конфлікти між пакетами встановленням додаткових та видаленням існуючих пакетів.

Перевага Debian якраз в тому, що ці операції значно безпечніші, ніж в інших збірках Linux. Особисто в мене жодного разу не виникало проблем з оновленням, хоча теоретично невеликий ризик завжди є, і про це варто пам’ятати.

Локалізація

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

Виконаємо команду:

# dpkg-reconfigure locales

З’явиться вікно, в якому потрібно обрати лише en_US.UTF-8 UTF-8, після цього клавішею TAB наводимо на Ok і тиснемо Enter.

У наступному вікні вибираємо en_US.UTF-8 UTF-8 і тиснемо Enter.

Далі потрібно поправити файл:

# nano /etc/default/locale

Там треба прописати наступний текст (попередній можете закоментувати решіткою # або просто видалити):

LANGUAGE="en_US.UTF-8"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

Зберігаємо і перезавантажуємо систему:

# reboot

Базові програми та пакети

Пропоную встановити базові пакети та програми, що можуть стати в пригоді в майбутньому, або можуть знадобитись при встановленні інших програм:

# aptitude install mc htop tmux curl git pigz lsb-release gettext ca-certificates tcl-dev build-essential libcurl4-openssl-dev libffi-dev

Коротко про встановлені пакети:
mc — це двопанельний файловий менеджер;
htop — це утиліта на базі top, яка має більше можливостей в інтерфейсі, гарніше виглядає і більш зручна в користуванні, як на мене;
tmux — це програма, яка дозволяє працювати в консолі в кількох сесіях, ділити екран на частини і легко відновлювати попередню роботу після розірвання та відновлення зв’язку з сервером;
curl — це утиліта для роботи з мережею, наприклад, для підключення до віддалених серверів і передачі даних, підтримує багато різних протоколів;
git — це утиліта, що дозволяє працювати з GIT-репозиторіями;
pigz — це gzip, який вміє працювати в кількох паралельних потоках, а це дозволяє значно ефективніше використовувати багатоядерний процесор;
lsb-release — це утиліта, що дозволяє отримати інформацію про встановлену збірку Linux;
gettext — це набір утиліт для інтернаціоналізації програм, які використовуються у великій кількості програмного забезпечення;
ca-certificates — це набір сертифікатів та даних CA, який дозволяє перевіряти достовірність SSL-з’єднань;
решта — це бібліотеки, необхідні для компіляції та інсталяції різноманітних програм.

SWAP

Про SWAP я вже згадував в статті про інсталяцію Linux Debian 8 Jessie, проте раджу прочитати цей розділ в будь-якому випадку, бо це важливо.

SWAP — це так звана віртуальна пам’ять, яка необхідна для стабільної роботи операційної системи, особливо якщо оперативної пам’яті небагато. Ведеться багато дискусій щодо формули визначення розміру SWAP, але все одно все залежить не лише від розміру оперативної пам’яті, а й від програмного забезпечення, яке працює в системі. Для того щоб ви мали хоч якесь уявлення щодо необхідного об’єму SWAP, я наведу кілька приблизних усереднених прикладів визначення його об’єму для сервера, залежно від об’єму оперативної пам’яті:

500 MB RAM ⇒ 1-1.5 GB SWAP
1 GB RAM ⇒ 2 GB SWAP
1.5 GB RAM ⇒ 2.5-3 GB SWAP
2 GB RAM ⇒ 3-4 GB SWAP
3 GB RAM ⇒ 4-5 GB SWAP
4 GB RAM ⇒ 4 GB SWAP
8 GB RAM ⇒ 4-8 GB SWAP
16 GB RAM ⇒ 4-8 GB SWAP
32 GB RAM ⇒ 6-10 GB SWAP

Щоб перевірити, чи у вас вже використовується SWAP введіть команду:

# swapon -s

Якщо команда нічого не виведе, значить SWAP у вас не використовується, і це може призвести до проблем, особливо якщо оперативної пам’яті у вас мало, і ви використовуєте СУБД, наприклад, MySQL, PostreSQL, Redis, MongoDB тощо.

Щоб не ускладнювати собі життя, SWAP можна використовувати не лише як окремий розділ на диску, а й як звичайний файл. Створити такий файл доволі легко.

Створимо файл, який буде виступати в ролі SWAP:

# fallocate -l 1000M /swapfile

Я вказав розмір 1000MB, ви можете підкорегувати це значення на необхідне вам, наприклад, 1.5G, 2000M, 4G тощо.

Для того щоб файл не був фрагментований, можна відразу його дефрагментувати, це трохи збільшить швидкість роботи з ним, якщо на сервері використовується HDD:

# e4defrag /swapfile

Для безпеки необхідно змінити права доступу до цього фалу:

# chown root:root /swapfile
# chmod 600 /swapfile

Щоб наш файл міг використовуватись як SWAP, необхідно виконати команду:

# mkswap /swapfile

Тепер файл готовий, щоб задіяти його в ролі SWAP:

# swapon /swapfile

Ця команда примонтує файл як SWAP-розділ і з цього моменту наша система може використовувати SWAP. Можете переконатись у цьому:

# swapon -s

Тепер потрібно зробити так, щоб монтування SWAP-файлу здійснювалось автоматично при кожному запуску системи. Для цього необхідно внести зміни в файл /etc/fstab:

# nano /etc/fstab

Додамо рядок в кінець файлу:

/swapfile  swap  swap  defaults  0  0

Тепер ми забезпечили систему SWAP’ом. Це було нескладно.

Але є ще одна одна опція, яку потрібно налаштувати. Мова йде про vm.swappiness. Це така хитра опція, що визначає, скільки має залишитись вільного місця в оперативній пам’яті, після чого почне використовуватись SWAP. За замовчуванням це 60%. Тобто якщо оперативна пам’ять буде зайнята на більш ніж 40%, тоді Linux почне використовувати SWAP. Це призведе до уповільнення роботи, бо операції читання/запису над диском є дуже повільними. Тому давайте зменшимо це значення. Рекомендується зменшувати це значення до 10%, але при значеннях 3-5% я не спостерігав жодних проблем. Тому якщо у вас об’єм оперативної пам’яті 8GB і більше, то ставте 10%, якщо менше, то ставте 5%.

Щоб встановити цю опцію, відкрийте файл /etc/sysctl.conf в редакторі:

# nano /etc/sysctl.conf

І змініть чи додайте в кінець опцію:

vm.swappiness=5

У своєму випадку я вказав 5%. Після збереження файлу, застосуйте зміни, щоб вони вступили в дію:

# sysctl -p

Зі SWAP’ом розібрались, можна рухатись далі.

Hostname

Про hostname я вже згадував в статті про інсталяцію Linux Debian 8 Jessie, проте іноді буває необхідність вміти змінювати це налаштування, особливо якщо ви отримуєте сервер з вже встановленим Linux.

Hostname — це просто назва машини у вигляді одного слова, наприклад server1. Можна замість hostname вказати доменне ім’я, але це не зовсім буде правильно, хоча все буде працювати.

Я назву свій сервер просто dev. Відкриємо файл /etc/hostname в редакторі:

# nano /etc/hostname

і впишемо туди dev та збережемо.

Наступним кроком буде поправити файл /etc/hosts:

# nano /etc/hosts

Там потрібно ввести наступні рядки:

127.0.0.1 localhost.localdomain localhost
190.180.170.160 dev.ssdev.pp.ua dev

де 190.180.170.160 — IP вашого сервера.

Якщо сервер не має статичної IP, тоді в другому рядку потрібно змінити IP на 127.0.1.1:

127.0.1.1 dev.ssdev.pp.ua dev

Відповідно треба затерти або закоментувати решіткою # попередні рядки, що починаються на IP, які ви додали до файлу.

Тепер застосуємо зміни:

# /etc/init.d/hostname.sh start

Після цього можуть не всі зміни застосуватись, тому краще перезавантажити сервер:

# reboot

Перевіримо, чи ми правильно налаштувати хост:

# hostname

Має вивести лише назву хоста, тобто dev.

# hostname -f

Виведе назву хоста та домен: dev.ssdev.pp.ua.

# hostname -d

Виведе лише домен: ssdev.pp.ua.

Час

Наступним пунктом базових налаштувань буде час.

Для того щоб змінити часовий пояс, запустіть команду:

# dpkg-reconfigure tzdata

і оберіть ваш часовий пояс. Зазвичай там вказується той часовий пояс, який зручний для обслуговування сервера, оскільки це впливатиме на дату, яка буде вписуватись у файлах логів. Хоча може бути криве програмне забезпечення, яке може залежати від часового поясу в системі, тому на це варто вважати. Особисто я з таким ще не стикався.

Для того щоб час на вашому сервері був точний до мілісекунд, потрібно встановити NTP-клієнт, який буде постійно слідкувати, щоб час на вашому сервері завжди був точний.

Встановимо NTP-клієнта:

# aptitude install ntp ntpdate

Тепер потрібно зайти на сайт www.pool.ntp.org і знайти хости серверів, які фізично розташовані найближче до вашого сервера. Наприклад, в мене сервер знаходиться у Франкфурті, Німеччина, відповідно на сторінці http://www.pool.ntp.org/zone/de є перелік наступних хостів:

server 0.de.pool.ntp.org
server 1.de.pool.ntp.org
server 2.de.pool.ntp.org
server 3.de.pool.ntp.org

Відкриємо файл /etc/ntp.conf в редакторі:

# nano /etc/ntp.conf

закоментуємо решіткою # всі рядки, які починаються на server і додамо туди хости, які знайшли на сайті:

#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst

server 0.de.pool.ntp.org iburst
server 1.de.pool.ntp.org iburst
server 2.de.pool.ntp.org iburst
server 3.de.pool.ntp.org iburst

Як ви помітили, я додав в кінці параметр iburst. Цей параметр пришвидшує процес синхронізації часу.

Давайте тепер спробуємо перевірити, чи працює синхронізація часу. Зупинимо демон ntp:

# service ntp stop

і спробуємо здійснити синхронізацію часу на першому хості NTP-сервера:

# ntpdate 0.de.pool.ntp.org

Якщо ви побачите щось на зразок цього:

26 Sep 15:11:25 ntpdate[14832]: adjust time server 85.25.197.197 offset 0.236212 sec

це означає, що час на нашому сервері поспішав на 0.236212 сек, але тепер він оновився і йде точно.

Відновимо роботу демона ntp:

# service ntp start

Тепер час на вашому сервері завжди буде точний, можете спати спокійно.

На завершення

Після встановлення нових пакетів та оновлення існуючих, можна очистити кеш менеджера пакетів. Для цього є дві команди:

# aptitude autoclean
# aptitude clean

Перша команда видалить застарілі завантажені файли пакетів з кешу. Друга команда видалить усі завантажені файли пакетів з кешу.
Таким чином можна використовувати лише одну з цих двох команд. Я в своїй роботі використовую другу.

Після всіх вище описаних дій ваш сервер повністю готовий до подальшої роботи.

Перше, що треба зробити після встановлення Linux Debian на сервер: 1 коментар

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *