仪表盘服务(DashboardHorizon)部署
仪表盘服务(Dashboard/Horizon)部署
OpenStack推出了一个名为Horizon的项目,它提供了图形化的操作界面来使用OpenStack云计算平台。
Horizon中主要提供了一个Web前端控制台,该控制台软件被称为Dashboard。
1、安装Dashboard软件包
在计算节点安装Dashboard软件包。
[root@compute opt]# mount openStack-train.iso openstack/
mount: /dev/loop0 is write-protected, mounting read-only
[root@compute opt]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 898M 0 898M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.5M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root 39G 19G 20G 49% /
/dev/mapper/centos-home 19G 33M 19G 1% /home
/dev/sda1 1014M 188M 827M 19% /boot
tmpfs 182M 0 182M 0% /run/user/0
/dev/loop0 16G 16G 0 100% /opt/openstack
[root@compute opt]# yum install -y openstack-dashboard
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
train | 2.9 kB 00:00:00
virt | 2.9 kB 00:00:00
Resolving Dependencies
---> Package python-XStatic-Magic-Search.noarch 0:0.2.0.1-2.el7 will be installed
---> Package python-XStatic-Rickshaw.noarch 0:1.5.0.0-4.el7 will be installed
---> Package python-XStatic-Spin.noarch 0:1.2.5.2-2.el7 will be installed
---> Package python-XStatic-jQuery.noarch 0:1.10.2.1-1.el7 will be installed
---> Package python-XStatic-jquery-ui.noarch 0:1.10.4.1-1.el7 will be installed
---> Package python-django-appconf.noarch 0:1.0.1-4.el7 will be installed
--> Processing Dependency: python-django for package: python-django-appconf-1.0.1-4.el7.noarch
---> Package python-django-pyscss.noarch 0:2.0.2-1.el7 will be installed
--> Processing Dependency: python-pathlib for package: python-django-pyscss-2.0.2-1.el7.noarch
---> Package python-lesscpy.noarch 0:0.9j-4.el7 will be installed
---> Package python-semantic_version.noarch 0:2.4.2-2.el7 will be installed
---> Package python2-XStatic.noarch 0:1.0.1-8.el7 will be installed
---> Package python2-XStatic-Angular.noarch 1:1.5.8.0-1.el7 will be installed
--> Processing Dependency: XStatic-Angular-common = 1:1.5.8.0-1.el7 for package: 1:python2-XStatic-Angular-1.5.8.0-1.el7.noarch
---> Package python2-XStatic-Angular-Bootstrap.noarch 0:2.2.0.0-1.el7 will be installed
--> Processing Dependency: xstatic-angular-bootstrap-common for package: python2-XStatic-Angular-Bootstrap-2.2.0.0-1.el7.noarch
---> Package python2-XStatic-Angular-FileUpload.noarch 0:12.0.4.0-1.el7 will be installed
--> Processing Dependency: xstatic-angular-fileupload-common for package: python2-XStatic-Angular-FileUpload-12.0.4.0-1.el7.noarch
---> Package python2-XStatic-Angular-Gettext.noarch 0:2.3.8.0-1.el7 will be installed
--> Processing Dependency: xstatic-angular-gettext-common for package: python2-XStatic-Angular-Gettext-2.3.8.0-1.el7.noarch
---> Package python2-XStatic-Angular-Schema-Form.noarch 0:0.8.13.0-0.1.pre_review.el7 will be installed
--> Processing Dependency: xstatic-angular-schema-form-common = 0.8.13.0-0.1.pre_review.el7 for package: python2-XStatic-Angular-Schema-Form-0.8.13.0-0.1.pre_review.el7.noarch
---> Package python2-XStatic-Bootstrap-SCSS.noarch 0:3.3.7.1-2.el7 will be installed
--> Processing Dependency: xstatic-bootstrap-scss-common for package: python2-XStatic-Bootstrap-SCSS-3.3.7.1-2.el7.noarch
---> Package python2-XStatic-D3.noarch 0:3.5.17.0-1.el7 will be installed
--> Processing Dependency: xstatic-d3-common for package: python2-XStatic-D3-3.5.17.0-1.el7.noarch
---> Package python2-XStatic-Font-Awesome.noarch 0:4.7.0.0-3.el7 will be installed
---> Package python2-XStatic-JSEncrypt.noarch 0:2.3.1.1-1.el7 will be installed
--> Processing Dependency: xstatic-jsencrypt-common for package: python2-XStatic-JSEncrypt-2.3.1.1-1.el7.noarch
---> Package python2-XStatic-Jasmine.noarch 0:2.4.1.1-1.el7 will be installed
--> Processing Dependency: xstatic-jasmine-common for package: python2-XStatic-Jasmine-2.4.1.1-1.el7.noarch
---> Package python2-XStatic-bootswatch.noarch 0:3.3.7.0-1.el7 will be installed
--> Processing Dependency: bootswatch-fonts = 3.3.7.0-1.el7 for package: python2-XStatic-bootswatch-3.3.7.0-1.el7.noarch
--> Processing Dependency: bootswatch-common = 3.3.7.0-1.el7 for package: python2-XStatic-bootswatch-3.3.7.0-1.el7.noarch
---> Package python2-XStatic-mdi.noarch 0:1.4.57.0-4.el7 will be installed
--> Processing Dependency: mdi-fonts = 1.4.57.0-4.el7 for package: python2-XStatic-mdi-1.4.57.0-4.el7.noarch
--> Processing Dependency: mdi-common = 1.4.57.0-4.el7 for package: python2-XStatic-mdi-1.4.57.0-4.el7.noarch
---> Package python2-XStatic-objectpath.noarch 0:1.2.1.0-0.1.pre_review.el7 will be installed
--> Processing Dependency: xstatic-objectpath-common = 1.2.1.0-0.1.pre_review.el7 for package: python2-XStatic-objectpath-1.2.1.0-0.1.pre_review.el7.noarch
---> Package python2-XStatic-roboto-fontface.noarch 0:0.5.0.0-1.el7 will be installed
--> Processing Dependency: roboto-fontface-fonts = 0.5.0.0-1.el7 for package: python2-XStatic-roboto-fontface-0.5.0.0-1.el7.noarch
--> Processing Dependency: roboto-fontface-common = 0.5.0.0-1.el7 for package: python2-XStatic-roboto-fontface-0.5.0.0-1.el7.noarch
---> Package python2-XStatic-smart-table.noarch 0:1.4.13.2-1.el7 will be installed
--> Processing Dependency: xstatic-smart-table-common for package: python2-XStatic-smart-table-1.4.13.2-1.el7.noarch
---> Package python2-XStatic-termjs.noarch 0:0.0.7.0-1.el7 will be installed
--> Processing Dependency: xstatic-termjs-common for package: python2-XStatic-termjs-0.0.7.0-1.el7.noarch
---> Package python2-XStatic-tv4.noarch 0:1.2.7.0-0.1.pre_review.el7 will be installed
--> Processing Dependency: xstatic-tv4-common = 1.2.7.0-0.1.pre_review.el7 for package: python2-XStatic-tv4-1.2.7.0-0.1.pre_review.el7.noarch
---> Package python2-django-babel.noarch 0:0.6.2-1.el7 will be installed
---> Package python2-django-compressor.noarch 0:2.1-5.el7 will be installed
--> Processing Dependency: python2-rjsmin for package: python2-django-compressor-2.1-5.el7.noarch
--> Processing Dependency: python2-rcssmin for package: python2-django-compressor-2.1-5.el7.noarch
--> Processing Dependency: python-versiontools for package: python2-django-compressor-2.1-5.el7.noarch
---> Package python2-django-debreach.noarch 0:1.5.2-1.el7 will be installed
---> Package python2-django-horizon.noarch 1:16.2.2-1.el7 will be installed
---> Package python2-pint.noarch 0:0.9-1.el7 will be installed
---> Package python2-pymongo.x86_64 0:3.7.2-1.el7 will be installed
--> Processing Dependency: python2-bson(x86-64) = 3.7.2-1.el7 for package: python2-pymongo-3.7.2-1.el7.x86_64
---> Package python2-scss.x86_64 0:1.3.4-6.el7 will be installed
---> Package python2-swiftclient.noarch 0:3.8.1-1.el7 will be installed
--> Running transaction check
---> Package XStatic-Angular-common.noarch 1:1.5.8.0-1.el7 will be installed
---> Package apr.x86_64 0:1.4.8-7.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package bootswatch-common.noarch 0:3.3.7.0-1.el7 will be installed
---> Package bootswatch-fonts.noarch 0:3.3.7.0-1.el7 will be installed
---> Package fontawesome-fonts.noarch 0:4.4.0-1.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-98.el7.centos.7 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
---> Package mdi-common.noarch 0:1.4.57.0-4.el7 will be installed
---> Package mdi-fonts.noarch 0:1.4.57.0-4.el7 will be installed
---> Package python-pathlib.noarch 0:1.0.1-1.el7 will be installed
---> Package python-versiontools.noarch 0:1.9.1-4.el7 will be installed
---> Package python2-bson.x86_64 0:3.7.2-1.el7 will be installed
---> Package python2-django.noarch 0:1.11.20-1.el7 will be installed
--> Processing Dependency: python-django-bash-completion = 1.11.20-1.el7 for package: python2-django-1.11.20-1.el7.noarch
---> Package python2-rcssmin.x86_64 0:1.0.6-2.el7 will be installed
---> Package python2-rjsmin.x86_64 0:1.0.12-2.el7 will be installed
---> Package roboto-fontface-common.noarch 0:0.5.0.0-1.el7 will be installed
---> Package roboto-fontface-fonts.noarch 0:0.5.0.0-1.el7 will be installed
---> Package web-assets-filesystem.noarch 0:5-1.el7 will be installed
---> Package xstatic-angular-bootstrap-common.noarch 0:2.2.0.0-1.el7 will be installed
---> Package xstatic-angular-fileupload-common.noarch 0:12.0.4.0-1.el7 will be installed
---> Package xstatic-angular-gettext-common.noarch 0:2.3.8.0-1.el7 will be installed
---> Package xstatic-angular-schema-form-common.noarch 0:0.8.13.0-0.1.pre_review.el7 will be installed
---> Package xstatic-bootstrap-scss-common.noarch 0:3.3.7.1-2.el7 will be installed
---> Package xstatic-d3-common.noarch 0:3.5.17.0-1.el7 will be installed
---> Package xstatic-jasmine-common.noarch 0:2.4.1.1-1.el7 will be installed
---> Package xstatic-jsencrypt-common.noarch 0:2.3.1.1-1.el7 will be installed
---> Package xstatic-objectpath-common.noarch 0:1.2.1.0-0.1.pre_review.el7 will be installed
---> Package xstatic-smart-table-common.noarch 0:1.4.13.2-1.el7 will be installed
---> Package xstatic-termjs-common.noarch 0:0.0.7.0-1.el7 will be installed
---> Package xstatic-tv4-common.noarch 0:1.2.7.0-0.1.pre_review.el7 will be installed
--> Running transaction check
---> Package python-django-bash-completion.noarch 0:1.11.20-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================
Package Arch Version Repository
Size
==========================================================================================
Installing:
openstack-dashboard noarch 1:16.2.2-1.el7 train 12 M
.....
Complete!
[root@compute opt]#
2、修改Horizon配置文件
# 修改Horizon配置文件
# 修改Horizon配置文件
[root@compute opt]# vi /etc/openstack-dashboard/local_settings
# 控制节点位置
OPENSTACK_HOST = "controller"
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
# 启用对多域的支持
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
# 配置API版本
OPENSTACK_API_VERSIONS = {
"identity": 3,
"image": 2,
"volume": 3
}
# 配置通过仪表盘创建的用户默认域为Default
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
# 配置通过仪表盘创建的用户默认角色为user
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
# 修改配置二层网络
OPENSTACK_NEUTRON_NETWORK = {
'enable_auto_allocated_network': False,
'enable_distributed_router': False,
'enable_fip_topology_check': False,
'enable_ha_router': False,
'enable_ipv6': False,
'enable_quotas': False,
'enable_rbac_policy': False,
'enable_router': False,
'default_dns_nameservers': [],
'supported_provider_types': ['*'],
'segmentation_id_range': {},
'extra_provider_types': {},
'supported_vnic_types': ['*'],
'physical_networks': [],
}
# 配置时区
TIME_ZONE = "Asia/Shanghai"
# 允许从任意主机访问
ALLOWED_HOSTS = ['*']
# 配置使用缓存服务
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'controller:11211',
},
}
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
3、重建Apache下Dashboard配置文件
Dashboard是一个Web应用,必须运行在Apache这样的WEB服务器上,因此要设置让Apaceh知道如何运行该服务。
# 进入Dashboard网站目录
[root@compute opt]# cd /usr/share/openstack-dashboard/
[root@compute openstack-dashboard]# ls
manage.py manage.pyc manage.pyo openstack_dashboard static
# 编译生成Dashboard的WEB服务文件
[root@compute openstack-dashboard]# python manage.py make_web_conf --apache > /etc/httpd/conf.d/openstack-dashboard.conf
[root@compute openstack-dashboard]# cat /etc/httpd/conf.d/openstack-dashboard.conf
<VirtualHost *:80>
ServerAdmin webmaster@openstack.org
ServerName openstack_dashboard
DocumentRoot /usr/share/openstack-dashboard/
LogLevel warn
ErrorLog /var/log/httpd/openstack_dashboard-error.log
CustomLog /var/log/httpd/openstack_dashboard-access.log combined
WSGIScriptReloading On
WSGIDaemonProcess openstack_dashboard_website processes=3
WSGIProcessGroup openstack_dashboard_website
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
WSGIScriptAlias / /usr/share/openstack-dashboard/openstack_dashboard/wsgi.py
<Location "/">
Require all granted
</Location>
Alias /static /usr/share/openstack-dashboard/static
<Location "/static">
SetHandler None
</Location>
</Virtualhost>
#这样就实现了在Apache的web服务配置目录下生成一个配置文件。
4、建立策略文件软连接
在/etc/openstack-dashboard/
目录下保存了一些Dashboard与其他组件交互时的默认策略。
# 查看交互默认策略
[root@compute ~]# cd /etc/openstack-dashboard/
[root@compute openstack-dashboard]# ls
cinder_policy.json keystone_policy.json neutron_policy.json nova_policy.json
glance_policy.json local_settings nova_policy.d
# 将这些策略链接到Dashboard项目中,让策略生效
[root@compute openstack-dashboard]# ln -s /etc/openstack-dashboard /usr/share/openstack-dashboard/openstack_dashboard/conf
[root@compute openstack-dashboard]# ll /usr/share/openstack-dashboard/openstack_dashboard/
total 240
total 240
drwxr-xr-x 3 root root 4096 May 8 10:10 api
lrwxrwxrwx 1 root root 24 May 8 10:25 conf -> /etc/openstack-dashboard
-rw-r--r-- 1 root root 4192 May 17 2021 context_processors.py
-rw-r--r-- 2 root root 3174 May 17 2021 context_processors.pyc
-rw-r--r-- 2 root root 3174 May 17 2021 context_processors.pyo
drwxr-xr-x 3 root root 82 May 8 10:10 contrib
drwxr-xr-x 6 root root 125 May 8 10:10 dashboards
-rw-r--r-- 1 root root 21615 May 17 2021 defaults.py
-rw-r--r-- 2 root root 7187 May 17 2021 defaults.pyc
-rw-r--r-- 2 root root 7187 May 17 2021 defaults.pyo
drwxr-xr-x 2 root root 65 May 8 10:10 django_pyscss_fix
drwxr-xr-x 2 root root 12288 May 8 10:10 enabled
-rw-r--r-- 1 root root 2084 May 17 2021 exceptions.py
-rw-r--r-- 2 root root 927 May 17 2021 exceptions.pyc
-rw-r--r-- 2 root root 927 May 17 2021 exceptions.pyo
-rw-r--r-- 1 root root 1112 May 17 2021 hooks.py
-rw-r--r-- 2 root root 556 May 17 2021 hooks.pyc
-rw-r--r-- 2 root root 556 May 17 2021 hooks.pyo
-rw-r--r-- 1 root root 0 May 17 2021 __init__.py
-rw-r--r-- 2 root root 149 May 17 2021 __init__.pyc
-rw-r--r-- 2 root root 149 May 17 2021 __init__.pyo
-rw-r--r-- 1 root root 6794 May 17 2021 karma.conf.js
drwxr-xr-x 4 root root 181 May 8 10:24 local
drwxr-xr-x 34 root root 4096 May 8 10:10 locale
drwxr-xr-x 3 root root 81 May 8 10:10 management
-rw-r--r-- 1 root root 2171 May 17 2021 policy.py
-rw-r--r-- 2 root root 2034 May 17 2021 policy.pyc
-rw-r--r-- 2 root root 2034 May 17 2021 policy.pyo
-rw-r--r-- 1 root root 12927 May 17 2021 settings.py
-rw-r--r-- 2 root root 11241 May 17 2021 settings.pyc
-rw-r--r-- 2 root root 11241 May 17 2021 settings.pyo
drwxr-xr-x 5 root root 44 May 8 10:10 static
drwxr-xr-x 8 root root 258 May 8 10:10 templates
drwxr-xr-x 2 root root 204 May 8 10:10 templatetags
drwxr-xr-x 10 root root 4096 May 8 10:10 test
drwxr-xr-x 5 root root 52 May 8 10:10 themes
-rw-r--r-- 1 root root 2503 May 17 2021 theme_settings.py
-rw-r--r-- 2 root root 1439 May 17 2021 theme_settings.pyc
-rw-r--r-- 2 root root 1439 May 17 2021 theme_settings.pyo
-rw-r--r-- 1 root root 2320 May 17 2021 urls.py
-rw-r--r-- 2 root root 1596 May 17 2021 urls.pyc
-rw-r--r-- 2 root root 1596 May 17 2021 urls.pyo
5、启动服务并验证
# Apaceh服务开机启动和重启
[root@compute openstack-dashboard]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@compute openstack-dashboard]# systemctl restart httpd
[root@compute openstack-dashboard]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
└─openstack-dashboard.conf
Active: active (running) since Mon 2023-05-08 10:27:15 CST; 13s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 4004 ExecStartPre=/usr/bin/python2 /usr/share/openstack-dashboard/manage.py compress --force -v0 (code=exited, status=0/SUCCESS)
Process: 3984 ExecStartPre=/usr/bin/python2 /usr/share/openstack-dashboard/manage.py collectstatic --noinput --clear -v0 (code=exited, status=0/SUCCESS)
Main PID: 4027 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Tasks: 60
CGroup: /system.slice/httpd.service
├─4027 /usr/sbin/httpd -DFOREGROUND
├─4029 /usr/sbin/httpd -DFOREGROUND
├─4030 /usr/sbin/httpd -DFOREGROUND
├─4031 /usr/sbin/httpd -DFOREGROUND
├─4032 /usr/sbin/httpd -DFOREGROUND
├─4033 /usr/sbin/httpd -DFOREGROUND
├─4034 /usr/sbin/httpd -DFOREGROUND
├─4035 /usr/sbin/httpd -DFOREGROUND
└─4036 /usr/sbin/httpd -DFOREGROUND
May 08 10:27:05 compute systemd[1]: Starting The Apache HTTP Server...
May 08 10:27:15 compute python2[4004]: Compressing... done
May 08 10:27:15 compute python2[4004]: Compressed 7 block(s) from 4 template(s) for ...s).
May 08 10:27:15 compute httpd[4027]: AH00558: httpd: Could not reliably determine th...age
May 08 10:27:15 compute systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通