Download PDF
Download page Фронтальная машина.
Фронтальная машина
В настоящей статье используются следующие Условные обозначения
Введение
Фронтальная машина — это сервер, на котором развёрнут сервис OpenNebula, предназначенный для управления облаком.
Требования
- Сервер соответствует минимальным требованиям.
- На сервере развернута ОС в соответствии с разделом Установка ОС.
- В сети развернут Контроллер домена.
Подготовка сервера для установки сервиса OpenNebula
Стендовый сервер, включающий роль фронтальной машины, может выполнять роль рабочего места администратора и являться точкой входа в облако. Для этого на сервере необходимо установить графическое окружение рабочего стола и браузер firefox командой:
sudo apt install fly-all-main firefox
В информационных системах, находящихся в эксплуатации, не рекомендуется устанавливать графическую систему на сервере.
- Ввести сервер в домен ALD или FreeIPA. В зависимости от типа домена для получения инструкций перейти по одной из ссылок: Ввод в домен ALD или Ввод в домен FreeIPA.
Повысить уровень целостности в ОС. Отредактировать на сервере файл
/etc/default/grub
:GRUB_CMDLINE_LINUX_DEFAULT="parsec.max_ilev=127 parsec.ccnr_relax=1 quiet net.ifnames=0"
CODEПрисвоить администратору сервера максимальный уровень целостности:
sudo pdpl-user -i 127 <local-admin>
CODEОбновить конфигурацию grub:
sudo update-grub
CODE- Выполнить перезагрузку.
Установка и настройка Front-end на сервере
Установить базу данных PostgreSQL из репозитория командой:
sudo apt install postgresql-9.6
CODEУстановить службы для управления ПК СВ "Брест" в зависимости от используемого домена:
sudo apt install brestcloud-ald
CODEsudo apt install brestcloud-ipa
CODEВыполнить инициализацию ПК СВ "Брест", создать БД и первого пользователя для администрирования системы командой:
Если подготавливается несколько серверов с ролью Front-end для отказоустойчивости управления по алгоритму RAFT, то в каждом случае следует задавать одинаковые названия БД и учетных данных для доступа к ней.
sudo brestcloud-configure
CODEВ ходе выполнения команды запустится мастер, в котором следует задать пароли для создаваемой БД и администратора облака
brestadmin.
Самоподписанные сертификаты
Для того чтобы создать самоподписанный сертификат для возможности использования протокола https, требуется сгенерировать его с помощью OpenSSL:
Создать каталог для сертификатов и ключей (для ПК СВ "Брест" с обновлением 2.6 этот каталог уже существует):
sudo mkdir /etc/apache2/ssl
CODEСоздать сертификат и ключ:
sudo openssl req -x509 -nodes -newkey rsa:2048 -days 3650 -keyout /etc/apache2/ssl/<front-N-hostname>.key -out /etc/apache2/ssl/<front-N-hostname>.crt
CODEВ строку с запросом ввести:
Country Name (2 letter code) [AU]: — страна/регион (необязательно) State or Province Name (full name) [Some-State]: — штат (необязательно) Locality Name (eg, city) []: — город (необязательно) Organization Name (eg, company) [Internet Widgits Pty Ltd]: — имя организации (необязательно) Organizational Unit Name (eg, section) []: — подразделение организации, пропустить (необязательно) Common Name (e.g. server FQDN or YOUR name) []: — Обязательное поле, это имя, по которому к серверу будут обращаться <front-N-hostname>.<domain> Email Address []: — адрес электронной почты (необязательно)
CODEПросмотреть сертификат можно командой:
sudo openssl x509 -noout -text -in /etc/apache2/ssl/<front-N-hostname>.crt
CODEЕсли настроен алгоритм RAFT и плавающий сетевой адрес для отказоустойчивого управления ПК СВ "Брест", то необходимо использовать один и тот же самоподписанный сертификат на всех узлах с Front-end, добавленных в RAFT.
Настройка Apache2
Для настройки Apache2 следует изменить содержание файла /etc/apache2/sites-available/000-default.conf.
Перенаправить порт 80 на 443, указать расположение файлов сертификата и ключа. Привести файл к виду:
<VirtualHost *:80> ServerName <front-N-hostname>.<domain> Redirect permanent / https://<front-N-hostname>.<domain> </VirtualHost> <VirtualHost _default_:443> ServerName <front-N-hostname>.<domain> ServerAdmin webmaster@localhost <Directory /> Options FollowSymLinks AllowOverride None </Directory> DocumentRoot /usr/lib/one/sunstone/public SSLEngine on SSLCertificateFile /etc/apache2/ssl/<front-N-hostname>.crt SSLCertificateKeyFile /etc/apache2/ssl/<front-N-hostname>.key <Proxy balancer://unicornservers> BalancerMember http://127.0.0.1:9869 </Proxy> ProxyPass /brestcloud ! ProxyPass / balancer://unicornservers/ ProxyPassReverse / balancer://unicornservers/ ProxyPreserveHost on <Proxy *> AuthType Kerberos KrbAuthRealms <DOMAIN> KrbServiceName HTTP/<front-N-hostname>.<domain> Krb5Keytab /etc/apache2/apache2.keytab KrbMethodNegotiate on KrbMethodK5Passwd off KrbSaveCredentials on require valid-user AllowOverride all RewriteEngine On RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ balancer://unicornservers%{REQUEST_URI} [P,QSA,L] RewriteCond %{LA-U:REMOTE_USER} (.+) RewriteRule . - [E=RU:%1] RequestHeader add X-Forwarded_Remote-User %{RU}e </Proxy> ScriptAlias /brestcloud/ /usr/lib/one/brestcloud/ <Directory /usr/lib/one/brestcloud/> Options +ExecCGI AddHandler cgi-script .cgi AuthType Kerberos KrbAuthRealms <DOMAIN> KrbServiceName HTTP/<front-N-hostname>.<domain> Krb5Keytab /etc/apache2/apache2.keytab KrbMethodNegotiate on KrbMethodK5Passwd off KrbSaveCredentials on require valid-user AllowOverride all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
CODEЗадействовать модуль ssl и перезапустить веб-сервер командой:
sudo a2enmod ssl
CODEСохранить изменения и проверить конфигурацию Apache, выполнив команду:
sudo apachectl configtest
CODEПерезапустить
apache2.service
:sudo systemctl restart apache2
CODE
Настройка клиента
Для подключения к графическому интерфейсу управления необходим веб-браузер Firefox:
Если администрирование облака на разворачиваемом стенде осуществляется непосредственно с узла стенда, то на узле стенда необходимо выполнить следующие действия. В случае, если для администрирования будет использоваться отдельное АРМ, эти действия нужно выполнить на нем, предварительно введя АРМ в домен.
- Зайти в систему, используя графический интерфейс Fly, под пользователем
brestadmin
. - Запустить браузер Firefox.
В адресной строке ввести: about:config и найти следующие параметры, которые необходимо исправить:
network.negotiate-auth.delegation-uris network.negotiate-auth.trusted-uris
CODEУстановить для найденных параметров значения:
http://,https://
Далее приступить к проверке.
Проверка
Перейти в интерфейс OpenNebula для настройки ПК СВ "Брест" по адресу: https://<front-N-ip>.<domain>
Отобразится приглашение войти в систему, в котором следует нажать Login:
Если после нажатия кнопки Login отобразится интерфейс управления облаком, настройки произведены успешно!
Настройка корректного подключения к ВМ по VNC или SPICE через HTTPS
Данный пункт необходим в случае отсутствия настроенного центра сертификации. Описывается процесс настройки и добавления самоподписанного сертификата в доверенные.
Для корректного подключения к ВМ по VNC или SPICE с использованием HTTPS выполнить следующие шаги:
На сервере, где работают службы Front-end, в файле
/etc/one/sunstone-server.conf
поменять следующие параметры, указав пути к сертификату и ключу::vnc_proxy_support_wss: yes :vnc_proxy_cert: /etc/apache2/ssl/<front-N-hostname>.crt :vnc_proxy_key: /etc/apache2/ssl/<front-N-hostname>.key
CODEПосле чего требуется перезапустить командами из консоли сервера следующие сервисы:
root@srv:/etc/one# service unicorn-opennebula restart root@srv:/etc/one# service opennebula-novnc restart root@srv:/etc/one# service apache2 restart
CODE- На сервере с Front-end авторизоваться в графическом интерфейсе системы доменным пользователем
brestadmin
и запустить Firefox.
Подключиться к ПК СВ Брест поhttps://<front-N-ip>.<domain>
и после открытия интерфейса выйти из сессииbrestadmin
, оставив открытым это окно. - Очистить кэш в Firefox, для чего перейти в меню браузера Настройки — Приватность и защита — История — Удалить историю, в открывшемся окне выбрать только чекбокс Кэш и нажать Удалить сейчас.
- Вернуться в браузер к вкладке с ПК СВ Брест и зайти в сессию brestadmin повторно, нажав кнопку Login.
- В разделе Instances - VMs открыть нужную ВМ и в верхнем меню нажать кнопу VNC. При первом подключении будет получена ошибка: VNC noVNC ready: native WebSockets, canvas rendering.
- Не закрывая эту вкладку, открыть еще одну вкладку и ввести адрес
https://<front-N-ip>.<domain>
с указанием порта удаленного подключения 29876. Пример: https://srv.brest.loc:29876/
После получения предупреждения, добавить страницу в исключения. Для чего нажать кнопки Advanced... и Accept the Risk and Continue. - Вернуться на вкладку с ПК СВ Брест и повторить шаг 6.
- В результате на вкладке с ПК СВ Брест будет получена картинка вывода удаленного доступа для ВМ.
При выходе из сессии ПК СВ Брест для brestadmin все исключения, добавленные в Firefox, сохранятся.
Важно
После выполнения инструкции вернитесь к предыдущей статье.