ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오픈스택 수동 설치 실습 #.6
    Cloud Computing/Openstack 2019.01.19 01:25

    오픈스택 수동 설치 실습 #.6 - Keystone 인증 설치


    사용자가 대시보드로 오픈스택을 사용할 때 반드시 거쳐야 할 과정이 있는데 바로 인증입니다. 오픈스택에서 Keystone은 모든 서비스를 관장하는 위치에 있습니다. Keystone은 타인이나 해커에게서 시스템을 안전하게 보호하고 사용자 등록, 삭제, 권한 관리, 사용자가 접근할 수 있는 서비스 포인트 관리까지 전반적인 사용자 인증을 관리합니다. 



    Keystone 위치를 보면 서비스 백단에서 오픈스택의 모든 서비스를 관장하고 있습니다.



    Keystone 설치


    SQL DB에 접속하여 keystone database 및 유저를 생성합니다. DB계정에 대한 password는 보기 편하게 user와 동일하게 설정 했습니다. 

    # su - postgres

    $ psql

    keystone 데이터베이스 및 유저 생성

    postgres=#create role keystone with login;

    postgres=#create database keystone;

    postgres=#grant ALL PRIVILEGES ON DATABASE keystone TO keystone;

    postgres=#alter user keystone with encrypted password 'keystone';

    keystone 계정으로 DB 접속이 되나 확인 합니다.



    다시 root로 돌아와서 keystone을 설치합니다.

     # yum -y install openstack-keystone httpd mod_wsgi


    keystone.conf 파일 수정

    # vi /etc/keystone/keystone.conf

     [database]

    # ...

    connection = postgresql://keystone:keystone@controller/keystone


    [token]

    # ...

    provider = fernet

    지금부터는 tail -f /var/log/keystone/keystone.log 통해 keystone 인증 과정을 확인 할 수 있습니다. log에 Error 메세지가 찍힌다면 어딘가 잘못된 부분이 있는 겁니다. 해당 에러를 확인하고, Error 메세지가 나오지 않게 조치한 후 진행 해야 합니다.


    Keystone DB 인증

    # su -s /bin/sh -c "keystone-manage db_sync" keystone


    Fernet 키 저장소 초기화

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

    # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone


    인증서비스 bootstrap

    ※ ADMIN_PASS 에는 admin 계정의 패스워드를 입력해야 합니다.

    # keystone-manage bootstrap --bootstrap-password <ADMIN_PASS> \

      --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


    httpd server 설정

    # vi /etc/httpd/conf/httpd.conf

    httpd.conf 내용 편집

     ServerName controller

    wsgi-keystone.conf를 httpd 설정 폴더 밑에 링크합니다.

    # ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

    httpd 서비스 등록 및 시작

    # systemctl enable httpd.service

    # systemctl start httpd.service


    keystone 인증값을 스크립트로 만듭니다.

    ※ ADMIN_PASS 부분에는 admin 유저의 패스워드를 넣습니다.

    # vi admin-openrc

    export OS_PROJECT_DOMAIN_NAME=Default

    export OS_USER_DOMAIN_NAME=Default

    export OS_PROJECT_NAME=admin

    export OS_USERNAME=admin

    export OS_PASSWORD=<ADMIN_PASS>

    export OS_AUTH_URL=http://controller:5000/v3

    export OS_IDENTITY_API_VERSION=3

    export OS_IMAGE_API_VERSION=2

    export PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\h:\[\e[31;1m\]\w(keystone)]# \[\e[0m\]"

    인증값을 불러옵니다.




    ※ httpd status 에서 wsgi를 불러와야 정상입니다.



    keystone-manage bootstrap 과정에서 Default domain은 만들어져서 이미 존재합니다. (※ 대문자 주의)


    Default Domain 값을 가진 프로젝트 생성

    $ openstack project create --domain Default \

      --description "Service Project" service



    admin 유저의 인증 토큰 만들기

    $ openstack --os-auth-url https://controller:5000/v3 \

      --os-project-domain-name Default --os-user-domain-name Default \

      --os-project-name admin --os-username admin token issue


    $ . admin-openrc

    $ openstack token issue



    Keystone 인증 설치가 완료 되었습니다.

    댓글 0

Designed by black7375.

티스토리 툴바