[ English | English (United Kingdom) | 中文 (简体, 中国) | Indonesia | русский | français | नेपाली | Deutsch | Esperanto | português (Brasil) | español | 한국어 (대한민국) ]

수동 설치

이 페이지는 제품 환경에서의 horizon 기본 설치를 다루고 있습니다. 개발 환경을 찾는 경우, :ref:`quickstart`를 참조하십시오.

시스템 의존성은, 시스템 요구사항 를 참조하십시오.

설치

참고

아래 명령어에서, “queens” 또는 “rocky” 와 같이 선택한는 버전에 대한 “<release>” 로 치환합니다.

개발 버전을 사용하는 경우에는, “stable/<release>” 를 “master” 로 변경합니다.

  1. Horizon 복제

    $ git clone https://opendev.org/openstack/horizon -b stable/<release> --depth=1
    $ cd horizon
    
  2. horizon python 모듈을 시스템에 설치

    $ sudo pip install -c https://opendev.org/openstack/requirements/raw/branch/stable/<release>/upper-constraints.txt .
    

구성

이 섹션은 horizon을 실행하는 데 필요한 중요 설정들에 대한 간단한 요약을 포함하고 있습니다. 더 자세한 사항은, Settings Reference 를 참조하십시오.

설정

openstack_dashboard/local/local_settings.py``를 생성하십시오. ``openstack_dashboard/local/local_settings.py.example 을 복사하고 편집하는 것을 권장합니다. 적어도, 다음의 설정들은 수정될 필요가 있습니다.

DEBUG

False 로 설정

ALLOWED_HOSTS

도메인 이름으로 설정

OPENSTACK_HOST

Keystone endpoint의 IP를 설정하십시오. 또한 OPENSTACK_KEYSTONE_URL 을 변경해야 할 수도 있습니다.

참고

다음의 "구성" 섹션은 선택 사항이지만, 제품 환경에서 매우 권장됩니다.

번역

국제화를 위한 번역 메시지 카탈로그를 컴파일 하십시오. 이 단계는 영어 외의 언어를 지원할 필요가 없으면 요구되지 않습니다. 메시지 카탈로그를 컴파일 하기 위해서는 GNU gettext 도구가 필요합니다.

$ sudo apt install gettext
$ ./manage.py compilemessages

정적 자산

COMPRESS_OFFLINE=Truelocal_settings.py 에 추가하여 정적 파일을 압축한 후, 다음의 명령을 실행하십시오.

$ ./manage.py collectstatic
$ ./manage.py compress

로깅

Horizon은 Django의 local_settings.pyLOGGING 사전을 변경하여 커스터마이즈 될 수 있는 로깅 구성 매커니즘을 사용합니다. 기본적으로, Horizon의 로깅 예시는 INFO 로그 레벨로 설정합니다.

Horizon은 또한 별도로 기록하는 다수의 서드파티 클라이언트를 사용합니다. 이러한 로그 레벨은 여전히 Horizon의 LOGGING 구성에서 제어되지만, 동작은 Horizon의 제어를 벗어날 수도 있습니다.

Horizon에서 로깅을 구성하는 것에 관한 추가 정보에 대해서는, Django logging directivePython logging directive 문서를 읽어보십시오. Horizon은 Python과 Django를 기반으로 합니다.

세션 저장소

Horizon은 세션 데이터를 처리하기 위해 Django’s sessions framework 를 사용합니다. local_settings.py 파일의 SESSION_ENGINE 설정을 통해 선택된 사용 가능한 많은 세션 백엔드들이 있습니다.

Memcached

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache',
        'LOCATION': 'controller:11211',
    }
}

memcached와 같은 애플리케이션을 사용하는 외부 캐싱은 지속성과 공유 저장소를 제공하며, 소규모 배포 및 개발에서 매우 유용할 수 있습니다. 그러나, 분산된 고가용성 시나리오에서 memcached는 이 문서의 범위를 벗어나는 내재된 문제를 갖고 있습니다.

요구사항:

  • Mencached 서비스 실행과 접근 가능성

  • Python memcached 모듈 설치

데이터베이스

SESSION_ENGINE = 'django.core.cache.backends.db.DatabaseCache'
DATABASES = {
    'default': {
        # Database configuration here
    }
}

데이터베이스 기반 세션은 확장 가능하며(적절한 데이터베이스 전략을 사용하여), 지속적이고, 고병행성과 고가용성을 제공할 수 있습니다.

이 접근법의 단점은 데이터베이스 기반 세션이 느린 세션 저장소 중 하나이며 대량으로 사용시 높은 오버헤드를 초래한다는 것입니다. 데이터베이스 배포의 적절한 구성은 상당히 힘들 수 있으며 이 문서의 범위를 훨씬 벗어납니다.

캐시된 데이터베이스

데이터베이스 쿼리의 성능 문제를 완화하기 위하여, 동시 기록 캐싱과 효율적인 검색을 수행하기 위해 데이터베이스와 캐싱 인프라를 모두 사용하는 Django의 cached_db 세션 백엔드 사용을 고려할 수 있습니다. 위에서 논의한 대로 데이터베이스와 캐시를 모두 구성하는 하이브리드 설정을 활성화하여 사용할 수 있습니다.

SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"

배포

  1. WSGI를 지원하는 웹 서버를 설치하십시오. 예를 들어, Ubuntu 에 Apache 웹 서버를 설치하십시오.

    $ sudo apt install apache2 libapache2-mod-wsgi
    

    다음의 명령을 통해 제공된 openstack_dashboard/wsgi.py 를 사용하거나 openstack_dashboard/horizon_wsgi.py 파일을 생성할 수 있습니다. (가상 환경을 사용하거나 적용된 WSGI 파일을 자동으로 구축하지 않으면 감지합니다)

    $ ./manage.py make_web_conf --wsgi
    

    그리고, WSGI를 통해 OpenStack 대시보드를 호스팅하도록 웹 서버를 구성하십시오. apache2 웹 서버의 경우, /etc/apache2/sites-available/horizon.conf 생성이 필요할 수 있습니다. DevStack의 템플릿은 해당 파일의 좋은 예시입니다. https://opendev.org/openstack/devstack/src/branch/master/files/apache-horizon.template 또는 자동으로 apache 구성 파일을 생성할 수 있습니다. 이전에 openstack_dashboard/horizon_wsgi.py 파일을 생성하였다면 그것을 사용하고, 그렇지 않다면 기본적으로 openstack_dashboard/wsgi.py 를 사용합니다.

    $ ./manage.py make_web_conf --apache > /etc/apache2/sites-available/horizon.conf
    

    위와 같지만 SSL 지원이 필요한 경우

    $ ./manage.py make_web_conf --apache --ssl --sslkey=/path/to/ssl/key --sslcert=/path/to/ssl/cert > /etc/apache2/sites-available/horizon.conf
    

    기본적으로 apache 구성은 make_web_conf 명령을 실행하는 시스템의 CPU 수 + 1개의 apache 프로세스를 실행합니다. 대상 머신이 같지 않거나 프로세스 수를 지정하기를 원하는 경우, --processes 옵션을 추가하십시오

    $ ./manage.py make_web_conf --apache --processes 10 > /etc/apache2/sites-available/horizon.conf
    
  2. 위의 구성을 활성화하고 웹 서버를 다시 시작하십시오.

    $ sudo a2ensite horizon
    $ sudo service apache2 restart
    

다음 단계