Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-operating-system-on-virtual-machine-and-disk-sizing

Настройка веб-сервера на базе стека LEMP в Ubuntu Server 14.04 LTS. Часть 1. Установка ОС

Подготовка виртуальной машины

Готовим виртуальную машину для установки операционной системы Ubuntu Server 14.04 LTS. В нашем примере будет использоваться виртуальная машина на базе гипервизора Microsoft Hyper-V

С сетевой точки зрения виртуальная машина будет изолированной, то есть будет иметь только 1 сетевой контроллер направленный в сторону интернет-провайдера.

Конфигурация виртуальной машины:

  • Процессор: 4vCPU 3GHz
  • Память: 4GB
  • Сеть: 1 контроллер 1Gb/s
  • Диски: 3 отдельных виртуальных диска

Количество создаваемых виртуальных дисков определено таким образом, чтобы при необходимости можно было их по отдельности размещать на СХД на разные физические тома (с разными скоростными показателями). Например диск под базы данных MySQL в перспективе можно будет переместить на физический том работающий на быстрых SSD дисках.

  • Первый диск будет использоваться под загрузочный раздел (/boot/efi), раздел файла подкачки и корневой раздел (/).
  • Второй диск будет использоваться под раздел домашних папок пользователей (/home), раздел под логи и другие активно используемые и изменяемые файлы (/var), раздел корневых папок сайтов веб-сервера (/var/www).
  • Третий диск полностью будет использоваться под раздел файлов баз данных MySQL.

Конечная конфигурация дисков и разделов будет выглядеть таким образом:

sda 30G
├─sda1 vfat 512M /boot/efi
├─sda2 ext4 23.5G /
└─sda3 swap 6G [SWAP]
sdb 50G
├─sdb1 ext4 10G /home		
├─sdb2 ext4 20G /var
└─sdb3 ext4 20G /var/www
sdc 20G
└─sdc1 ext4 20G /var/lib/mysql


Установка ОС

Подробно описывать процесс установки Ubuntu Server 14.04 LTS здесь мы не будем, так как он рассматривался ранее в статье блога Настройка прокси сервера Squid 3.3 на Ubuntu Server 14.04 LTS. Часть 1. Установка ОС на ВМ Hyper-V Gen2. Однако здесь мы уделим внимание тем шагам, которые отличаются от типичной установки, касающимся планируемой нами дисковой конфигурации системы.

Дойдя до шага разметки дисков, выбираем первый диск sda и жмём Enter

Согласимся с запросом на создание новой таблицы разделов на выбранном диске Yes

Выбираем свободное место FREE SPACE и жмём Enter

В появившемся окне выбираем вариант создания нового раздела Create a new patition и жмём Enter

Укажем небольшую величину, например 512 MB, в качестве размера создаваемого раздела, который будет использоваться как загрузочный раздел. Жмём Continue.

На следующий вопрос отвечаем то, что мы хотим создать новый раздел в начале диска Beginning и жмём Enter

Затем откроется окно, в котором нам нужно будет задать параметры созданного раздела.

В поле Use as: выбираем из списка возможных значений EFI boot partition . Убеждаемся в том, что поле Bootable flag: установлено в on

Сохраняем настройки - выбираем вариант Done setting up the partition и жмём Enter. Мастер разметки вернёт нас обратно на окно выбра дисков. Снова выбираем свободное место FREE SPACE на первом диске ниже только что созданного раздела и нажимаем Enter

По аналогии с тем как делали ранее, создаём новый раздел:

Размер раздела рассчитываем по примерной формуле: Размер места на диске, свободного для разметки (31.7GB) минус размер раздела под файл подкачки, который создадим в дальнейшем на этом же диске (6GB) = 25.7GB

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

Настраиваем параметры раздела таким образом, что он будет являться корневым (точка монтирования «/» )

Возвращаемся в меню создания разделов и выбираем оставшееся место на первом диске:

Создаём новый раздел:

Задаём размер раздела в 6GB под файл подачки (на весь оставшийся доступный размер свободного места):

Определяем тип раздела как swap area:

Переходим к разметке следующего, второго диска - sdb:

Создаём новую таблицу разметки разделов

Выбираем свободное место для создания нового раздела:

По аналогии с ранее описанной последовательностью действий, создаём на свободном месте диска sdb по порядку 3 новых раздела.

Первый раздел второго диска под /home:

Второй раздел второго диска под /var:

Третий раздел второго диска под /var/www:

На третьем диске sdc по аналогии делаем раздел на полный размер диска с точкой монтирования /var/lib/mysql

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

Жмём Finish patitioning and write changes to disk

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

sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL


Включаем iptables

Для системы имеющей выход в Интернет первым делом необходимо включить и настроить брандмауэр iptables. Про базовую настройку iptables уже упоминалось ранее в нашем Блоге.

Меняем политику для всего входящего трафика не попавшего ни под одно правило в цепочке INPUT на запрещающую:

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP 

То же самое можно сделать и для протокола IPv6. Здесь в качестве интерфейса управления по аналогии с iptables будет выступать ip6tables

sudo ip6tables -P INPUT DROP
sudo ip6tables -P FORWARD DROP

Создадим 2 правила.

1. Правило разрешающее любой входящий трафик на служебный внутренний loopback device. Это может потребоваться для корректной работы разного рода служб и приложений.

sudo iptables -I INPUT 1 -i lo -j ACCEPT

2. Правило для поддержки уже разрешённых ранее и установленных соединений

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Проверим что получилось в результате для протокола IPv4:

sudo iptables -S

А также для протокола IPv6:

sudo ip6tables -S

Для сохранения правил в большинстве случаев можно использовать пакет iptables-persistent, но проблема в том, что он не умеет работать с цепочками ipset, которые мы будем использовать в дальнейшем для защиты сервера.

Создадим файл для сохранения всех правил iptables и настроим права доступа к нему:

sudo touch /etc/iptables.conf
sudo chown root:adm /etc/iptables.conf
sudo chmod 640 /etc/iptables.conf

Создадим файл для сохранения всех правил ip6tables и настроим права доступа к нему:

sudo touch /etc/ip6tables.conf
sudo chown root:adm /etc/ip6tables.conf
sudo chmod 640 /etc/ip6tables.conf

В этот файл мы будем записывать текущую конфигурацию правил iptables после их корректировки.

Для того, чтобы правила iptables автоматически восстанавливались автоматического из файла /etc/iptables.conf во время загрузки системы, в файл /etc/rc.local (ранее всех других команд, но до команды exit 0) добавим строки:

/etc/rc.local
...
# Load iptables rules from this file
iptables-restore < /etc/iptables.conf
ip6tables-restore < /etc/ip6tables.conf
...

Для сохранения текущих правил iptables вручную в любой момент времени, например, после редактирования правил, в дальнейшем будем использовать команду:

sudo iptables-save | sudo tee /etc/iptables.conf
sudo ip6tables-save | sudo tee /etc/ip6tables.conf

или

sudo sh -c "iptables-save > /etc/iptables.conf"
sudo sh -c "ip6tables-save > /etc/ip6tables.conf"


Установка компонент интеграции Hyper-V

Обновляем все пакеты и ядро системы и выполняем перезагрузку:

sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot

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

uname -r

3.13.0-83-generic

Как видно, в моём случае это 3.13.0-83-generic. Выполняем установку пакетов необходимых для улучшения интеграции Ubuntu Server 14.04 64-bit с Hyper-V с подстановкой версии ядра в имена пакетов linux-tools и linux-cloud-tools:

sudo apt-get install hv-kvp-daemon-init \
 linux-tools-3.13.0-83-generic \ 
 linux-cloud-tools-3.13.0-83-generic

Перезагружаем сервер и проверяем лог загрузки на предмет отсутствия ошибок запуска компонент интеграции:

sudo cat /var/log/boot.log | grep Hyper

* Starting Hyper-V VSS Protocol Daemon            [ OK ]
* Starting Hyper-V KVP Protocol Daemon            [ OK ]
* Stopping Hyper-V KVP Protocol Daemon            [ OK ]

Проверяем наличие процессов дополнительных средств Hyper-V:

sudo ps -ef | egrep "hv.*daemon"

root  872  1  0 19:59 ?  00:00:00 /usr/lib/linux-tools/3.13.0-83-generic/hv_kvp_daemon
root  873  1  0 19:59 ?  00:00:00 /usr/lib/linux-tools/3.13.0-83-generic/hv_vss_daemon

После установки компонент интеграции у нас появится возможность выполнять онлайн-бекап виртуальной машины такими средствами как Microsoft System Center 2012 R2 DPM.


Автор первичной редакции:
Алексей Максимов
Время публикации: 17.03.2016 15:41

Обсуждение

Ваш комментарий:
 

unix-linux/ubuntu/ubuntu-14-04-lts-trusty-tahr/how-to-install-lemp-web-server-on-ubuntu-14-04/setup-operating-system-on-virtual-machine-and-disk-sizing.txt · Последние изменения: 03.11.2016 10:35 — Алексей Максимов