воскресенье, 22 октября 2017 г.

Настройка root-сервера Hetzner

Дано:
новый блестящий быстрый только что арендованный немецкий root-сервер с активной Rescue-системой.

Требуется:
настроить аппаратный RAID, завести виртуалку, настроить сеть.

С момента получения письма "Your customized server ..blabla.. is now ready for use." заходим в https://robot.your-server.de, смотрим на сервер, заодно переписываем его IP, он должен совпадать с тем, что в письме :), как насмотрелись - выходим..
Нам надо в консоль
ssh root@your.new.server.ip

Сервер был с двумя SSD дисками и кастомизирован еще двумя HDD и аппаратным RAID.
Т.е. заботливые инженеры воткнули в RAID-плату 4 диска и в таком виде предоставили нам.
Операционку или какие-либо настройки никто не делал.
Так что перво-наперво делаем рейд.
Справка тут https://wiki.hetzner.de/index.php/Adaptec_RAID_Controller/ru
# узнать список контроллеров
arcconf LIST
# узнать о девайсах контроллера 1
arcconf LIST 1
# узнать инфо по всем дискам (в частности channel,device)
arcconf GETCONFIG 1 PD | more
# рейд 1 из дисков номер 2 и 3 на канале 0 создается с такими параметрами
# MAX (size) 1 (raid-1) 0 (channel 0) 2 (device 2) 0 (channel 0) 3 (device 3)
arcconf CREATE 1 LOGICALDRIVE MAX 1 0 2 0 3
# но сначала надо инициализировать диски, иначе получится ошибка
A selected device is not available for use.
Command aborted.
# инициализация двух дисков
arcconf TASK START 1 DEVICE 0 2 INITIALIZE
arcconf TASK START 1 DEVICE 0 3 INITIALIZE
# для SSD рекомендуют отключить кэш, поэтому команда будет дополнена опциями
arcconf CREATE 1 LOGICALDRIVE Rcache ROFF Wcache WT MAX 1  0 2  0 3
Creating logical device: LogicalDrv 0
Command completed successfully.
# проверка
arcconf GETCONFIG 1 LD # Bootable:yes, *cache*: off
RAID1 из 2xSSD готов. Буду ставить на него ОС
Можно сразу и из HDD сделать, но я поспешил поставить ОС, а из нее arcconf был недоступен, поэтому я пошел в robot.your-server.de, выбрал активацию Rescue system, ребутнул сервер, аналогично настроил RAID1 из 2 HDD и снова ребутнул сервер. ОС не пострадала :)

Установка ОС

Я выбрал установку Proxmox, хоть она и помечена как !!!NO_SUPPORT!!!, но зато вон какой симпатичный интерфейс я получил в итоге )
Для установки запускаем команду installimage, открывается меню выбора, выбрал Other - Proxmox debian stretch. Далее открывается текстовый файл, в который надо внести изменения по вкусу. 
А конкретно:
- оставил DRIVE 1 /dev/sda. Он получился после сборки RAID1 из SSD.
- оставил DRIVE 2 /dev/sdd. Он получился после сборки RAID1 из HDD.
- остальные DRIVE закомментировал
- SWRAID поставил в 0
- разметка томов следующая
PART /boot ext3 512M
PART lvm   vg0  all
LV   vg0  root /    ext3 40G
LV   vg0  swap swap swap 6G
# LV   vg0  data /data ext3 all  <== не надо!

Сохраняем, выходим. Пошла установка. Пьем кофе. Готово.
# all оставшееся размечать не надо, а то оно примонтируется к root-серверу и в GUI будет 100% занято SSD. Я по неопытности сделал именно так :)
# на скрине видно, как я отмонтировал /data и изъял ее из LVM командой
lvremove /dev/vg0/data # путь см. в выводе lvdisplay

Дальше делаем LVM из HDD.
pvcreate /dev/sdb
vgcreate vg1 /dev/sdb
lvcreate .. забыл параметры. но это несложная часть

Теперь по IP можно зайти в Proxmox https://<serverip>:8006/

Создание виртуалки (контейнера)

Для начала нужны CT Templates, типа bootstrap образы виртуалок. Доступный список:
pveam available --section system
Выбираю debian-9.0-standard_9.0-2_amd64.tar.gz для виртуалки под веб-приложения.
ВНИМАНИЕ! Потом пришлось переустанавливать, потому что stretch оказалась уж очень современной версией Debian. в репах только php7 и mariadb, а нам надо php5.3, ну край php5.6, и mysql 5.5. Уверен, что можно было и на stretch замутить, но геморроиться не хотелось, и я выбрал Debian 8.
Скачиваем командой
pveam download local debian-8.0-standard_8.7-1_amd64.tar.gz
Теперь в Proxmox при Create CT на вкладке Templates будет доступен этот образ.
Если криво сконфигурить Host-to-Guest сеть, то виртуалка вряд ли запустится.

Настройка сети

На хост системе создать бридж vmbr0, а можно сразу и vmbr1, если планируется более одной виртуалки. На этих 2 мостах покажу 2 способа настройки: NAT и выделенный IP.

Сначала случай создания виртуалки с выделенным IP адресом, сеть через vmbr0.
На vmbr0 переносятся все настройки с основного сетевого интерфейса, в моем случае enp0s31f6, и имя этого интерфейса прописывается в Bridge ports. Для enp0s31f6 вообще все поля остаются пустые, даже Autostart не стоит. Сохраняем, перезагружаем рут-сервер.
Предполагается, что IP уже куплен, в robots.your-server.de виден и рядом с ним доступна кнопка Request Separate MAC address. В настройках сети виртуалки (контейнера LXC) прописываем полученный мак. Бридж выбираем vmbr0, на котором прописан внешний IP рут-сервера. И DHCP. Все.
Контейнер должен запуститься. С криво настроенной сетью не запускается.
Другой вариант - NAT. На vmbr1 рут-сервера задается любой левый IP из диапазона локальных сетей, например 10.0.0.1/24, без указания gateway, отмечается Autostart.
Далее в виртуалке в качестве моста указывается этот vmbr1, MAC от балды (авто), IP static тоже от балды, но gateway - это IP vmbr1 (10.0.0.1).
Чтобы виртуалка в таком режиме была доступна извне, придется в iptables пробрасывать порты на рут-сервере.
Виртуалку с выделенным IP можно использовать как боевую, а ту, которая за NAT-ом, - как тестовую.

И не забыть пару команд
iptables -t nat -A POSTROUTING -o enp0s31f6 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
Пример проброса SSH с рута на виртуалку
iptables -t nat -A PREROUTING -p tcp -i vmbr1 --dport 2022 \
-j DNAT --to-destination 10.0.0.20:22
Вроде все

Комментариев нет:

Отправить комментарий