仪表盘服务(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.
posted @   雙_木  阅读(133)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示