{{tag>Brouillon OpenStack}}
= Notes OpenStack Keystone
Voir :
* https://docs.openstack.org/newton/install-guide-ubuntu/keystone-install.html
* https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/10/html/manual_installation_procedures/sect-prerequisite_message_broker
* https://books.google.fr/books?id=TMhsDwAAQBAJ&pg=PA43&lpg=PA43&dq=keystone+bootstrap-admin-url+5000+35357&source=bl&ots=PonObAz5-9&sig=ACfU3U1EZw0lO_-FottWlAHUd3-OWGoS7A&hl=fr&sa=X&ved=2ahUKEwjNxJDO0JXhAhX4AWMBHcoLBqUQ6AEwCHoECAkQAQ#v=onepage&q=keystone%20bootstrap-admin-url%205000%2035357&f=false
== Install
Prérequis :
* NTP
=== RedHat
yum install centos-release-openstack-rocky.noarch
yum install openstack-keystone-doc python-keystoneclient-doc
yum install openstack-keystone httpd mod_wsgi
yum install python-openstackclient
# yum install python-PROJETclient
# yum install python-keystoneclient
# MySQL / MariaDB
yum install MySQL-python
# Postgress
#yum install postgresql
#yum install postgresql-server
yum install @postgresql
yum install python-sqlalchemy python-psycopg2
# RabbitMQ
yum install rabbitmq-server
sudo postgresql-setup initdb
systemctl start postgresql.service
systemctl enable postgresql.service
Configurer
''/var/lib/pgsql/data/pg_hba.conf''
#host all all 127.0.0.1/32 ident
host all all 127.0.0.1/32 md5
su - postgres
psql
CREATE ROLE keystoneUser WITH LOGIN PASSWORD 'toor';
CREATE DATABASE keystone OWNER keystoneuser ;
''/etc/keystone/keystone.conf''
[DEFAULT]
#verbose = True
debug = true
[database]
#connection = mysql://keystoneUser:toor@127.0.0.1/keystone
#connection = mysql+pymysql://keystoneUser:toor@127.0.0.1/keystone?charset=utf8
connection = postgresql://keystoneuser:toor@127.0.0.1/keystone
[token]
provider = fernet
systemctl restart httpd
su keystone -s /bin/sh -c "keystone-manage db_sync"
Les logs sont ici ''/var/log/keystone/keystone.log'' ou
journalctl -f -u devstack@keystone.service
== Configuration
=== Renommer un endpoint
Kestone a été initié avec les paramètres suivants
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
keystone-manage bootstrap --bootstrap-password toor \
--bootstrap-admin-url http://srv-openstack-controller:35357/v3/ \
--bootstrap-internal-url http://srv-openstack-controller:5000/v3/ \
--bootstrap-public-url http://srv-openstack-controller:5000/v3/ \
--bootstrap-region-id RegionOne
Solution : faire un update en base.
update endpoint set url='http://srv-openstack-controller:5000/v3/' where interface='admin';
Puis rédemarrer le service Apache ou le service SystemD
systemctl restart httpd
# ou
systemctl restart devstack@keystone.service
Test
''openrc''
export OS_USERNAME=admin
export OS_PASSWORD=toor
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://srv-openstack-controller:5000/v3
export OS_IDENTITY_API_VERSION=3
source openrc
openstack token issue --debug
openstack service list
openstack user list
=== Configuration d'un domaine AD/LDAP
Exemple de conf
''/etc/keystone/domains/keystone.domain.conf''
[identity]
domain_configurations_from_database = False
driver = ldap
[ldap]
query_scope = sub
group_name_attribute = sAMAccountName
group_objectclass = group
user_mail_attribute = mail
user_enabled_attribute = userAccountControl
group_tree_dn = CN=Openstack,OU=Groupes,DC=acme,DC=local
chase_referrals = false
user_id_attribute = sAMAccountName
group_members_are_ids = true
group_member_attribute = memberUid
page_size = 500
use_tls = false
url = ldaps://ldap.acme.local:636
user_name_attribute = sAMAccountName
user = Admin
user_objectclass = organizationalPerson
group_id_attribute = cn
user_filter = (memberOf=CN=Openstack,OU=Groupes,DC=acme,DC=local)
group_desc_attribute = description
user_tree_dn = DC=acme,DC=local
user_pass_attribute = userPassword
password = UEBzc3cwcmQhISEK
== Pb
=== Pb utilisateur manquant
L’utilisateur n'apparait pas
openstack user list |grep jean
Mais il apparait bien avec
openstack user show jean
==== Solution
Augmenter le ''page_size''
''/etc/keystone/domains/keystone.acme.conf''
[ldap]
page_size = 500
Puis restart d'Apache ou du service keystone.
== Autres
Note : ** iptables est remplacé maintenant par [[nftables_un_remplacant_d_iptables|nftables]] **
iptables -I INPUT -p tcp --dport 5000 -j ACCEPT