Установка и настройка

Установка и настройка

Этот раздел описывает как установить и настроить сервис идентификации OpenStack, известный как keystone, на управляющем узле. Для масштабируемости, данная конфигурация разворачивает токены Fernet и Apache HTTP сервер для обработки запросов.

Предварительные требования

Before you install and configure the Identity service, you must create a database.

Примечание

Before you begin, ensure you have the most recent version of python-pyasn1 installed.

  1. Используйте клиент баз данных для подключения к серверу БД под пользователем root:

    $ mysql -u root -p
    
  1. Создайте базу данных keystone:

    MariaDB [(none)]> CREATE DATABASE keystone;
    
  2. Предоставьте необходимый доступ к базе данных keystone:

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
    IDENTIFIED BY 'KEYSTONE_DBPASS';
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
    IDENTIFIED BY 'KEYSTONE_DBPASS';
    

    Замените KEYSTONE_DBPASS подходящим паролем.

  3. Закройте клиент баз данных.

Установите и сконфигурируйте компоненты

Примечание

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

Примечание

В этом руководстве используется HTTP сервер Apache с установленным ``mod_wsgi``для обслуживания запросов к сервису идентификации по портам 5000 и 35357. По умолчанию сервис keystone слушает эти порты. Тем не менее, в этом руководстве сервис keystone выключается.

Примечание

Starting with the Newton release, SUSE OpenStack packages are shipping with the upstream default configuration files. For example /etc/keystone/keystone.conf, with customizations in /etc/keystone/keystone.conf.d/010-keystone.conf. While the following instructions modify the default configuration file, adding a new file in /etc/keystone/keystone.conf.d achieves the same result.

  1. Исполните следующую команду для установки пакетов:

    # zypper install openstack-keystone apache2-mod_wsgi
    
  1. Отредактируйте файл /etc/keystone/keystone.conf и выполните следующие действия:

    • Сконфигурируйте доступ к базе данных в разделе [database]:

      [database]
      # ...
      connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
      

      Замените KEYSTONE_DBPASS на пароль, который вы выбрали для базы данных.

      Примечание

      Закомментируйте или удалите любые другие опции connection в разделе [database].

    • В секции [token] настройте службу токенов Fernet:

      [token]
      # ...
      provider = fernet
      
  2. Заполните базу данных службы Идентификации:

    # su -s /bin/sh -c "keystone-manage db_sync" keystone
    
  3. Инициализируйте репозитории Fernet:

    # keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
    
  4. Bootstrap the Identity service:

    # keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
      --bootstrap-admin-url http://controller:35357/v3/ \
      --bootstrap-internal-url http://controller:5000/v3/ \
      --bootstrap-public-url http://controller:5000/v3/ \
      --bootstrap-region-id RegionOne
    

    Replace ADMIN_PASS with a suitable password for an administrative user.

Крнфигурация Apache HTTP сервера

  1. Отредактируйте файл /etc/sysconfig/apache2 и настройте опцию APACHE_SERVERNAME для ссылки на узел контроллера:

    APACHE_SERVERNAME="controller"
    
  2. Создайте файл /etc/apache2/conf.d/wsgi-keystone.conf со следующим контентом:

    Listen 5000
    Listen 35357
    
    <VirtualHost *:5000>
        WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
        WSGIProcessGroup keystone-public
        WSGIScriptAlias / /usr/bin/keystone-wsgi-public
        WSGIApplicationGroup %{GLOBAL}
        WSGIPassAuthorization On
        ErrorLogFormat "%{cu}t %M"
        ErrorLog /var/log/apache2/keystone.log
        CustomLog /var/log/apache2/keystone_access.log combined
    
        <Directory /usr/bin>
            Require all granted
        </Directory>
    </VirtualHost>
    
    <VirtualHost *:35357>
        WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
        WSGIProcessGroup keystone-admin
        WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
        WSGIApplicationGroup %{GLOBAL}
        WSGIPassAuthorization On
        ErrorLogFormat "%{cu}t %M"
        ErrorLog /var/log/apache2/keystone.log
        CustomLog /var/log/apache2/keystone_access.log combined
    
        <Directory /usr/bin>
            Require all granted
        </Directory>
    </VirtualHost>
    
  3. Рекурсивно измените владельцев папки /etc/keystone:

    # chown -R keystone:keystone /etc/keystone
    

Завершите установку

  1. Запустите Apache HTTP сервис и настройте его автоматический запуск при загрузке системы:

    # systemctl enable apache2.service
    # systemctl start apache2.service
    
  1. Configure the administrative account

    $ export OS_USERNAME=admin
    $ export OS_PASSWORD=ADMIN_PASS
    $ export OS_PROJECT_NAME=admin
    $ export OS_USER_DOMAIN_NAME=Default
    $ export OS_PROJECT_DOMAIN_NAME=Default
    $ export OS_AUTH_URL=http://controller:35357/v3
    $ export OS_IDENTITY_API_VERSION=3
    

    Replace ADMIN_PASS with the password used in the keystone-manage bootstrap command in keystone-install-configure.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.