openstack

openstack - keystone 설치

sysman 2021. 1. 16. 03:10

원래는 ocata release 버전 설치 하려 했지만 package에 없다.

 

그래서 queens를 설치 하려 했지만.. 해당 release 버전에 버그가 있다.

error 증상

구글링으로 bug로 확인되었고 rocky 버전에서 fix 되었다고 남겨져 있길래 rocky 버전으로 설치 진행

 

사전작업

 방화벽 해제

ntp, mariadb, rebbitmq, memcache 설치

 

[root@controller ~]# yum -y install centos-release-openstack-rocky

[root@controller ~]# yum install openstack-keystone openstack-utils python-openstackclient httpd mod_wsgi php

 

keystone DB생성

[root@controller ~]# mysql -u root -p

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 'keystone';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on keystone.* to 'keystone'@'%' identified by 'keystone';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit

[root@controller ~]# vi /etc/keystone/keystone.conf

[database]   //db 접근 권한설정
connection=mysql+pymysql://keystone:keystone@192.168.100.110/keystone

[token]  //토큰(신분증명 제출위해 텍스트 형식의 자료)  프로바이더 설정
provider=fernet

 

특정계정으로 db싱크 및 테이블 생성

[root@controller ~]# su -s /bin/bash -c "keystone-manage db_sync" keystone

 

토큰 암호화에 사용될 key 생성

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

[root@controller ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

 

bootstrap으로 사용자,프로젝트 ,역할 생성

[root@controller ~]# keystone-manage bootstrap --bootstrap-password keystone \
> --bootstrap-admin-url http://192.168.100.110:5000/v3/ \
> --bootstrap-internal-url http://192.168.100.110:5000/v3/ \
> --bootstrap-public-url http://192.168.100.110:5000/v3/ \
> --bootstrap-region-id RegionOne

 

httpd 노드ip 설정

[root@controller ~]# cd /etc/httpd/conf/

[root@controller conf]# vi httpd.conf

#ServerName www.example.com:80

ServerName 192.168.100.110

 

keystone http 설정 내역 복사

[root@controller conf]#

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

[root@controller conf]#

 

 

 

[root@controller conf]# vi /etc/httpd/conf.d/wsgi-keystone.conf (컨피그 그대로 사용)

Listen 5000

 

<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

    LimitRequestBody 114688

    <IfVersion >= 2.4>

      ErrorLogFormat "%{cu}t %M"

    </IfVersion>

    ErrorLog /var/log/httpd/keystone.log

    CustomLog /var/log/httpd/keystone_access.log combined

 

    <Directory /usr/bin>

        <IfVersion >= 2.4>

            Require all granted

        </IfVersion>

        <IfVersion < 2.4>

            Order allow,deny

            Allow from all

        </IfVersion>

    </Directory>

</VirtualHost>

 

Alias /identity /usr/bin/keystone-wsgi-public

 

 

 

http 데몬실행

[root@controller conf]# systemctl enable httpd

[root@controller conf]# systemctl start httpd
[root@controller conf]# systemctl status httpd

 

admin 계정 구성

[root@controller conf]# vi ~/keystonrc
[root@controller conf]#
[root@controller conf]# source ~/keystonrc

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=keystone
export OS_AUTH_URL=http://192.168.100.110:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2


토큰 발행 테스트
[root@controller conf]# openstack token issue

 

service project 생성

# openstack project create --domain default --description "Service Project" service

 

프로젝트 생성 리스트 확인

# openstack project list

 

#openstack domain list

 

사용자 demo 생성 후 패스워드 입력

#openstack user create --domain default --password-prompt demo

User password:

 

demo 사용자와 관리자 리스트에서 확인

#openstack user list

 

user라는 역할 생성

#openstack role create user

 

생성한 역할 리스트에서 확인

#openstack role list

 

사용자demo에게 user라는 역할 부여

#openstack role add --project service --user demo user

 

사용자demo가 user라는 역할 리스트에서 확인 

#openstack role list --user demo --project service

 

bootstrap으로 설정한 3가지 url 엔드포인트 리스트에서 확인

#openstack endpoint list

 

참고 :

4betterme.tistory.com/40

 

 

 

 

'openstack' 카테고리의 다른 글

openstack - nova 설치  (0) 2021.01.18
openstack - glance 설치  (0) 2021.01.18
openstack - host vm setting  (0) 2021.01.12
openstack - ubuntu 16.04 devstack 설치  (0) 2021.01.12
openstack- centos 7.3 packstack 설치  (0) 2021.01.12