- Установка Ubuntu Server на виртуальную машину Virtualbox и настройка SSH сервера.
- 1. Подготовка к установке.
- Ссылки на скачивание:
- 2. Установка Ubuntu Server
- 3. Настраиваем подключение по SSH
- How To Setup LVS (Linux Virtual Server) Load Balancer on CentOS 8 / RHEL 8
- Step 1: Installing Linux Virtual Server on CentOS 8 / RHEL 8
- Step 2: Enabling IP forwarding and enable service
- Step 3: Configure LVS as Load Balancer
- Step 4: Adding a Virtual Service
Установка Ubuntu Server
на виртуальную машину Virtualbox
и настройка SSH сервера.
Практически любому веб-разработчику, рано или поздно, приходится сталкиваться с веб серверами. Даже если Вы работаете в достаточно крупной компании и за работу с сервером отвечает специально обученный человек, знать как устроен сервер все равно не будет лишним.
Сегодня мы установим сервер Ubuntu на виртуальную машину и у Вас появиться возможность с ним поэкспериментировать. Установить, например, Node.js или базу данных. Установить NGINX, Apache, изменить настройки и т.д.
Для этого совершенно не обязательно тратить деньги и покупать место у хостера.
1. Подготовка к установке.
Ссылки на скачивание:
Для начала скачаем и установим виртуальную машину VirtualBox, сам сервер Ubuntu и программы для связи с нашим сервером. Если у Вас система Windows и установлен PowerShell, то достаточно скачать и установить WinSCP, если PowerShell не установлен, то нужно будет скачать PuTTY. Для систем Linux дополнительных программ не требуется. К сожалению для MacOS подсказать не смогу.
Здесь будет рассмотрена установка и настройка Ubuntu Server 18.04 на Windows. Однако установка и настройка на другие системы отличается только способом подключения к SSH серверу.
Какой сервер Ubuntu выбрать, решать Вам. !8.04 устанавливают абсолютно все хостеры, 20.04 – не факт. Но на Ubuntu Server 20.04 без танцев с бубнами по умолчанию ставится Python 3.8. И устанавливается MySQL 8. Хотя для тренировки подойдет любая.
2. Установка Ubuntu Server
Запускаем VirtualBox, заходим в «Файл» -> «Менеджер сетей хоста» и проверяем, чтобы настройки совпадали с теми, что на скриншоте ниже. По умолчанию они должны быть именно такими. Если нет — настраиваем.
Нажимаем кнопку «Создать», называем ubuntu, выбираем разрядность как у Вашей системы и соглашаемся со всем, что предложено по умолчанию.
Теперь нужно указать место хранения виртуальной машины. Я предпочитаю хранить подобные вещи не на системном диске. Жмем на иконку папки и выбираем желаемый диск и директорию. Имя оставляем по умолчанию ubuntu.
Ниже предлагается указать максимальный размер виртуального диска. Дело в том, что динамический виртуальный диск подразумевает не бесконечное расширение, а то, что занимать он будет столько, сколько в нем записано. Но не больше, чем мы укажем при его создании. Поэтому зададим нашему диску гигов 20. Для обучения, думаю, хватит. Можете задать больше.
Нажимаем «Создать». Далее жмем кнопку «Настроить» и выбираем вкладку Сеть. Первый адаптер оставляем без изменений. Заходим во вкладку «Адаптер 2», включаем его и выбираем «Виртуальный адаптер хоста». Жмем «ОК».
Теперь нажимаем кнопку «Запустить». Появмться окно выбора установочного диска. Жмем на кнопку с папкой, далее «Добавить» и выбираем скачанный образ Ubuntu Server. Жмем «продолжить».
Начнется установка сервера. Выбираем Английский язык, выбираем обновление во время установки и затем везде кликаем [Done].
Для перехода между пунктами используем клавишу Tab. Для выбора «Continue» используем стрелку вниз.
Указываем свое имя, имя сервера, имя пользователя, под которым будете заходить и пароль пользователя. Подтверждаем пароль пользователя. Далее обязательно отмечаем установку OpenSSH Server. Для этого нажимаем клавишу Пробел. В поле установки дополнений ничего не выбираем и не нажимаем «Cancel update and reboot». Установка обновлений может занять достаточно много времени. Ждем.
Дожидаемся надписи «Reboot» и жмем Enter. Затем установщик просит изьять установочный диск. Заходим в «Устройства» -> «Оптические диски» и кликаем по ubuntu 18.04 (или 20.04 в зависимоти от того, какую редакцию устанавливаете). Снова заходим в «Устройства» -> «Оптические диски» и нажимаем «Изъять диск из привода». Жмем Enter, дожидаемся перезагрузки сервера и когда потребует — вводим логин и пароль. Пароль при вводе не отображается!
На этом установка Ubuntu Server закончена. Дальше будем настраивать.
3. Настраиваем подключение по SSH
Для начала создадим пароль для пользователя «ROOT». Это пользователь Ubuntu, который имеет расширенные права (аналогично пользователю «Администратор» в Windows). Для этого вводим:
Необходимо будет ввести свой пароль, затем ввести новый пароль для рута и подтвердить новый пароль.
Теперь разрешим руту входить по SSH. Для этого отредактируем файл sshd_config. Вводим:
sudo nano /etc/ssh/sshd_config
Возможно потребуется ввести свой пароль (не рута!). Находим строчку #PermitRootLogin prohibit-password, раскомментируем ее и заменяем prohibit-password на yes
Нажимаем CTRL-X -> Y -> Enter. Перезапускаем SSH сервер:
Теперь временно настроим сетевое подключение для SSH. Временно потому, что после перезагрузки такая настройка уже работать не будет и придется вводить комманду заново. Набираем:
sudo ifconfig enp0s8 192.168.56.101
Проверяем. Набираем ifconfig и видим подлючение enp0s8
Теперь открываем PowerShell и подключаемся к нашему серверу (если PowerShell то устанавливаем PuTTY и используем его):
В перый раз при входе на незнакомый адрес, PowerShell спросит разрешения. Пишем Yes. Вводим пароль рута и заходим на сервер.
Дальше настроим подключение с помощью WinSCP. Открываем программу, выбираем «Новое подключение», протокол передачи SFTP, Имя хоста вводим 192.168.56.101, порт оставляем 22, имя пользователя — root, пароль — наш пароль рута. Нажимаем «Сохранить», ставим галку «запомнить пароль» вводим имя подключения или оставляем как есть и жмем «ОК». Дальше нажимаем «Войти» и как и в PowerShell при первом запуске спросит разрешение для подключения к неизвестному серверу. Разрешаем.
Теперь настроим для WinSCP внешний редактор кода. Для этого заходим «Параметры» -> «Настройки» -> «Редакторы» и нажимаем «Добавить». Выбираем «Внешний редактор -> «Обзор» и находим свой редактор кода. Я для этих целей использую VS Code (C:\Program Files\Microsoft VS Code\code.exe). Вы можете использовать любой, к какому привыкли. Например Notepad++ или Sublime Text. Не советую для этих целей использовать IDE. Слишком долго грузиться будет. Выбираем, нажимаем «ОК», смотрим, чтобы редактор появился в списке, перемещаем его вверх одноименной кнопкой и снова «ОК».
Теперь увеличим время жизни сессии SSH. Если определенное время, при подключении по SSH, не производить никаких действий, то подключение прерывается. И потом приходится подключаться заново. Порой это раздражает. Поэтому время жизни сессии я рекомендую увеличить.
При входе на сервер мы попадаем в директорию «root». Выходим из нее (кликаем по папке с двумя точками), заходим в папку «etc» -> «ssh» и открываем файл sshd_config.
Пролистываем файл вниз и добавляем следующие строчки:
TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60
Сохраняем файл и закрываем редактор. Возвращаемся в PowerShell и перезапускаем SSH сервер:
Если мы вошли как root пользователь то слово sudo можно не писать.
Следующим шагом мы настроим постоянное подключение enp0s8. Для этого возвращаемся в WinSCP, выходим из папки ssh и заходим в netplan (/etc/netplan). Открываем файл 00-installer-config.yaml и прописываем следующие строчки:
enp0s8:
dhcp4: no
addresses: [192.168.56.101/24]
В результате файл должен выглядеть так:
Сохраняем файл и закрываем редактор. Закрываем WinSCP. Возвращаемся в PowerShell и набираем reboot чтобы перезапустить наш сервер. Позле перезапуска снова входим по SSH для проверки.
На этом установка и первоначальная настройка Ubuntu Server закончена.
How To Setup LVS (Linux Virtual Server) Load Balancer on CentOS 8 / RHEL 8
Linux Virtual Server is a highly salable and highly available server built on a cluster of real servers with the load balance running on the Linux Operating System.
First of all we will install the Linux Virtual Server package on Our CentOS 8 / RHEL 8 machine. After Installing LVS on our Operating System we will configure it as a load balancer to the back end servers. This setup assumes you have installed a CentOS / RHEL 8 server or workstation edition.
Step 1: Installing Linux Virtual Server on CentOS 8 / RHEL 8
Run the following command on your server to Install Linux Virtual Server and Choose yes to proceed further.
[[email protected] ~]$ sudo yum install ipvsadm
[sudo] password for sabi:
Last metadata expiration check: 3:38:25 ago on Sun 22 Dec 2019 12:37:06 AM EST.
Dependencies resolved.
Package Arch Version Repository Size
Installing:
ipvsadm x86_64 1.29-8.el8 AppStream 57 k
Transaction Summary
Install 1 Package
Total download size: 57 k
Installed size: 83 k
Is this ok [y/N]: y
Step 2: Enabling IP forwarding and enable service
When you have finished installing package, enable the service and IP forwarding in your machine.
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Confirm it is turned to 1
[[email protected] ~]$ echo 'net.ipv4.ip forward = 1' | sudo tee -a /etc/sysctl.conf
[sudo] password for sabi:
net.ipv4.ip forward = 1
Start and enable ipvsadm services by running
sudo touch /etc/sysconfig/ipvsadm
sudo systemctl enable –now ipvsadm
Check out the service status, it will be look like as:
[[email protected] ~]$ systemctl status ipvsadm
● ipvsadm.service - Initialise the Linux Virtual Server
Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; enabled; vendor preset: di>
Active: active (exited) since Sun 2019-12-22 04:25:30 EST; 20s ago
Process: 5880 ExecStart=/bin/bash -c exec /sbin/ipvsadm-restore < /etc/sysconfig/ipv>
Main PID: 5880 (code=exited, status=0/SUCCESS)
Dec 22 04:25:29 localhost.localdomain systemd[1]: Starting Initialise the Linux Virtua>
Dec 22 04:25:30 localhost.localdomain systemd[1]: Started Initialise the Linux Virtual>
lines 1-8/8 (END)
Step 3: Configure LVS as Load Balancer
After setting up all, move forward to configure LVS as a load balancer to actual back-end applications.
Clean the IP tables rules by running
Step 4: Adding a Virtual Service
Add a virtual service by using the syntax
ipvsadm -A -t (ServiceIP:Port) -s (Distribution method)
Following Distribution methods supported:
- rr (Round Robin) = Equal load distribution among back-end servers
- wrr (Weighted Round Robin) = The Round Robin based on real Servers weight
- lc (Least Connection) = Servers having few active processes are selected for new load assignment on priority basis.
- wlc ( Weighted Least Connection) = Assigns tasks to servers with fewer jobs and relative to the real server’s weight (Ci/Wi) . By default, this method is used.
We will do configuration based on below diagram.
In this case, I’m setting LVS server to listen on 192.168.233.129 with port 80.
sudo ipvsadm -A -t 192.168.233.129:80 -s wlc
Now, add the back-end servers by typing
sudo ipvsadm -a -t (ServiceIP:Port) -r (BackendServerIP:Port) -m
The configuration will look like
sudo ipvsadm -a -t 192.168.233.129:80 -r 192.168.233.209:80 -m
sudo ipvsadm -a -t 192.168.233.129:80 -r 192.168.233.4:80 -m
Type the following command to list current rules:
[[email protected] ~]$ sudo ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP cent01:http wlc
-> cent03:http Masq 1 0 0
-> cent02:http Masq 1 0 0
Allow Firewall
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
Now, when you load the LVS server IP / domain name from the browser, you will see the page on one of the back-end server.
Hi this is the LVS server page on back-end server 1
Upon reloading, the back-end server 2 page should show
Hi this is the LVS server page on back-end server 2
This is how you can set up your LVS server on CentOS 8 / RHEL 8.