среда, 2 сентября 2015 г.

Установка системы управления виртуализацией Ovirt 3.5 в доменной среде IPA на базе ROSA Enterprise Server 6.6

В рамках работ по одному проекту столкнулся с интересной вещью под названием Ovirt 3.5.3 - это некий аналог Virtual Machine Manager, но на мой взгляд он ближе по идеологии к vSphere, т.к. реализует механизмы failover и cluster на уровне продукта управления виртуализацией, а не ОС гипервизора (как HYPER-V Failover Cluster).
 
Базировалось всё на отечественной ROSA Enterprise Linux  Server 6.6  (RELS 6.6, кстати, RELS очень интересен тем, что в основе лежит Red Hat).
 
 
Документ Инструкция администратора  больше напоминает смесь из step-by-step guide и описания внутренних механизмов работы продукта.
 
Опыт интересен тем, что даёт некий аналог тяжелым решениям VMWare и Microsoft, в рамках импортозамещения.
 
Ниже я коротко расскажу о установке продукта Ovirt в среде RELS с реализацией механизма аутентификации и авторизации на базе IPA, но хочу оговориться, что для меня данная реализация проекта на *nix скорее экзотика, чем каждодневная реальность :) ибо Microsoft - наше всё, посему заранее прошу прощения за огрехи, если таковые допущу.
 
Коротко о выборе 
 
Во-первых почему IPA:

  • по информации от архитектора RELS, с которым мы работали, IPA - это основное направление для Red Hat Community в части аутентификации и авторизации. Т.е. продукт можно использовать в длительном периоде времени с расчётом на поддержку. Мне, как человеку, привыкшего работать с Active Directory понравился предлагаемый функционал и интерфейс (конечно везде есть отличия, но всё же);

  • IPA  - полноценное продуктивное решение с очень неплохим  уровнем документированности; Лично я, для прояснения многих аспектов использовал официальную документацию Red Hat
  • IPA позволяет использовать динамический DNS сервер и формировать SSO окружение клиент-сервер -  легко;
  • Это рекомендованное решение для интеграции с Ovirt 3.5;
  • А, и конечно, фраза, которую любят говорить *nix'оводы: оно уже входит в дистрибутив RELS и поддерживается командой  ROSA.
Во-вторых, выбор платформы реализации серверной инфраструктуры:
  • Выбор производился между ФСТЭК сертифицированными отечественными ОС (для справки, существуют: МСВС Линукс, Astra Linux - крайне закрытые платформы на мой субъективный взгляд; ALT Linux - известен многим и достаточно неплох);
  • RELS понравился тем, что это тот же CentOS | Red Hat и дружилюбием к системам в окружающем мире при интеграции;
  • Активная жизненная позиция команды разработчиков :) в частности Константина Калмыкова;
  • RELS использует KVM для виртуализации.
В-третьих, управление виртуализацией, и да, опять - Ovirt 3.5 входит в состав ROSA Linux и так же, как и сам RELS, поддерживается командой разработчиков. 
 
Установка IPA 
 
Выполняем обновление пакетов  # yum update
 
Поскольку мы планируем использование Kerberos  рекомендую предварительно поднять NTP сервер в сети и настроить иерархию получения точного времени (либо следить за часами).
 
Установим BIND (в моей конфигурации я использую службу имен там же, где и служба каталогов), плюс плагин к нему, который реализует запись содержимого зон в службу каталога. 
 
# yum install bind-dyndb-ldap bind
 
если столкнётесь с Warning на скриншоте ниже - не обращайте внимания (насколько я понял - стандартное предупреждение).



Затем установим сам IPA сервер: # yum install ipa-server
После установки пакетов я проверяю содержимое /etc/hosts (это необходимое условие для работы IPA севера). В моем случае это выглядит так:
 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.5.102.167 ipa01.rosa.demo ipa01

Перед установкой IPA сервера убедитесь, что hostname сервера у Вас задано строчными буквами, см. скриншот ниже - иначе система ругается.
 
Если Вы устанавливаете IPA сервер первый раз, то используйте команду:
# sudo ipa-server-install --setup-dns

Далее вы получите следующий вывод с интерактивным диалогом:
 
The log file for this installation can be found in /var/log/ipaserver-install.log ==============================================================================

This program will set up the IPA Server.


 This includes:


  * Configure a stand-alone CA (dogtag) for certificate management
  * Configure the Network Time Daemon (ntpd)
  * Create and configure an instance of Directory Server
  * Create and configure a Kerberos Key Distribution Center (KDC)
  * Configure Apache (httpd)
  * Configure DNS (bind)
 
To accept the default shown in brackets, press the Enter key.
Existing BIND configuration detected, overwrite? [no]: yes
Enter the fully qualified domain name of the computer on which you're setting up server software. Using the form <hostname>.<domainname>
Example: master.example.com.
Server host name [ipa01.rosa.demo]:
Warning: skipping DNS resolution of host ipa01.rosa.demo The domain name has been determined based on the host name.
Please confirm the domain name [rosa.demo]:
The kerberos protocol requires a Realm name to be defined.
This is typically the domain name converted to uppercase.

Please provide a realm name [ROSA.DEMO]:
Certain directory server operations require an administrative user.
This user is referred to as the Directory Manager and has full access to the Directory for system management tasks and will be added to the instance of directory server created for IPA.
The password must be at least 8 characters long.
Directory Manager password:
Password (confirm):
The IPA server requires an administrative user, named 'admin'.
This user is a regular system account used for IPA server administration.
IPA admin password:
Password (confirm):
Do you want to configure DNS forwarders? [yes]:
Enter the IP address of DNS forwarder to use, or press Enter to finish.
Enter IP address for a DNS forwarder: 10.5.102.2 DNS forwarder 10.5.102.2 added
Enter IP address for a DNS forwarder:
Do you want to configure the reverse zone? [yes]:
Please specify the reverse zone name [102.5.10.in-addr.arpa.]:
Using reverse zone 102.5.10.in-addr.arpa.
The IPA Master Server will be configured with:
Hostname:      ipa01.rosa.demo
IP address:    10.5.102.167
Domain name:   rosa.demo
Realm name:    ROSA.DEMO
BIND DNS server will be configured to serve IPA domain with:
Forwarders:    10.5.102.2
Reverse zone:  102.5.10.in-addr.arpa.
Continue to configure the system with these values? [no]: yes
The following operations may take some minutes to complete.
Please wait until the prompt is returned.
Configuring NTP daemon (ntpd)
  [1/4]: stopping ntpd
  [2/4]: writing configuration
  [3/4]: configuring ntpd to start on boot
  [4/4]: starting ntpd
Done configuring NTP daemon (ntpd).
Configuring directory server for the CA (pkids): Estimated time 30 seconds
  [1/3]: creating directory server user
  [2/3]: creating directory server instance
  [3/3]: restarting directory server
Done configuring directory server for the CA (pkids).
Configuring certificate server (pki-cad): Estimated time 3 minutes 30 seconds
  [1/21]: creating certificate server user
  [2/21]: creating pki-ca instance
  [3/21]: configuring certificate server instance
  [4/21]: disabling nonces
  [5/21]: creating CA agent PKCS#12 file in /root
  [6/21]: creating RA agent certificate database
  [7/21]: importing CA chain to RA certificate database
  [8/21]: fixing RA database permissions
  [9/21]: setting up signing cert profile
  [10/21]: set up CRL publishing
  [11/21]: set certificate subject base
  [12/21]: enabling Subject Key Identifier
  [13/21]: setting audit signing renewal to 2 years
  [14/21]: configuring certificate server to start on boot
  [15/21]: restarting certificate server
  [16/21]: requesting RA certificate from CA
  [17/21]: issuing RA agent certificate
  [18/21]: adding RA agent as a trusted user
  [19/21]: configure certificate renewals
  [20/21]: configure Server-Cert certificate renewal
  [21/21]: Configure HTTP to proxy connections Done configuring certificate server (pki-cad).
Configuring directory server (dirsrv): Estimated time 1 minute
  [1/38]: creating directory server user
  [2/38]: creating directory server instance
  [3/38]: adding default schema
  [4/38]: enabling memberof plugin
  [5/38]: enabling winsync plugin
  [6/38]: configuring replication version plugin
  [7/38]: enabling IPA enrollment plugin
  [8/38]: enabling ldapi
  [9/38]: disabling betxn plugins
  [10/38]: configuring uniqueness plugin
  [11/38]: configuring uuid plugin
  [12/38]: configuring modrdn plugin
  [13/38]: enabling entryUSN plugin
  [14/38]: configuring lockout plugin
  [15/38]: creating indices
  [16/38]: enabling referential integrity plugin
  [17/38]: configuring ssl for ds instance
  [18/38]: configuring certmap.conf
  [19/38]: configure autobind for root
  [20/38]: configure new location for managed entries
  [21/38]: restarting directory server
  [22/38]: adding default layout
  [23/38]: adding delegation layout
  [24/38]: adding replication acis
  [25/38]: creating container for managed entries
  [26/38]: configuring user private groups
  [27/38]: configuring netgroups from hostgroups
  [28/38]: creating default Sudo bind user
  [29/38]: creating default Auto Member layout
  [30/38]: adding range check plugin
  [31/38]: creating default HBAC rule allow_all
  [32/38]: Upload CA cert to the directory
  [33/38]: initializing group membership
  [34/38]: adding master entry
  [35/38]: configuring Posix uid/gid generation
  [36/38]: enabling compatibility plugin
  [37/38]: tuning directory server
  [38/38]: configuring directory to start on boot Done configuring directory server (dirsrv).
Configuring Kerberos KDC (krb5kdc): Estimated time 30 seconds
  [1/10]: adding sasl mappings to the directory
  [2/10]: adding kerberos container to the directory
  [3/10]: configuring KDC
  [4/10]: initialize kerberos container
  [5/10]: adding default ACIs
  [6/10]: creating a keytab for the directory
  [7/10]: creating a keytab for the machine
  [8/10]: adding the password extension to the directory
  [9/10]: starting the KDC
  [10/10]: configuring KDC to start on boot Done configuring Kerberos KDC (krb5kdc).
Configuring kadmin
  [1/2]: starting kadmin
  [2/2]: configuring kadmin to start on boot Done configuring kadmin.
Configuring ipa_memcached
  [1/2]: starting ipa_memcached
  [2/2]: configuring ipa_memcached to start on boot Done configuring ipa_memcached.
Configuring the web interface (httpd): Estimated time 1 minute
  [1/13]: setting mod_nss port to 443
  [2/13]: setting mod_nss password file
  [3/13]: enabling mod_nss renegotiate
  [4/13]: adding URL rewriting rules
  [5/13]: configuring httpd
  [6/13]: setting up ssl
  [7/13]: setting up browser autoconfig
  [8/13]: publish CA cert
  [9/13]: creating a keytab for httpd
  [10/13]: clean up any existing httpd ccache
  [11/13]: configuring SELinux for httpd
  [12/13]: restarting httpd
  [13/13]: configuring httpd to start on boot Done configuring the web interface (httpd).
Applying LDAP updates
Restarting the directory server
Restarting the KDC
Configuring DNS (named)
  [1/9]: adding DNS container
  [2/9]: setting up our zone
  [3/9]: setting up reverse zone
  [4/9]: setting up our own record
  [5/9]: setting up kerberos principal
  [6/9]: setting up named.conf
  [7/9]: restarting named
  [8/9]: configuring named to start on boot
  [9/9]: changing resolv.conf to point to ourselves Done configuring DNS (named).
 
Global DNS configuration in LDAP server is empty You can use 'dnsconfig-mod' command to set global DNS options that would override settings in local named.conf files
 
Restarting the web server
==============================================================================
Setup complete
 
Next steps:
                1. You must make sure these network ports are open:
                               TCP Ports:
                                 * 80, 443: HTTP/HTTPS
                                 * 389, 636: LDAP/LDAPS
                                 * 88, 464: kerberos
                                 * 53: bind
                               UDP Ports:
                                 * 88, 464: kerberos
                                 * 53: bind
                                 * 123: ntp
 
                2. You can now obtain a kerberos ticket using the command: 'kinit admin'
                   This ticket will allow you to use the IPA tools (e.g., ipa user-add)
                   and the web user interface.
 
Be sure to back up the CA certificate stored in /root/cacert.p12 This file is required to create replicas. The password for this file is the Directory Manager password


Затем откройте браузер и соединитесь с узлом, на котором развернут IPA сервер по HTTP или HTTPS. Теперь можно работать со службой каталогов.



Как видите, DNS сервер в IPA самостоятельно и корректно делает записи типа SRV (аналогично А, PTR).
  


 
Добавляем рядовой сервер в домен:
 
#ipa-client-install --no-nisdomain --enable-dns-updates --domain rosa.demo --realm ROSA.DEMO --mkhomedir
 
ПРИМЕЧАНИЕ! Поскольку данный пример делался на стенде с одним сервером IPA строка не имела значения - я предпочёл настроить на конкретный сервер; однако для обеспечения failover клиента ipa на резервный сервер службы, в  случае выхода из строя мастер-сервера службы каталогов, требуется другая конфигурация (о чём говорит сообщение на скриншоте).
 






















ПРИМЕЧАНИЕ! для автоматического создания папок профиля учётной записи домена, при логине на рядовом сервере домена, используйте ключ --mkhomedir, в противном случае получите ошибки.

После добавления рядового сервера в домен, командой ниже, необходимые записи так же появились в службе каталога. На скриншоте выше см. IPv4 10.5.102.168 и FQDN в зоне прямого просмотра ovi01.rosa.demo
 
 
Установка Ovirt 3.5
 
Перед развёртыванием Ovirt на сервере RELS 6.6 запустите # yum update
Далее выполните команду загрузки из репозитария # yum install ovirt-engine -y
После выполните команду настройки и пройдите все пункты мастера #engine-setup

Перед подтверждением конфигурации к установке Вы увидите следующий диалог:
 
 
Подтверждаем и ожидаем окончания установки
 
Интеграция Ovirt 3.5 с IPA Server
 
Теперь необходимо выполнить команду интеграции Ovirt 3.5 со службой каталога IPA
 
ПРИМЕЧАНИЕ! Данная версия Ovirt имеет только одного локального пользователя - admin (создание других локальных пользователей не предусмотрено). Всех остальных пользователей она получает из службы каталога (кстати есть возможность интеграции и с Microsoft Active Directory - расскажу о нюансах в другой статье цикла).
 
В ситуации по-умолчанию Вы получите ошибку ниже:
 

Дело в том, что, по-умолчанию, OVirt 3.5 требует значение равное 1 параметра minssf сервера IPA, собственно сервер IPA, после установки, имеет значение параметра равное 0.
Останавливаем службу IPA # service ipa stop
Меняем это значение на сервере IPA в файле /etc/dirsrv/slapd-ROSA-DEMO/dse.ldif и перезапускаем службы, используя команду # service ipa start
 

После этого повторяем попытку интеграции.
Как Вы видите, на предыдущем скриншоте, повторная попытка добавления прошла вполне успешно и нам надо будет перезапустить службу ovirt-engine.
 
Далее выполняем вход в систему с учётной записью администратора
 
Ovirt имеет достаточно развитую внутреннюю RBAC модель, а так же возможность создания новых ролей.
 

Теперь мы можем добавить пользователя в роль в Ovirt и выполнить вход в систему управления виртуализацией, используя портал пользователя.
 

Вводим учётные данные пользователя, который входит в группу virtualization_admins@rosa.demo 
 
 
 
Добро пожаловать на портал само-обслуживания пользователя Ovirt, с правами по-умолчанию для роли UserRole.
 
Не забудьте установить SPICE-XPI для удалённого подключения к рабочему столу, с помощью браузера. 


В следующей статье я расскажу,  как добавить сервера виртуализации в Ovirt, а так же пройдёмся по механизмам реализации отказоустойчивости кластеров и виртуальным сетям.

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

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

Уважаемый коллега, Ваш комментарий пройдёт модерацию, чтобы избежать спам-атак в ленте. Спасибо за понимание.