Debian stretch, установка базового сервера на виртуальную машину

avm

Опубликован:  2018-02-09T14:02:43.474545Z
Отредактирован:  2018-02-09T14:00:10.864320Z
1600
Демонстрация установки базового сервера Debian stretch на виртуальную машину. Описанные действия позволяют получить базовый сервер подключенный к виртуальной сети и возможность управлять этим сервером с удалённой машины по ssh. В дальнейшем такой сервер может использоваться как макет для тестирования web-приложений и отработки их развёртывания.

1. Используемые инструменты

Для реализации задуманного мне понадобится:

  • десктоп с установленной и настроенной операционной системой;
  • Интернет соединение с нелимитируемым трафиком;
  • установленный и настроенный VirtualBox;
  • образ установочного диска Debian stretch;
  • немного времени и терпения.

Все действия в этом описании я выполняю на своём LXDE-десктопе Debian stretch и использую 20-ти мегабитное безлимитное соединение с сетью Интернет.

Мне потребуется виртуальная машина. Для эмуляции виртуальной машины наилучшим образом подходит VirtualBox, который у меня уже установлен и настроен. Установка и предварительная настройка программы детально описаны в Debian stretch, установка VirtualBox.

Для установки операционной системы на виртуальный сервер мне потребуется установочный образ. Лучше всего для моей задачи подходит официальный Debian stretch образ netinst. Я буду использовать его 64-х битную версию debian-9.X.0-amd64-netinst.iso, которая доступна на ftp.yandex.ru.

Образ предварительно нужно скачать любым из доступных способов, я предпочитаю wget:

wget http://ftp.yandex.ru/debian-cd/current/amd64/iso-cd/debian-9.3.0-amd64-netinst.iso

Процесс скачивания образа в действии выглядит так:

wget

Далее все свои действия буду демонстрировать снимками экрана, их будет много.

2. Создание виртуальной машины

Для создания виртуальной машины запускаю VirtualBox, это можно сделать из стандартного меню, в моём случае десктоп LXDE предлагает такое меню:

desktop

VirtualBox в своём главном окне имеет кнопку Создать, которую нужно кликнуть левой кнопкой мыши:

create

В результате запустится стандартный мастер создания виртуальной машины, в котором буду последовательно заполнять формы и следовать инструкциям:

vbox master

vbox master

vbox master

vbox master

vbox master

vbox master

В результате будет создана новая виртуальная машина с именем tester, а в главном окне в списке виртуальных машин появится соответствующий элемент:

vbox

3. Настройка виртуальной машины

Перед первым запуском вновь созданной виртуальной машины я приведу в соответствие со своей задачей некоторые технические параметры этой виртуальной машины, для этого запускаю мастера настройки в главном окне VirtualBox:

vbox

И получаю на экран окно мастера:

vbox

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

На вкладке Система устанавливаю порядок носителей, на которых осуществляется поиск ПО при включении виртуальной машины, первым устанавливаю привод оптических дисков, гибкий диск перемещаю вниз и снимаю с него галочку:

vbox system

Для установки загрузочного образа перехожу на вкладку Носители, выбираю привод оптических дисков и устанавливаю в него предварительно скачанный установочный образ:

vbox cd

vbox cd

Перехожу на вкладку Аудио и отключаю звук, на сервере он мне не понадобится:

vbox

Для этого сервера мне потребуется пара сетевых карт. Настраиваются сетевые карты на вкладке Сеть. Первую сетевую карту подключаю через NAT к сетевому адаптеру хоста, эта сетевая карта позволит подключить виртуальную машину к сети Интернет:

vbox net

Вторую сетевую карту подключаю к виртуальному сетевому адаптеру хоста:

vbox net

Эта сетевая карта позволит подключить виртуальную машину к виртуальной сети хоста и таким образом обеспечит доступ к виртуальной машине по реальному ip-адресу.

Замечание: настройка виртуального сетевого адаптера хоста описана в Debian stretch, установка VirtualBox.

На этом настройка виртуальной машины завершена, нажимаю OK.

vbox ok

4. Первый запуск виртуальной машины

Запускается виртуальная машина кнопкой Запустить в главном окне VirtualBox:

vbox start

Запускаю машину и приступаю к установке операционной системы Debian stretch:

vbox grub

5. Установка операционной системы виртуальной машины

Установка операционной системы начинается с загрузчика, который предлагает несколько вариантов действий. Мне подойдёт дефолтное значение - Graphical Install - делаю enter:

grub

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

language

country

keyboard

keyboard

После этого система загрузит дополнительные параметры и перейдёт к настройке сети, здесь нужно обратить внимание, что при настройке виртуальной машины первый её сетевой адаптер соединён с NAT, именно его нужно выбрать как основной во время установки, выбираю и делаю enter:

network

Система попытается настроить выбранный сетевой интерфейс и в случае успеха предложит задать имя компьютера и домен. Ввожу желаемые значения и каждый раз делаю enter:

network

network

Далее система предложит настроить учётные записи и пароли, сначала пароль суперпользователя, затем имя и пароль обычного пользователя системы, аккуратно ввожу нужные данные и каждый раз делаю enter:

root

user

user

user

Следующий этап - настройка времени:

timezone

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

6. Установка операционной системы виртуальной машины, продолжение

Разметка диска виртуальной машины предполагает несколько вариантов. Поскольку сервер у меня будет достаточно простой с диском очень скромного размера, я буду разбивать диск вручную:

partition

Выбираю свой диск:

partition

Создаю таблицу разделов:

partition

На свободном месте своего диска:

partition

создаю новый раздел:

partition

Задаю этому разделу размер 1024 MB - это будет раздел подкачки, вообще размер раздела подкачки рекомендуют делать вдвое большим размера оперативной памяти, но в целях экономии места я сделаю этот раздел равным по размеру оперативной памяти машины, для тестового сервера это не критичный параметр:

partition

Делаю этот раздел первичным:

partion

Располагаю его в начале диска:

partition

И привожу к следующему виду:

partition

Заканчиваю настройку этого раздела и перехожу к следующему:

partition

Следующему разделу отдаю всё оставшееся на диске пространство, этот раздел будет корневым и в него будет установлена операционная система:

partition

Повторяю для этого раздела все описанные ранее действия произведенные над первым разделом и привожу его к следующему виду:

partition

Заканчиваю разметку:

partition

и записываю изменения на диск:

partition

Программа перейдёт к установке базовой системы и предложит просканировать другой носитель, поскольку другого носителя у меня нет, отказываюсь от этого действия:

partition

Далее система перейдёт к настройке пакетного менеджера, а я продолжу описание установки в следующем спойлере...

7. Установка операционной системы виртуальной машины, продолжение

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

mirror

И выбираю зеркало deb.debian.org:

mirror

Пропускаю настройку прокси, в моём случае он не требуется:

proxy

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

popularity

Далее программа установки перейдёт к выбору устанавливаемого программного обеспечения, начальная форма будет выглядеть так:

packages

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

packages

Начнётся установка пакетов, она займёт некоторое время, система покажет прогресс этого процесса, а по завершении предложит настроить системный загрузчик, устанавливаю системный загрузчик в главную загрузочную запись:

packages

Указываю устройство для установки системного загрузчика:

device

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

the end

делаю enter, дожидаюсь перезагрузки виртуальной машины и вуаля:

server

Базовый сервер готов получать инструкции.

Важное замечание: поскольку программа установки в образе netinst, который я использую в этой демонстрации, скачивает и устанавливает пакеты с официального зеркала Deban, сразу после установки я получаю полностью обновлённую копию операционной системы, а пакетный менеджер этой операционной системы уже привязан к официальному зеркалу - очень удобно, именно поэтому выбор пал на netinst.

8. Настройка сетевого интерфейса виртуальной машины

Операционная система сервера установлена и загружена, но поставленная задача пока не достигнута. Мне нужна возможность подключаться к этому серверу по сети из консоли своего десктопа (хоста) и управлять этим сервером удалённо. Настрою сеть на сервере, для этого вхожу root-ом:

console

Проверяю сетевые интерфейсы:

ip a

network

В данном случае меня будет интересовать третий в списке интерфейс enp0s8, который не имеет строчки inet и, соответственно, IP-адреса. Это вторая сетевая карта виртуальной машины, которая смотрит на виртуальный сетевой адаптер хоста, и она требует настройки. Открываю в текстовом редакторе файл /etc/network/interfaces:

nano

и привожу его к следующему виду:

nano

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

systemctl restart networking.service

restart network

Как настроен виртуальный сетевой адаптер хоста можно увидеть в Debian stretch, установка VirtualBox, напомню, что я ожидаю услышать виртуальный сетевой адаптер своего хоста на адресе 192.168.56.100. Пробую его пинговать:

ping

Хост откликается, успех. Перехожу в консоль хоста и пробую пинговать гостевой интерфейс, который ожидаю услышать на адресе 192.168.56.101:

sadmin@debian:~$ ping -c 5 192.168.56.101
PING 192.168.56.101 (192.168.56.101) 56(84) bytes of data.
64 bytes from 192.168.56.101: icmp_seq=1 ttl=64 time=0.432 ms
64 bytes from 192.168.56.101: icmp_seq=2 ttl=64 time=0.386 ms
64 bytes from 192.168.56.101: icmp_seq=3 ttl=64 time=0.368 ms
64 bytes from 192.168.56.101: icmp_seq=4 ttl=64 time=0.371 ms
64 bytes from 192.168.56.101: icmp_seq=5 ttl=64 time=0.362 ms

--- 192.168.56.101 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4104ms
rtt min/avg/max/mdev = 0.362/0.383/0.432/0.035 ms

Опять успех. Подключаюсь к серверу по ssh:

sadmin@debian:~$ ssh sadmin@192.168.56.101
The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established.
ECDSA key fingerprint is SHA256:hxtGJ5WaeD3Nk+Za8aDP4/CMobiuhIC388sdvEPY1V0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.101' (ECDSA) to the list of known hosts.
sadmin@192.168.56.101's password: 
Linux tester 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
sadmin@tester:~$ 

Консоль хоста после этих манипуляций выглядит так:

ssh

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

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

9. Что дальше

Один из возможных вариантов использования данного базового сервера рассмотрен в Debian stretch, моделируем развёртывание Flask-приложения.

 
Осталось: 38
Комментарии: