[ English | English (United Kingdom) | 中文 (简体, 中国) | Indonesia | русский | français | नेपाली | Deutsch | Esperanto | português (Brasil) | español | 한국어 (대한민국) ]
수동 설치¶
이 페이지는 제품 환경에서의 horizon 기본 설치를 다루고 있습니다. 개발 환경을 찾는 경우, :ref:`quickstart`를 참조하십시오.
시스템 의존성은, 시스템 요구사항 를 참조하십시오.
설치¶
참고
아래 명령어에서, “queens” 또는 “rocky” 와 같이 선택한는 버전에 대한 “<release>” 로 치환합니다.
개발 버전을 사용하는 경우에는, “stable/<release>” 를 “master” 로 변경합니다.
Horizon 복제
$ git clone https://opendev.org/openstack/horizon -b stable/<release> --depth=1 $ cd horizon
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=True
를 local_settings.py
에 추가하여 정적 파일을 압축한 후, 다음의 명령을 실행하십시오.
$ ./manage.py collectstatic
$ ./manage.py compress
로깅¶
Horizon은 Django의 local_settings.py
의 LOGGING
사전을 변경하여 커스터마이즈 될 수 있는 로깅 구성 매커니즘을 사용합니다. 기본적으로, Horizon의 로깅 예시는 INFO
로그 레벨로 설정합니다.
Horizon은 또한 별도로 기록하는 다수의 서드파티 클라이언트를 사용합니다. 이러한 로그 레벨은 여전히 Horizon의 LOGGING
구성에서 제어되지만, 동작은 Horizon의 제어를 벗어날 수도 있습니다.
Horizon에서 로깅을 구성하는 것에 관한 추가 정보에 대해서는, Django logging directive 와 Python 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"
배포¶
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
위의 구성을 활성화하고 웹 서버를 다시 시작하십시오.
$ sudo a2ensite horizon $ sudo service apache2 restart
다음 단계¶
Settings Reference horizon을 위한 가능한 설정 목록
Customizing Horizon 어떻게 horizon을 커스터마이즈하는지 기술