安装openstack仪表盘Dashboard

一、仪表盘服务horizon的介绍

Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务。这个部署示例使用的是 Apache Web 服务器。

它是使用python django框架开发的,它没有自己的数据库,web页面展示,全程依赖调用其他服务的api。

二、安装和配置Dashboard

在计算节点进行安装配置(在计算节点和控制节点都行),keystone安装在控制节点,也用Apache,horizon也是使用Apache,一旦Apache配置错误,重启Apache,horizon和keystone都挂了。没有自己数据库,web页面展示,全程依赖调用其他服务的api

1. 安装软件包

[root@computer1 ~]# yum install openstack-dashboard python-memcached -y

2. 编辑文件 /etc/openstack-dashboard/local_settings 并完成如下动作

[root@computer1 ~]# cp /etc/openstack-dashboard/local_settings{,.bak}
[root@computer1 ~]# grep -Ev "^$|#" /etc/openstack-dashboard/local_settings.bak >/etc/openstack-dashboard/local_settings
[root@computer1 ~]# cat /etc/openstack-dashboard/local_settings
import os
from django.utils.translation import ugettext_lazy as _
from openstack_dashboard import exceptions
from openstack_dashboard.settings import HORIZON_CONFIG
DEBUG = False
TEMPLATE_DEBUG = DEBUG
WEBROOT = '/dashboard/'
ALLOWED_HOSTS = ['horizon.example.com', 'localhost']
LOCAL_PATH = '/tmp'
SECRET_KEY='719d36f09122f749bd0f'
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    },
}
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
OPENSTACK_HOST = "127.0.0.1"
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "_member_"
OPENSTACK_KEYSTONE_BACKEND = {
    'name': 'native',
    'can_edit_user': True,
    'can_edit_group': True,
    'can_edit_project': True,
    'can_edit_domain': True,
    'can_edit_role': True,
}
OPENSTACK_HYPERVISOR_FEATURES = {
    'can_set_mount_point': False,
    'can_set_password': False,
    'requires_keypair': False,
}
OPENSTACK_CINDER_FEATURES = {
    'enable_backup': False,
}
OPENSTACK_NEUTRON_NETWORK = {
    'enable_router': True,
    'enable_quotas': True,
    'enable_ipv6': True,
    'enable_distributed_router': False,
    'enable_ha_router': False,
    'enable_lb': True,
    'enable_firewall': True,
    'enable_vpn': True,
    'enable_fip_topology_check': True,
    'default_ipv4_subnet_pool_label': None,
    'default_ipv6_subnet_pool_label': None,
    'profile_support': None,
    'supported_provider_types': ['*'],
    'supported_vnic_types': ['*'],
}
OPENSTACK_HEAT_STACK = {
    'enable_user_pass': True,
}
IMAGE_CUSTOM_PROPERTY_TITLES = {
    "architecture": _("Architecture"),
    "kernel_id": _("Kernel ID"),
    "ramdisk_id": _("Ramdisk ID"),
    "image_state": _("Euca2ools state"),
    "project_id": _("Project ID"),
    "image_type": _("Image Type"),
}
IMAGE_RESERVED_CUSTOM_PROPERTIES = []
API_RESULT_LIMIT = 1000
API_RESULT_PAGE_SIZE = 20
SWIFT_FILE_TRANSFER_CHUNK_SIZE = 512 * 1024
DROPDOWN_MAX_ITEMS = 30
TIME_ZONE = "UTC"
POLICY_FILES_PATH = '/etc/openstack-dashboard'
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'null': {
            'level': 'DEBUG',
            'class': 'logging.NullHandler',
        },
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['null'],
            'propagate': False,
        },
        'requests': {
            'handlers': ['null'],
            'propagate': False,
        },
        'horizon': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'openstack_dashboard': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'novaclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'cinderclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'keystoneclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'glanceclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'neutronclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'heatclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'ceilometerclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'swiftclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'openstack_auth': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'nose.plugins.manager': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'django': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'iso8601': {
            'handlers': ['null'],
            'propagate': False,
        },
        'scss': {
            'handlers': ['null'],
            'propagate': False,
        },
    },
}
SECURITY_GROUP_RULES = {
    'all_tcp': {
        'name': _('All TCP'),
        'ip_protocol': 'tcp',
        'from_port': '1',
        'to_port': '65535',
    },
    'all_udp': {
        'name': _('All UDP'),
        'ip_protocol': 'udp',
        'from_port': '1',
        'to_port': '65535',
    },
    'all_icmp': {
        'name': _('All ICMP'),
        'ip_protocol': 'icmp',
        'from_port': '-1',
        'to_port': '-1',
    },
    'ssh': {
        'name': 'SSH',
        'ip_protocol': 'tcp',
        'from_port': '22',
        'to_port': '22',
    },
    'smtp': {
        'name': 'SMTP',
        'ip_protocol': 'tcp',
        'from_port': '25',
        'to_port': '25',
    },
    'dns': {
        'name': 'DNS',
        'ip_protocol': 'tcp',
        'from_port': '53',
        'to_port': '53',
    },
    'http': {
        'name': 'HTTP',
        'ip_protocol': 'tcp',
        'from_port': '80',
        'to_port': '80',
    },
    'pop3': {
        'name': 'POP3',
        'ip_protocol': 'tcp',
        'from_port': '110',
        'to_port': '110',
    },
    'imap': {
        'name': 'IMAP',
        'ip_protocol': 'tcp',
        'from_port': '143',
        'to_port': '143',
    },
    'ldap': {
        'name': 'LDAP',
        'ip_protocol': 'tcp',
        'from_port': '389',
        'to_port': '389',
    },
    'https': {
        'name': 'HTTPS',
        'ip_protocol': 'tcp',
        'from_port': '443',
        'to_port': '443',
    },
    'smtps': {
        'name': 'SMTPS',
        'ip_protocol': 'tcp',
        'from_port': '465',
        'to_port': '465',
    },
    'imaps': {
        'name': 'IMAPS',
        'ip_protocol': 'tcp',
        'from_port': '993',
        'to_port': '993',
    },
    'pop3s': {
        'name': 'POP3S',
        'ip_protocol': 'tcp',
        'from_port': '995',
        'to_port': '995',
    },
    'ms_sql': {
        'name': 'MS SQL',
        'ip_protocol': 'tcp',
        'from_port': '1433',
        'to_port': '1433',
    },
    'mysql': {
        'name': 'MYSQL',
        'ip_protocol': 'tcp',
        'from_port': '3306',
        'to_port': '3306',
    },
    'rdp': {
        'name': 'RDP',
        'ip_protocol': 'tcp',
        'from_port': '3389',
        'to_port': '3389',
    },
}
REST_API_REQUIRED_SETTINGS = ['OPENSTACK_HYPERVISOR_FEATURES',
                              'LAUNCH_INSTANCE_DEFAULTS']

允许所有主机访问仪表板

配置 memcached 会话存储服务

启用第3版认证API

启用对域的支持

配置API版本

通过仪表盘创建用户时的默认域配置为 default

通过仪表盘创建的用户默认角色配置为 user

如果您选择网络参数1,禁用支持3层网络服务

可以选择性地配置时区

[root@computer1 ~]# vim /etc/openstack-dashboard/local_settings
[root@computer1 ~]# cat /etc/openstack-dashboard/local_settings
import os
from django.utils.translation import ugettext_lazy as _
from openstack_dashboard import exceptions
from openstack_dashboard.settings import HORIZON_CONFIG
DEBUG = False
TEMPLATE_DEBUG = DEBUG
WEBROOT = '/dashboard/'
ALLOWED_HOSTS = ['*', ]
LOCAL_PATH = '/tmp'
SECRET_KEY='719d36f09122f749bd0f'
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'controller:11211',
    },
}
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
OPENSTACK_HOST = "controller"
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default"

OPENSTACK_API_VERSIONS = {
    "identity": 3,
    "image": 2,
    "volume": 2,
} 

OPENSTACK_KEYSTONE_BACKEND = {
    'name': 'native',
    'can_edit_user': True,
    'can_edit_group': True,
    'can_edit_project': True,
    'can_edit_domain': True,
    'can_edit_role': True,
}
OPENSTACK_HYPERVISOR_FEATURES = {
    'can_set_mount_point': False,
    'can_set_password': False,
    'requires_keypair': False,
}
OPENSTACK_CINDER_FEATURES = {
    'enable_backup': False,
}
OPENSTACK_NEUTRON_NETWORK = {
    'enable_router': False,
    'enable_quotas': False,
    'enable_ipv6': False,
    'enable_distributed_router': False,
    'enable_ha_router': False,
    'enable_lb': False,
    'enable_firewall': False,
    'enable_vpn': False,
    'enable_fip_topology_check': True,
    'default_ipv4_subnet_pool_label': None,
    'default_ipv6_subnet_pool_label': None,
    'profile_support': None,
    'supported_provider_types': ['*'],
    'supported_vnic_types': ['*'],
}
OPENSTACK_HEAT_STACK = {
    'enable_user_pass': True,
}
IMAGE_CUSTOM_PROPERTY_TITLES = {
    "architecture": _("Architecture"),
    "kernel_id": _("Kernel ID"),
    "ramdisk_id": _("Ramdisk ID"),
    "image_state": _("Euca2ools state"),
    "project_id": _("Project ID"),
    "image_type": _("Image Type"),
}
IMAGE_RESERVED_CUSTOM_PROPERTIES = []
API_RESULT_LIMIT = 1000
API_RESULT_PAGE_SIZE = 20
SWIFT_FILE_TRANSFER_CHUNK_SIZE = 512 * 1024
DROPDOWN_MAX_ITEMS = 30

TIME_ZONE = "Asia/Shanghai"

POLICY_FILES_PATH = '/etc/openstack-dashboard'
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'null': {
            'level': 'DEBUG',
            'class': 'logging.NullHandler',
        },
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['null'],
            'propagate': False,
        },
        'requests': {
            'handlers': ['null'],
            'propagate': False,
        },
        'horizon': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'openstack_dashboard': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'novaclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'cinderclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'keystoneclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'glanceclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'neutronclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'heatclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'ceilometerclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'swiftclient': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'openstack_auth': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'nose.plugins.manager': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'django': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'iso8601': {
            'handlers': ['null'],
            'propagate': False,
        },
        'scss': {
            'handlers': ['null'],
            'propagate': False,
        },
    },
}
SECURITY_GROUP_RULES = {
    'all_tcp': {
        'name': _('All TCP'),
        'ip_protocol': 'tcp',
        'from_port': '1',
        'to_port': '65535',
    },
    'all_udp': {
        'name': _('All UDP'),
        'ip_protocol': 'udp',
        'from_port': '1',
        'to_port': '65535',
    },
    'all_icmp': {
        'name': _('All ICMP'),
        'ip_protocol': 'icmp',
        'from_port': '-1',
        'to_port': '-1',
    },
    'ssh': {
        'name': 'SSH',
        'ip_protocol': 'tcp',
        'from_port': '22',
        'to_port': '22',
    },
    'smtp': {
        'name': 'SMTP',
        'ip_protocol': 'tcp',
        'from_port': '25',
        'to_port': '25',
    },
    'dns': {
        'name': 'DNS',
        'ip_protocol': 'tcp',
        'from_port': '53',
        'to_port': '53',
    },
    'http': {
        'name': 'HTTP',
        'ip_protocol': 'tcp',
        'from_port': '80',
        'to_port': '80',
    },
    'pop3': {
        'name': 'POP3',
        'ip_protocol': 'tcp',
        'from_port': '110',
        'to_port': '110',
    },
    'imap': {
        'name': 'IMAP',
        'ip_protocol': 'tcp',
        'from_port': '143',
        'to_port': '143',
    },
    'ldap': {
        'name': 'LDAP',
        'ip_protocol': 'tcp',
        'from_port': '389',
        'to_port': '389',
    },
    'https': {
        'name': 'HTTPS',
        'ip_protocol': 'tcp',
        'from_port': '443',
        'to_port': '443',
    },
    'smtps': {
        'name': 'SMTPS',
        'ip_protocol': 'tcp',
        'from_port': '465',
        'to_port': '465',
    },
    'imaps': {
        'name': 'IMAPS',
        'ip_protocol': 'tcp',
        'from_port': '993',
        'to_port': '993',
    },
    'pop3s': {
        'name': 'POP3S',
        'ip_protocol': 'tcp',
        'from_port': '995',
        'to_port': '995',
    },
    'ms_sql': {
        'name': 'MS SQL',
        'ip_protocol': 'tcp',
        'from_port': '1433',
        'to_port': '1433',
    },
    'mysql': {
        'name': 'MYSQL',
        'ip_protocol': 'tcp',
        'from_port': '3306',
        'to_port': '3306',
    },
    'rdp': {
        'name': 'RDP',
        'ip_protocol': 'tcp',
        'from_port': '3389',
        'to_port': '3389',
    },
}
REST_API_REQUIRED_SETTINGS = ['OPENSTACK_HYPERVISOR_FEATURES',
                              'LAUNCH_INSTANCE_DEFAULTS']

3.完成安装

启动web服务器

[root@computer1 ~]# systemctl  start httpd.service
[root@computer1 ~]# systemctl  status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─openstack-dashboard.conf
   Active: active (running) since Sun 2020-11-15 21:35:47 CST; 3min 5s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 3806 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
  Process: 3827 ExecStartPre=/usr/bin/python /usr/share/openstack-dashboard/manage.py compress --force (code=exited, status=0/SUCCESS)
  Process: 3810 ExecStartPre=/usr/bin/python /usr/share/openstack-dashboard/manage.py collectstatic --noinput --clear (code=exited, status=0/SUCCESS)
 Main PID: 3848 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
    Tasks: 24
   CGroup: /system.slice/httpd.service
           ├─3848 /usr/sbin/httpd -DFOREGROUND
           ├─3850 /usr/sbin/httpd -DFOREGROUND
           ├─3851 /usr/sbin/httpd -DFOREGROUND
           ├─3852 /usr/sbin/httpd -DFOREGROUND
           ├─3853 /usr/sbin/httpd -DFOREGROUND
           ├─3854 /usr/sbin/httpd -DFOREGROUND
           └─3855 /usr/sbin/httpd -DFOREGROUND

Nov 15 21:35:28 computer1 python[3810]: Deleting 'themes/default/horizon/_styles.scss'
Nov 15 21:35:28 computer1 python[3810]: Deleting 'themes/default/horizon/_variables.scss'
Nov 15 21:35:28 computer1 python[3810]: Deleting 'themes/default/horizon/components/_breadcrumb_header.scss'
Nov 15 21:35:28 computer1 python[3810]: Deleting 'themes/default/horizon/components/_context_selection.scss'
Nov 15 21:35:28 computer1 python[3810]: Deleting 'themes/default/horizon/components/_login.scss'
Nov 15 21:35:28 computer1 python[3810]: Deleting 'themes/default/horizon/components/_messages.scss'
Nov 15 21:35:28 computer1 python[3810]: Deleting 'themes/default/horizon/components/_navbar.scss'
Nov 15 21:35:28 computer1 python[3810]: Deleting 'themes/default/horizon/components/_pie_charts.scss'
Nov 15 21:35:28 computer1 python[3810]: Deleting 'themes/default/horizon/components/_quota.scss'
Nov 15 21:35:47 computer1 systemd[1]: Started The Apache HTTP Server.
[root@computer1 ~]# lsof -i:80
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   3848   root    4u  IPv6  45527      0t0  TCP *:http (LISTEN)
httpd   3851 apache    4u  IPv6  45527      0t0  TCP *:http (LISTEN)
httpd   3852 apache    4u  IPv6  45527      0t0  TCP *:http (LISTEN)
httpd   3853 apache    4u  IPv6  45527      0t0  TCP *:http (LISTEN)
httpd   3854 apache    4u  IPv6  45527      0t0  TCP *:http (LISTEN)
httpd   3855 apache    4u  IPv6  45527      0t0  TCP *:http (LISTEN)

三、验证操作

在浏览器中输入 http://10.0.0.12/dashboard访问仪表盘

查看httpd错误日志

 cat /var/log/httpd/error_log
......
[Sun Nov 15 21:57:03.302758 2020] [:error] [pid 4599] [remote 10.0.0.253:20] self._do_open() [Sun Nov 15 21:57:03.302767 2020] [:error] [pid 4599] [remote 10.0.0.253:20] File "/usr/lib/python2.7/site-packages/fasteners/process_lock.py", line 123, in _do_open [Sun Nov 15 21:57:03.302783 2020] [:error] [pid 4599] [remote 10.0.0.253:20] self.lockfile = open(self.path, 'a') [Sun Nov 15 21:57:03.302808 2020] [:error] [pid 4599] [remote 10.0.0.253:20] IOError: [Errno 13] Permission denied: '/usr/share/openstack-dashboard/openstack_dashboard/local/_usr_share_openstack-dashboard_openstack_dashboard_local_.secret_key_store.lock'
[root@computer1 ~]# cat /var/log/httpd/error_log
[Thu Nov 19 21:42:28.585997 2020] [suexec:notice] [pid 6104] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe12:ea79. Set the 'ServerName' directive globally to suppress this message
[Thu Nov 19 21:42:28.856196 2020] [auth_digest:notice] [pid 6104] AH01757: generating secret for digest authentication ...
[Thu Nov 19 21:42:28.856922 2020] [lbmethod_heartbeat:notice] [pid 6104] AH02282: No slotmem from mod_heartmonitor
[Thu Nov 19 21:42:28.869737 2020] [mpm_prefork:notice] [pid 6104] AH00163: Apache/2.4.6 (CentOS) mod_wsgi/3.4 Python/2.7.5 configured -- resuming normal operations
[Thu Nov 19 21:42:28.869771 2020] [core:notice] [pid 6104] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
[Thu Nov 19 21:44:49.556652 2020] [core:error] [pid 6108] [client 10.0.0.12:42766] Script timed out before returning headers: django.wsgi
[Thu Nov 19 21:45:06.613380 2020] [core:error] [pid 6110] [client 10.0.0.253:59725] Script timed out before returning headers: django.wsgi

解决办法:

[root@computer1 ~]# chown -R apache:apache  /usr/share/openstack-dashboard/

在/etc/httpd/conf.d/openstack-dashboard.conf添加一行WSGIApplicationGroup %{GLOBAL}

[root@computer1 ~]# cp /etc/httpd/conf.d/openstack-dashboard.conf{,.bak}
[root@computer1 ~]# vim /etc/httpd/conf.d/openstack-dashboard.conf
[root@computer1 ~]# cat /etc/httpd/conf.d/openstack-dashboard.conf
WSGIDaemonProcess dashboard
WSGIProcessGroup dashboard
WSGISocketPrefix run/wsgi
WSGIApplicationGroup %{GLOBAL}

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>
[root@computer1 ~]# vim /etc/httpd/conf/httpd.conf 
[root@computer1 ~]# grep ServerName /etc/httpd/conf/httpd.conf 
# ServerName gives the name and port that the server uses to identify itself.
ServerName localhost:80

重启web服务器

[root@computer1 ~]# systemctl restart httpd.service
[root@computer1 ~]# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─openstack-dashboard.conf
   Active: active (running) since Sun 2020-11-15 22:30:40 CST; 20s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 5691 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
  Process: 5713 ExecStartPre=/usr/bin/python /usr/share/openstack-dashboard/manage.py compress --force (code=exited, status=0/SUCCESS)
  Process: 5696 ExecStartPre=/usr/bin/python /usr/share/openstack-dashboard/manage.py collectstatic --noinput --clear (code=exited, status=0/SUCCESS)
 Main PID: 5734 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
    Tasks: 24
   CGroup: /system.slice/httpd.service
           ├─5734 /usr/sbin/httpd -DFOREGROUND
           ├─5736 /usr/sbin/httpd -DFOREGROUND
           ├─5737 /usr/sbin/httpd -DFOREGROUND
           ├─5738 /usr/sbin/httpd -DFOREGROUND
           ├─5739 /usr/sbin/httpd -DFOREGROUND
           ├─5740 /usr/sbin/httpd -DFOREGROUND
           └─5741 /usr/sbin/httpd -DFOREGROUND

Nov 15 22:30:16 computer1 python[5696]: Deleting 'themes/default/horizon/_styles.scss'
Nov 15 22:30:16 computer1 python[5696]: Deleting 'themes/default/horizon/_variables.scss'
Nov 15 22:30:16 computer1 python[5696]: Deleting 'themes/default/horizon/components/_breadcrumb_header.scss'
Nov 15 22:30:16 computer1 python[5696]: Deleting 'themes/default/horizon/components/_context_selection.scss'
Nov 15 22:30:16 computer1 python[5696]: Deleting 'themes/default/horizon/components/_login.scss'
Nov 15 22:30:16 computer1 python[5696]: Deleting 'themes/default/horizon/components/_messages.scss'
Nov 15 22:30:16 computer1 python[5696]: Deleting 'themes/default/horizon/components/_navbar.scss'
Nov 15 22:30:16 computer1 python[5696]: Deleting 'themes/default/horizon/components/_pie_charts.scss'
Nov 15 22:30:16 computer1 python[5696]: Deleting 'themes/default/horizon/components/_quota.scss'
Nov 15 22:30:40 computer1 systemd[1]: Started The Apache HTTP Server.

再次访问http://10.0.0.12/dashboard/正常

验证使用 admin 用户凭证和``default``域凭证

 

 

 

posted @ 2020-11-15 23:54  出水芙蓉·薇薇  阅读(1185)  评论(0编辑  收藏  举报