설치와 설정

설치와 설정

이 섹션은 keystone 이라는 코드 이름을 가진 OpenStack Identity 서비스를 컨트롤러 노드에 설치하고 구성하는 방법을 설명합니다. 성능을 위해 해당 구성에서는 요청을 다루기 위한 Apache HTTP 서버와 SQL 데이터베이스 대신 토큰을 저장하는 Memcached를 배포합니다.

선행조건

OpenStack Identity 서비스를 설정하기 전에 데이터베이스와 관리 토큰을 생성하여야합니다.

  1. 데이터베이스를 생성하기 위해 다음 과정을 완료합니다:

    • 데이터베이스 액세스 클라이언트를 사용하여 데이터베이스 서버에 root 사용자로 연결합니다:

      $ mysql -u root -p
      
    • keystone 데이터베이스를 생성합니다:

      CREATE DATABASE keystone;
      
    • keystone 데이터베이스에 적합한 액세스를 부여합니다:

      GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
        IDENTIFIED BY 'KEYSTONE_DBPASS';
      GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
        IDENTIFIED BY 'KEYSTONE_DBPASS';
      

      KEYSTONE_DBPASS 를 적절한 암호로 변경합니다.

    • 데이터베이스 접속 클라이언트를 종료합니다.

  2. 초기설정동안 관리 토큰으로 사용할 무작위 값을 생성합니다:

    $ openssl rand -hex 10
    

구성요소 설치와 구성

주석

디폴트 구성 파일을 배포판에 따라 달라집니다. 기존 섹션 및 옵션을 변경하는 것 보다는 해당 섹션과 옵션을 추가해야 할 수도 있습니다. 또한 구성 내용 조각 중 생략 (...) 부분은 유지될 필요성이 있는 디폴트 구성 옵션을 가리킵니다.

주석

Kilo와 Liberty 릴리즈에서는 keystone 프로젝트가 eventlet을 deprecate하고 WSGI 확장과 함께 별도 웹 서버로 대체합니다. 이 가이드는 Apache HTTP 서버를 mod_wsgi 와 함께 사용하여 포트 5000 및 35357에서 Identity 서비스 요청을 처리합니다. 기본으로 keystone 서비스는 포트 5000와 35357에서 계속 listen 상태로 있습니다. 따라서 이 가이드는 keystone 서비스를 비활성화합니다. keystone 프로젝트는 Mitaka에서 eventlet 지원을 제거할 계획입니다.

  1. 설치 후 keystone 서비스가 자동 시작하지 않도록 비활성화합니다:

    # echo "manual" > /etc/init/keystone.override
    
  2. 패키지들을 설치하기 위해 다음 명령어를 실행합니다:

    # apt-get install keystone apache2 libapache2-mod-wsgi \
      memcached python-memcache
    
  1. /etc/keystone/keystone.conf 파일을 편집하여 다음 작업을 완료합니다:

    • [DEFAULT] 섹션에서 초기 관리 토큰에 대한 값을 정의합니다:

      [DEFAULT]
      ...
      admin_token = ADMIN_TOKEN
      

      ADMIN_TOKEN 을 이전 단계에서 생성했던 랜덤값으로 변경합니다.

    • [database] 섹션에서 데이터베이스 액세스를 구성합니다:

      [database]
      ...
      connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
      

      KEYSTONE_DBPASS 를 데이터베이스에 대해 선택한 암호로 변경합니다.

    • [memcache] 섹션에 Memcached 서비스를 구성합니다:

      [memcache]
      ...
      servers = localhost:11211
      
    • [token] 섹션에는 UUID 토큰 제공자와 Memcached 드라이버를 구성합니다:

      [token]
      ...
      provider = uuid
      driver = memcache
      
    • [revoke] 섹션에서 SQL revocation 드라이버를 구성합니다:

      [revoke]
      ...
      driver = sql
      
    • (옵션) 트러블 슈팅을 지원하기 위해, [DEFAULT] 섹션에서 verbose 로깅을 활성화합니다:

      [DEFAULT]
      ...
      verbose = True
      
  1. Identity 서비스 데이터베이스를 넣어줍니다:

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

Apache HTTP 서버 구성

  1. /etc/apache2/apache2.conf 파일을 편집하여 ServerName 옵션이 컨트롤러 노드를 가리키도록 구성합니다:

    ServerName controller
    
  2. /etc/apache2/sites-available/wsgi-keystone.conf 파일을 다음 내용과 함께 생성합니다:

    Listen 5000
    Listen 35357
    
    <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
        <IfVersion >= 2.4>
          ErrorLogFormat "%{cu}t %M"
        </IfVersion>
        ErrorLog /var/log/apache2/keystone.log
        CustomLog /var/log/apache2/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>
    
    <VirtualHost *:35357>
        WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
        WSGIProcessGroup keystone-admin
        WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
        WSGIApplicationGroup %{GLOBAL}
        WSGIPassAuthorization On
        <IfVersion >= 2.4>
          ErrorLogFormat "%{cu}t %M"
        </IfVersion>
        ErrorLog /var/log/apache2/keystone.log
        CustomLog /var/log/apache2/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>
    
  3. Identity 서비스 가상 호스트를 활성화합니다:

    # ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled
    

설치 마무리

  1. Apache HTTP 서버를 재시작합니다:

    # service apache2 restart
    
  2. 기본으로 Ubuntu 패키지들은 SQLite 데이터베이스를 생성합니다.

    해당 구성은 SQL 데이터베이스 서버를 사용하므로, 해당 SQLite 데이터베이스 파일을 삭제할 수 있습니다:

    # rm -f /var/lib/keystone/keystone.db
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.