
Horizon: Openstack's Dashboard
오픈스택 서비스(Nova, Swift, Keystone)에 대한 웹 기반 UI를 제공한다.
<< ⭕ 본 설치 내용은 컨트롤러 노드에서 진행 >>
🔨 구성요소 설치
🟢 dashboard 패키지 설치
# yum install openstack-dashboard
🟢 dashboard의 local_settings 파일 수정
# vi /etc/openstack-dashboard/local_settings
OPENSTACK_HOST="[컨트롤러 노드 관리용 ip]"
ALLOWED_HOSTS=['*' , ] //보안적으로는 좋지 않은 방식
SESSION_ENGINE='django.contrib.sessions.backends.cache'
CACHES={
'default': {
'BACKEND':'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION':'controller:11211',
}
}
OPENSTACK_KEYSTONE_URL="http://%s:5000/v3"% OPENSTACK_HOST
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT=True
OPENSTACK_API_VERSIONS={
"identity":3,
"image":2,
"volume":2,
}
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN="Default" //대쉬보드로 생성한 계정의 디폴트 domain: default
OPENSTACK_KEYSTONE_DEFAULT_ROLE="user" //대쉬보드로 생성한 계정의 디폴트 role: user
OPENSTACK_NEUTRON_NETWORK={ //네트워크 옵션 1일 때와 옵션 2일 때 다르게 설정 필요 (예로 옵션1일 때는 layer 3 네트워킹 서비스를 비활성화해야함)
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': True,
'enable_quotas': True,
'enable_ipv6': True,
'enable_distributed_router': True,
'enable_ha_router': False,
'enable_lb': True,
'enable_firewall': False,
'enable_vpn': True,
'enable_fip_topology_check': True,
TIME_ZONE = "Asia/Seoul"
🟢 dashboard.conf 파일에 해당 커맨드가 없는 경우 추가 :
# vi/etc/httpd/conf.d/openstack-dashboard.conf
---------------------------------------------------
WSGIApplicationGroup %{GLOBAL}
🔨 설치 마무리
🟢 웹서버와 세션 스토리지 서비스(memcached.service) 재실행 :
# systemctl restart httpd.service memcached.service
* 이때 각 서비스가 실행되지 않는다면? 각 서비스를 따로 하나씩 (커맨드를 분리하여) 재실행시켜 본다.
📍 Verification
주소창에 http://[컨트롤러 노드 관리용 ip]/dashboard 입력하여 오픈스택 로그인 화면이 나오는 지 확인
🔫 Trouble Shooting # 1 : URL Not Found

🔴 ERROR: The Requested URL was not found on this server.
(흔히, 구글링을 하면 15-horizon_vhost를 해결방식으로 언급하지만, 오픈스택을 packstack으로 설치하지 않는 경우 해당 파일이 생성되지 않는 것 같다. 왜냐하면 내 오픈스택 파일 중엔 해당 파일이 없었으니까..)
There was no /etc/httpd/conf.d/15-horizon_vhost.conf but a /etc/httpd/conf.d/openstack-dashboard.conf file
🟠 경로 오류라고 판단 :
1. /dashboard 경로가 아닌 /static 으로 접속해 봄

2. 오픈스택 대시보드 관련 conf 파일 경로 관련 command 중
/dashboard 로 접속하는 경우의 Aliase가 설정되어 있지 않은 상태였음
🟢 Trouble Shooting : /dashboard 에 해당하는 Alias 명령문 설정 :
"WSGIScriptAlias /dashboard /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi "
# vi /etc/httpd/conf.d/openstack-dashboard.conf
WSGIApplicationGroup %{GLOBAL}
WSGIDaemonProcess dashboard
WSGIProcessGroup dashboard
WSGISocketPrefix run/wsgi
WSGIScriptAlias /dashboard /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
Alias /dashboard/static /usr/share/openstack-dashboard/static
<Directory /usr/share/openstack-dashboard/openstack_dashboard/wsgi>
Options All
AllowOverride All
Require all granted
</Directory>
<Directory /usr/share/openstack-dashboard/static>
Options All
AllowOverride All
Require all granted
</Directory>
🔫 Trouble Shooting # 2 : Something went wrong !

🔴 ERROR : 로그인화면은 이제 제대로 뜨는데. 로그인을 한 다음 대쉬보드로 들어가지지 않는다?
🟠 로그 분석시, 토큰 세션 관련된 오류임을 확인 . 인증서비스의 토큰 캐시를 관리하는 memcache 수정 필요
🟢 Trouble Shooting : memcached 파일에서 컨트롤러 노드의 관리용 ip 추가가 안 되어있어, 추가하여 해결
# vi /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1,192.168.1.100" // 컨트롤러 노드의 관리용IP
수정한 설정 내용 반영하기: restart

'자기발전소 > # Manually Install OpenStack' 카테고리의 다른 글
Openstack Swift on Centos (Rocky) 2 [Storage Node] (0) | 2020.08.23 |
---|---|
Openstack Swift on Centos (Rocky) 1 [Controller Node] (0) | 2020.08.22 |
Openstack Neutron on Centos (Rocky) 2 [Compute Node] (0) | 2020.08.22 |
Openstack Neutron on Centos (Rocky) 1 [Controller Node] (0) | 2020.08.22 |
Openstack Nova on Centos (Rocky) 2 [Compute Node] (0) | 2020.08.21 |