CentOS 8
Sponsored Link

OpenStack Ussuri : Configure Keystone #12020/06/08

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

[1] Add a User and Database on MariaDB for Keystone.
[root@dlp ~]#
mysql -u root -p

Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.17-MariaDB MariaDB Server

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)]> flush privileges; 
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
[2] Install Keystone.
# install from Ussuri, EPEL, powertools

[root@dlp ~]#
dnf --enablerepo=centos-openstack-ussuri,epel,powertools -y install openstack-keystone python3-openstackclient httpd mod_ssl python3-mod_wsgi python3-oauth2client
[3] Configure Keystone.
[root@dlp ~]#
vi /etc/keystone/keystone.conf
# line 430: add the line to specify Memcache server

memcache_servers =
# line 574: add the line to specify MariaDB connection info

connection = mysql+pymysql://keystone:password@
# line 2446: uncomment

provider = fernet
[root@dlp ~]#
su -s /bin/bash keystone -c "keystone-manage db_sync"
# initialize keys

[root@dlp ~]#
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

[root@dlp ~]#
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
# define Keystone Host

[root@dlp ~]#
export controller=
# bootstrap keystone

# replace any password you like for [adminpassword] section

[root@dlp ~]#
keystone-manage bootstrap --bootstrap-password adminpassword \
--bootstrap-admin-url http://$controller:5000/v3/ \
--bootstrap-internal-url http://$controller:5000/v3/ \
--bootstrap-public-url http://$controller:5000/v3/ \
--bootstrap-region-id RegionOne
[4] If SELinux is enabled, change boolean settings.
[root@dlp ~]#
setsebool -P httpd_use_openstack on

[root@dlp ~]#
setsebool -P httpd_can_network_connect on

[root@dlp ~]#
setsebool -P httpd_can_network_connect_db on

[root@dlp ~]#
vi keystone-httpd.te
# create new

module keystone-httpd 1.0;

require {
        type httpd_t;
        type keystone_log_t;
        class file create;
        class dir { add_name write };

#============= httpd_t ==============
allow httpd_t keystone_log_t:dir { add_name write };
allow httpd_t keystone_log_t:file create;

[root@dlp ~]#
checkmodule -m -M -o keystone-httpd.mod keystone-httpd.te

[root@dlp ~]#
semodule_package --outfile keystone-httpd.pp --module keystone-httpd.mod

[root@dlp ~]#
semodule -i keystone-httpd.pp

[5] If Firewalld is running, allow ports for services.
[root@dlp ~]#
firewall-cmd --add-port=5000/tcp --permanent

[root@dlp ~]#
firewall-cmd --reload

[6] Enable settings for Keystone and start Apache httpd.
[root@dlp ~]#
vi /etc/httpd/conf/httpd.conf
# line 98: uncomment and change to your server name

[root@dlp ~]#
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

[root@dlp ~]#
systemctl enable --now httpd

Matched Content