Оглавление

Введение

Front-end – это набор служб и сервисов для управления облаком.

Требования

Подготовка сервера для установки Front-end

На небольших стендах сервер, включающий роль Front-end, может выполнять роль рабочего места администратора и являться точкой входа в облако.

В этом случае на сервер необходимо установить графическое окружение рабочего стола командой:

sudo apt install fly-all-main firefox

В информационных системах, находящихся в эксплуатации, не рекомендуется устанавливать графическую систему на сервере.

Необходимо ввести сервер в домен ALD или FreeIPA. В зависимости от типа домена для получения инструкций перейдите по одной из ссылок:


Также необходимо повысить максимальный уровень целостности в операционной системе. В файле на сервере /etc/default/grub отредактировать указанную строку, приведя ее к виду:

GRUB_CMDLINE_LINUX_DEFAULT="parsec.max_ilev=127 parsec.ccnr_relax=1 quiet net.ifnames=0"

Присвоить администратору сервера максимальный уровень целостности:

sudo pdpl-user -i 127 <local-admin>

Обновить конфигурацию grub:

sudo update-grub


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

Установка и настройка Front-end на сервере

Устанавить службы и базу для управления ПК СВ Брест в зависимости от используемого домена:


sudo apt install postgresql-9.6
sudo apt install brestcloud-ald




sudo apt install postgresql-9.6
sudo apt install brestcloud-ipa



Выполнить инициализацию ПК СВ Брест, создать базу и первого пользователя для администрирования системы командой:

Если подготавливается несколько серверов с ролью Front-end, далее следует задавать одинаковые названия базы данных и учетных данных для доступа к ней.


sudo brestcloud-configure

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

Cгенерировать самоподписанный сертификат с помощью OpenSSL:

   - создать директории для сертификатов и ключей (для ПК СВ "Брест" с обновлением 2.6 этот каталог уже существует):

sudo mkdir /etc/apache2/ssl

  - создать сертификат и ключ:

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

  - Предлагается ввести:

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 []: — адрес электронной почты (не обязательно)

Чтобы просмотреть сертификат:

sudo openssl x509 -noout -text -in /etc/apache2/ssl/<front-N-hostname>.crt

Настройка 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>

  - Далее необходимо задействовать модуль ssl командой и перезапустить вэб-сервер:

sudo a2enmod ssl

  - Сохранить изменения и проверить конфигурацию Apache. Лучше всего заранее протестировать конфигурацию на наличие различных синтаксических ошибок, иначе вэб-сервер просто не запустится.

Для тестирования выполнить следующую команду:

sudo apachectl configtest

Перезапустить apache2.service:

sudo systemctl restart apache2

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

Для подключения к графическому интерфейсу управления необходим веб-браузер Firefox.

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

Заходим в систему, используя графический интерфейс Fly ОС Astra Linux Special Edition, пользователем brestadmin.

Запускаем браузер Firefox. В адресной строке ввести about:config для правки параметров и ищем следующие параметры:

network.negotiate-auth.delegation-uris
network.negotiate-auth.trusted-uris

Для выше перечисленных параметров требуется выставить значение "http://,https://" (без кавычек).

При настройке ПК СВ "Брест" 2.6 никаких дополнительных действий не требуется. Далее приступить к проверке.

Проверка

Перейти в интерфейс OpenNebula для настройки ПК СВ "Брест" по адресу:

https://<front-N-ip>.<domain>

Отобразится приглашение войти в систему:

Если после нажатия кнопки Login отобразится интерфейс управления облаком – настройки произведены успешно!


Следующий пункт необходим в случае отсутствия настроенного центра сертификации. Описывается процесс настройки и добавления самоподписанного сертификата в доверенные.

Настройка корректного подключения к ВМ по VNC или SPICE через HTTPS

Для корректного подключения к виртуальной машине по VNC или SPICE с использованием HTTPS, выполните следующие шаги:

1. В файле /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

2. Перезапустить следующие сервисы:

root@srv:/etc/one# service unicorn-opennebula restart
root@srv:/etc/one# service opennebula-novnc restart
root@srv:/etc/one# service apache2 restart

3. Войти в систему доменным пользователем "brestadmin", запустить web-браузер firefox.  Подключится к opennebula по https:// и после открытия интерфейса выйти из сессии brestadmin, оставив открытым это окно.

4. Очистить кэш в  firefox:   "настройки"→"приватность и защита" → "история" → "удалить историю" выбрать только "кэш" и "удалить".


5.Вернуться к открытой закладке "opennebula" и войти в сеанс повторно.

6. Открыть нужную ВМ , запустить её и нажать "VNC" . При первом подключении отобразится ошибка: VNC noVNC ready: native WebSockets, canvas rendering. Не закрывая этой вкладки, окрыть еще одну и ввести адрес фронтальной машины с указанием порта vnc (29876), пример:   https://srv.brest.loc:29876  и далее добавить адрес в исключения.

7. Вернуться в вкладке с открытой opennebula и открыть по VNC или SPICE нужную машину.

8. Повторно эту процедуру выполнять не требуется, при выходе из сеанса, все исключения сохраняются.


После выполнения инструкций данного раздела вернитесь на предыдущую статью