Развертывание сайта в VMware Cloud Director

Один из сценариев работы в виртуальной инфраструктуре — развертывание сайта. В этом разделе рассмотрим, как сделать это с помощью VMware Cloud Director, и на конкретном примере разберем все шаги развертывания и особенности настройки.

Кому будет полезно

Инструкция будет полезна, если:

  • Вы не работали с VMware Cloud Director и хотите узнать о его основных возможностях.

  • Вы хотите рассмотреть настройку сервисов Edge Gateway на примере конкретной задачи.

  • Вы еще не работали с готовыми приложениями для бизнеса, но хотите начать использовать их.

Что есть в инструкции
  • Развертывание сайта, состоящего из следующих VM:

    • веб-сервер — передает статические и динамические страницы клиентам;

    • база данных — хранит и обрабатывает поступающую в нее информацию.

    Для создания VM используются шаблоны приложений для бизнеса: веб-сервер Nginx и база данных MySQL.

  • Создание сетей для обмена трафиком внутри виртуального ЦОД.

  • Настройка доступа к веб-серверу по протоколу HTTP из браузера, а также возможности подключиться по протоколу SSH.

  • Подключение базы данных к веб-серверу и размещение данной VM в изолированной сети в целях безопасности.

IP-ареса и топология в примере использованы для демонстрации. В работе вы можете использовать собственные структуры, которые подходят под ваши задачи.

Чего нет в инструкции

Настройка серверов внутри гостевой ОС не рассматривается.

Что необходимо для настройки

В инструкции описана настройка с нуля, без предварительно настроенных сетей и сервисов Edge Gateway. Чтобы повторить рекомендации на этой странице достаточно наличие виртуального ЦОД, внешнего IP-адреса и доступа к готовым приложениям для бизнеса, если вы планируете их использовать.

Шаг 1. Проверка наличия шаблонов серверов

Вы можете использовать:

  • Собственные шаблоны приложений в формате ova/ovf — перед началом работы загрузите их в каталог.

  • Готовые приложения для бизнеса — перед началом работы убедитесь, что необходимые шаблоны есть в списке шаблонов.

Шаг 2. Создание веб-сервера

Виртуальную машину (VM), которая будет выполнять роль веб-сервера, разместим в vApp. В будущем это позволит масштабировать сервис за счет добавления в vApp новых VM с той же функцией веб-сервера и настройки балансировки нагрузки между ними.

С этой же целью сделаем выделение IP-адреса по DHCP. При добавлении новых веб-серверов не нужно будет каждый раз вручную назначать IP-адреса.

Создайте vApp «Web-Servers» c VM «WS-1» из заранее настроенного шаблона веб-сервера. В примере использован шаблон Nginx с предустановленным LEMP-стеком: Linux, Nginx, MySQL и PHP — все предварительно настроено и готово к работе.

Параметры vApp

Параметр

Значение

Комментарий

Name

Web-Servers

Description

(Опционально) укажите описание vApp

Power on

Убедитесь, что параметр отключен

Далее необходимо присвоить сеть, а это нужно делать с выключенной VM

Virtual Machines

Нажмите ADD VIRTUAL MACHINE

Чтобы добавить в vApp машину, создайте ее из шаблона

Параметры VM

Параметр

Значение

Комментарий

Name

WS-1

Computer Name

Значение продублируется из поля Name

Description

(Опционально) укажите описание VM

Type

From Template

Templates

Nginx

Выберите шаблон приложения из списка

NICs

Оставьте таблицу незаполненной

Шаг 3. Создание Routed-сети

Пока веб-сервер создается, создайте маршрутизируемую (Routed) сеть и настройте в ней DHCP Pool.

  1. Создайте Routed-сеть для подключения веб-сервера к Edge Gateway.

    Параметры Routed-сети

    Параметр

    Значение

    Комментарий

    Scope

    Current Organization Virtual Data Center

    Сеть планируется использовать исключительно для виртуальных машин в текущем виртуальном ЦОД

    Network Type

    Routed

    Сеть должна иметь возможность подключения к Edge Gateway (маршрутизируемая)

    Edge Connection

    Выберите Edge Gateway, к которой необходимо подключить сеть

    Name

    Network-WS

    Gateway CIDR

    192.168.0.1/24

    Укажите адрес шлюза по умолчанию. Обычно выбирается первый IP в подсети a.a.a.1/24, но можно использовать другой, например a.a.a.254/24

    Static IP Pools

    Можно не указывать, потому что для веб-сервера планируется брать адреса из DHCP-pool

    Primary DNS

    8.8.8.8

  2. Определите DHCP Pool в настройках Routed-сети, чтобы веб-сервер мог получать IP-адрес по протоколу DHCP.

    Параметры DHCP Pool

    Параметр

    Значение

    Комментарий

    IP Pool

    192.168.0.2-192.168.0.2

    В нашем примере используется всего одна VM с IP 192.168.0.2. Поскольку необходимо указать пул, а не один IP, используйте следующий формат записи a.a.a.a-a.a.a.a.

    Вы также можете сразу указать пул адресов, например 192.168.0.2-192.168.0.50. В этом случае учитывайте, что для остальных IP-адресов из пула также необходимо настроить правила Firewall и NAT, что описывается далее

Шаг 4. Назначение Routed-сети веб-серверу

Чтобы назначить веб-серверу созданную Routed-сеть, подключите ее к vApp, а затем к VM. Проверьте получение IP-адреса через консоль веб-сервера.

  1. Убедитесь, что vApp «Web-Servers» и VM «WS-1» выключены, т. е. в статусе «Powered Off».

    (Если нет) В карточке vApp нажмите ACTIONS → Power → Power Off.

  2. Назначьте Routed-сеть vApp «Web-Servers».

  3. Назначьте Routed-сеть VM «WS-1»:

    Параметры назначения

    Параметр

    Значение

    Комментарий

    Primary NIC

    Оставьте по умолчанию

    Connected

    Поставьте флаг

    Adapter Type

    Оставьте по умолчанию

    Network

    Network-WS

    Выберите созданную Routed-сеть

    IP Mode

    DHCP

    IP-адрес будет выбран из настроенного в сети DHCP Pool

    IP

    В режиме «DHCP» IP-адрес указывать не нужно

  4. В карточке vApp нажмите ACTIONS → Power → Start.

  5. Откройте консоль VM и авторизуйтесь в системе. Логин и пароль по умолчанию отображаются в консоли виртуальной машины.

  6. Убедитесь, что VM получила IP-адрес 192.168.0.2 по DHCP. Чтобы это проверить, выполните в консоли:

    ip addr
    

    Если VM не получила IP-адрес, перезапустите ее. В карточке vApp нажмите ACTIONS → Power → Power Off, затем ACTIONS → Power → Power On.

Шаг 5. Настройка сервисов Edge Gateway (Firewall и NAT)

Настройте правила Firewall и NAT, обеспечивающие прохождение трафика North-South между веб-сервером и интернетом.

Подсказка

Перед настройкой скопируйте внешний IP-адрес, он понадобится далее. См. Где указан внешний IP-адрес виртуального ЦОД?

  1. Создайте IP Set, которые понадобятся при создании правил Firewall.

    1. IP Set для внешнего IP-адреса.

      Параметры IP Set

      Параметр

      Значение

      Комментарий

      Name

      x.x.x.x

      В названии укажите внешний IP-адрес — это упрощает поиск IP Set при создании правил Firewall

      Description

      (Опционально) укажите описание IP Set

      IP Addresses

      x.x.x.x

      Укажите внешний IP-адрес

    2. Создайте IP Set для Routed-cети.

      Параметры IP Set

      Параметр

      Значение

      Комментарий

      Name

      192.168.0.0/24

      В названии укажите Routed-сеть — это упрощает поиск IP Set при создании правил Firewall

      Description

      (Опционально) укажите описание IP Set

      IP Addresses

      192.168.0.0/24

      Укажите Routed-сеть в формате a.a.a.0/24

    с. Создайте IP Set для веб-сервера.

    Параметры IP Set

    Параметр

    Значение

    Комментарий

    Name

    192.168.0.2

    В названии укажите IP-адрес веб-сервера — это упрощает поиск IP Set при создании правил Firewall

    Description

    (Опционально) укажите описание IP Set

    IP Addresses

    192.168.0.2

    Укажите IP-адрес веб-сервера

  2. Создайте правила Firewall для управления входящим и исходящим трафиком Edge Gateway.

    Рекомендуем выбирать короткие и понятные названия правил, чтобы в будущем быстро понимать их суть. Это особенно важно, если правил Firewall много, или если настройкой сервисов Edge Gateway занимаются несколько сотрудников.

    1. Создайте правило, пропускающее трафик из Routed-сети в интернет:

      Параметры правила Firewall

      Параметр

      Значение

      Комментарий

      Name

      ws-to-internet

      Category

      User defined

      State

      Enabled

      Applications

      Оставьте по умолчанию

      Source

      192.168.0.0/24

      Выберите IP Set для Routed-cети

      Destination

      Any

      Action

      Allow

      IP Protocol

      IPv4

      Logging

      Disabled

    2. Правило для работы с веб-сервером по SSH:

      Параметры правила Firewall

      Параметр

      Значение

      Комментарий

      Name

      ssh-to-ws

      Category

      User defined

      State

      Enabled

      Applications

      • Name SSH

      • Protocol TCP

      • Port 22

      Source

      Any

      Destination

      192.168.0.2

      Выберите IP Set для веб-сервера

      Action

      Allow

      IP Protocol

      IPv4

      Logging

      Disabled

    3. Правило для доступа к веб-серверу из браузера по протоколу HTTP:

      Параметры правила Firewall

      Параметр

      Значение

      Комментарий

      Name

      http-to-ws

      Category

      User defined

      State

      Enabled

      Applications

      • Name HTTP

      • Protocol TCP

      • Port 80

      Source

      Any

      Destination

      192.168.0.2

      Выберите IP Set для веб-сервера

      Action

      Allow

      IP Protocol

      IPv4

      Logging

      Disabled

  3. Создайте правила SNAT и DNAT для сетевой связности с внешней сетью.

    1. Создайте SNAT-правило для трансляции трафика из Routed-сети на внешний IP.

      Параметры правила SNAT

      Параметр

      Значение

      Комментарий

      Name

      ws-to-internet

      Description

      Interface Type

      SNAT

      External IP

      x.x.x.x

      Укажите внешний IP-адрес

      Internal IP

      192.168.0.0/24

      Укажите Routed-сеть в формате a.a.a.0/24

      Destination IP

      IP-адрес и порт можно не указывать, так как правило должно работать для всего трафика из Routed-сети

      State

      Enabled

      Logging

      Disabled

      Priority

      Оставьте по умолчанию. При возникновении конфликтов в правилах NAT можно изменить приоритет правила. Меньшее число означает более высокий приоритет

      Firewall Match

      Match Internal Address

      Оставьте по умолчанию

    2. Создайте DNAT-правило для доступа к веб-серверу по SSH.

      Параметры правила DNAT

      Параметр

      Значение

      Комментарий

      Name

      shh-to-ws

      Description

      Interface Type

      DNAT

      External IP

      x.x.x.x

      Укажите внешний IP-адрес

      External Port

      2222

      В целях безопасности не открывайте 22 порт во внешнюю сеть

      Internal IP

      192.168.0.2

      Укажите IP-адрес веб-сервера

      Application

      • Name SSH

      • Protocol TCP

      • Port 22

      22 — стандартный порт для SSH-подключений

      State

      Enabled

      Logging

      Disabled

      Priority

      Оставьте по умолчанию. При возникновении конфликтов в правилах NAT можно изменить приоритет правила. Меньшее число означает более высокий приоритет

      Firewall Match

      Match Internal Address

      Оставьте по умолчанию

    3. Создайте DNAT-правило для трансляции HTTP-трафика со внешнего IP-адреса на веб-сервер.

      Параметры правила DNAT

      Параметр

      Значение

      Комментарий

      Name

      http-to-ws

      Description

      Interface Type

      DNAT

      External IP

      x.x.x.x

      Укажите внешний IP-адрес

      Application

      • Name HTTP

      • Protocol TCP

      • Port 80

      Internal IP

      192.168.0.2

      Укажите IP-адрес веб-сервера

      State

      Enabled

      Logging

      Disabled

      Priority

      Оставьте по умолчанию. При возникновении конфликтов в правилах NAT можно изменить приоритет правила. Меньшее число означает более высокий приоритет

      Firewall Match

      Match Internal Address

      Оставьте по умолчанию

Шаг 6. Настройка SSH-сервера

Выполните этот шаг, если используете готовые приложения для бизнеса. Если вы используете собственные шаблоны ova/ovf, рекомендуем убедиться в корректности настроек SSH-сервера на веб-сервере. При попытке SSH-подключения может возникать ошибка «Connection refused».

В готовых приложениях для бизнеса по умолчанию отключен SSH-сервер и аутентификация по паролю. Отредактируйте конфигурационный файл и перезапустите службу SSH:

  1. Откройте консоль VM и авторизуйтесь в системе. Логин и пароль по умолчанию отображаются в консоли виртуальной машины.

  2. Откройте файл конфигурации SSH в текстовом редакторе:

    sudo vi /etc/ssh/sshd_config
    
  3. Нажмите клавишу Insert, чтобы перейти в режим редактирования.

  4. Раскомментируйте или добавьте строку:

    PasswordAuthentication yes
    
  5. Измените параметр «PermitRootLogin» с «no» на «yes»:

    PermitRootLogin yes
    
  6. Нажмите клавишу Esc, чтобы выйти из режима редактирования.

  7. Нажмите ZZ, чтобы сохранить файл.

  8. Перезапустите службу SSH, чтобы изменения вступили в силу:

    systemctl restart sshd
    

Шаг 7. Проверка доступа к веб-серверу

  1. Проверьте подключение по SSH.

    Параметры для проверки

    Параметр

    Значение

    Комментарий

    Host Name (or IP address)

    x.x.x.x

    Укажите внешний IP-адрес виртуального ЦОД

    Port

    2222

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

  2. Введите внешний IP-адрес виртуально ЦОД в браузере. Если все настроено правильно, отобразится стартовая страница веб-сервера. Для готовых приложений для бизнеса появится страница с надписью «Congratulations!».

Если доступ не появляется:

  • Убедитесь, что VM подключена к Routed-сети и получила адрес по DHCP.

  • Проверьте корректность правил Firewall и NAT.

  • Убедитесь что SSH-сервер на VM включен и корректно настроен.

Шаг 8. Создание базы данных

Создайте базу данных, которая будет подключаться к веб-серверу по внутренней Isolated-сети. Если для создания веб-сервера вы использовали шаблон Nginx, в нем уже есть MySQL в составе LEMP-стека — можно использовать его.

Новая виртуальная машина создается с целью продемонстрировать безопасную конфигурацию, в которой доступ к базе данных из внешней сети можно получить только через SSH-подключение к веб-серверу.

Создайте vApp «Database Servers» c виртуальной машиной «DB-1» из заранее настроенного шаблона базы данных. В примере использован шаблон MYSQL.

Параметры vApp

Параметр

Значение

Комментарий

Name

Database Servers

Description

(Опционально) укажите описание vApp

Power on

Убедитесь, что параметр отключен

Далее необходимо присвоить сеть, а это нужно делать с выключенной VM

Virtual Machines

Нажмите ADD VIRTUAL MACHINE

Чтобы добавить в vApp машину, создайте ее из шаблона

Параметры VM

Параметр

Значение

Комментарий

Name

DB-1

Computer Name

Значение продублируется из поля Name

Description

(Опционально) укажите описание VM

Type

From Template

Templates

MYSQL

Выберите шаблон приложения из списка

NICs

Оставьте таблицу незаполненной

Шаг 9. Создание Isolated-сети

Создайте Isolated-сеть для подключения базы данных к веб-серверу.

Параметры Isolated-сети

Параметр

Значение

Комментарий

Scope

Current Organization Virtual Data Center

Сеть планируется использовать исключительно для виртуальных машин в текущем виртуальном ЦОД

Network Type

Isolated

В целях безопасности сеть для базы данных не должна подключается к Edge Gateway

Name

Network-DB

Gateway CIDR

172.16.0.1/24

Укажите адрес шлюза по умолчанию для сети. Обычно выбирается первый IP в подсети a.a.a.1/24, но можно использовать другой, например a.a.a.254/24

Static IP Pools

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

Primary DNS

DNS в данном случае можно не указывать

Шаг 10. Назначение Isolated-сети базе данных

  1. Убедитесь, что vApp «Database Servers» с VM «DB-1» выключены. (Если нет) В карточке vApp нажмите ACTIONS → Power → Power Off.

  2. Назначьте Isolated-сеть vApp «Database Servers».

  3. Назначьте Isolated-сеть VM «DB-1»:

    Параметры назначения

    Параметр

    Значение

    Комментарий

    Primary NIC

    Оставьте по умолчанию

    Connected

    Поставьте флаг

    Adapter Type

    Оставьте по умолчанию

    Network

    Network-DB

    Выберите созданную Isolated-cеть

    IP Mode

    Static-Manual

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

    IP

    172.16.0.3

    Укажите IP-адрес из Isolated-cети, который необходимо присвоить базе данных

  4. В карточке vApp нажмите ACTIONS → Power → Start.

  5. Откройте консоль VM и авторизуйтесь в системе. Логин и пароль по умолчанию отображаются в консоли виртуальной машины.

  6. Убедитесь, что VM получила IP-адрес 172.16.0.3. Чтобы это проверить, выполните в консоли:

    ip addr
    

    Если VM не получила IP-адрес, перезапустите ее.

Шаг 11. Назначение Isolated-сети веб-серверу

Повторите описанную выше процедуру назначения Isolated-сети для vApp «Web-Servers» и VM «WS-1». В случае с веб-сервером машине добавляется второй сетевой адаптер (NIC). Настройка отличается в IP-адресе: веб-серверу необходимо присвоить 172.16.0.2.

Параметры назначения

Параметр

Значение

Комментарий

Primary NIC

По умолчанию будет выбрана Routed-сеть, а чекбокс Isolated-сети останется незаполненным. Не меняйте эту настройку

Connected

Поставьте флаг

Adapter Type

Оставьте по умолчанию

Network

Network-DB

Выберите созданную Isolated-сеть

IP Mode

Static-Manual

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

IP

172.16.0.2

Укажите IP-адрес из Isolated-сети, который необходимо присвоить веб-серверу

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

  • Routed — для передачи страниц и другого контента;

  • Isolated — для обмена трафиком исключительно с базой данных.

После сохранения настроек запустите веб-сервер. В карточке vApp нажмите ACTIONS → Power → Start.

Шаг 12. Проверка доступа к базе данных

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

ping 172.16.0.3

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

Масштабная конференция
GoCloud 2024:
облачные грани будущего