Ubuntu 22.04
Sponsored Link

OpenStack Caracal : Configure Keystone #12024/04/05

Install and Configure OpenStack Identity Service (Keystone).
This example is based on the environment like follows.
|   [ dlp.srv.world ]   |
|     (Control Node)    |
|                       |
|  MariaDB    RabbitMQ  |
|  Memcached  Nginx     |
|  Keystone   httpd     |

[1] Add a User and Database on MariaDB for Keystone.

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.6.16-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database keystone; 
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on keystone.* to keystone@'localhost' identified by 'password'; 
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on keystone.* to keystone@'%' identified by 'password'; 
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
[2] Install Keystone.
apt -y install keystone python3-openstackclient apache2 libapache2-mod-wsgi-py3 python3-oauth2client
[3] Configure Keystone.
vi /etc/keystone/keystone.conf
# line 447 : add to specify Memcache Server

memcache_servers =
# line 696 : change to MariaDB connection info

connection =
# line 2604 : uncomment

provider = fernet
# create tables
# OK to ignore the error ['NoneType' object has no attribute 'getcurrent']

su -s /bin/bash keystone -c "keystone-manage db_sync"
# initialize Fernet key

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
# define keystone API Host

export controller=dlp.srv.world
# bootstrap keystone
# set any password for [adminpassword] section

keystone-manage bootstrap --bootstrap-password adminpassword \
--bootstrap-admin-url https://$controller:5000/v3/ \
--bootstrap-internal-url https://$controller:5000/v3/ \
--bootstrap-public-url https://$controller:5000/v3/ \
--bootstrap-region-id RegionOne

Get valid SSL/TLS certificate, or Create self-signed certificate.
It uses valid SSL/TLS certificate on this example.
[5] Configure Apache httpd.
vi /etc/apache2/apache2.conf
# line 70 : add to specify server name

ServerName dlp.srv.world
vi /etc/apache2/sites-available/keystone.conf
# add settings for SSL/TLS

Listen 5000

<VirtualHost *:5000>
    SSLEngine on
    SSLHonorCipherOrder on
    SSLCertificateFile /etc/letsencrypt/live/dlp.srv.world/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/dlp.srv.world/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/dlp.srv.world/chain.pem
    WSGIScriptAlias / /usr/bin/keystone-wsgi-public


a2enmod ssl

Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
  systemctl restart apache2

systemctl restart apache2
Matched Content