【OpenStack】环境搭建- Dashboard组件

345 阅读3分钟

image.png

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 11 天,点击查看活动详情

Dashboard安装与配置 只在控制节点!!!!

yum install -y openstack-dashboard
  • 确保服务正常安装

image.png

  • vi /etc/openstack-dashboard/local_settings
# 配置允许访问的主机列表  
  
ALLOWED_HOSTS = ['*', ]  
  
# 配置memcached会话存储服务  
  
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'  
  
CACHES = {  
'default': {  
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',  
/etc/httpd/conf.d/openstack-dashboard.conf  
'LOCATION': '10.8.4.38:11211',  
}  
}  
  
OPENSTACK_KEYSTONE_URL = "http://10.8.4.38:5000/v3"  
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "member"  
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True  
OPENSTACK_API_VERSIONS = {  
"identity": 3,  
"image": 2,  
"volume": 2,  
}  
  
  
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"  
OPENSTACK_NEUTRON_NETWORK = {  
'enable_router': False,  
'enable_quotas': False,  
'enable_distributed_router': False,  
'enable_ha_router': False,  
'enable_lb': False,  
'enable_firewall': False,  
'enable_vpn': False,  
'enable_fip_topology_check': False,  
}  
  
TIME_ZONE = "Asia/Shanghai"
  • vi /etc/httpd/conf.d/openstack-dashboard.conf添加如下行
WSGIApplicationGroup %{GLOBAL}

重启httpd服务

systemctl restart httpd.service memcached.service

报错

image.png

解决 配置文件有问题 请看本节末尾,不要删除原始配置文件内容

ALLOWED_HOSTS = ['*', ]  
  
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'  
  
CACHES = {  
  'default': {  
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',  
    'LOCATION': '10.8.4.38:11211'  
  }  
}  
  
OPENSTACK_KEYSTONE_URL = "http://10.8.4.38:5000/v3"  
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "member"  
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True  
OPENSTACK_API_VERSIONS = {  
  "identity": 3,  
  "image": 2,  
  "volume": 2  
}  
  
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"  
OPENSTACK_NEUTRON_NETWORK = {  
  'enable_router': False,  
  'enable_quotas': False,  
  'enable_distributed_router': False,  
  'enable_ha_router': False,  
  'enable_lb': False,  
  'enable_firewall': False,  
  'enable_vpn': False,  
  'enable_fip_topology_check': False,  
}  
  
  
TIME_ZONE = "Asia/Shanghai"
  • 重启httpd服务正常

image.png

访问 http://10.8.4.38/dashboard 报错

image.png

查看日志

  • vi /var/log/httpd/error_log
[Tue Jan 17 03:53:26.154470 2023] [:error] [pid 7860] [remote 192.168.17.250:24] IOError: [Errno 13] Permission denied: '/usr/share/openstack-dashboard/openstack_dashboard/local/.secret_key_store'
  • ll /etc/openstack-dashboard/

image.png

  • 提升权限,无效

image.png

解决

chown -R apache:apache   /usr/share/openstack-dashboard/
systemctl restart httpd.service memcached.service

报错 The requested URL /auth/login/ was not found on this server.

image.png

解决

  • 编辑 /etc/httpd/conf.d/openstack-dashboard.conf
WSGIDaemonProcess dashboard  
WSGIProcessGroup dashboard  
WSGISocketPrefix run/wsgi  
WSGIApplicationGroup %{GLOBAL}  
  
WSGIScriptAlias / /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi  
Alias /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>

报错

RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.

解决

把/etc/openstack-dashboard/local_settings中的:
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'修改为
SESSION_ENGINE = 'django.contrib.sessions.backends.file',重启服务,问题解决。

虽然能显示dashboard了,但是不全

image.png

缺了菜单栏,查看log有报错,如下:

image.png

  • local_settings文件不要乱删,在原始文件基础上修改!!!

  • 上传镜像试试

openstack image create "cirros" --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --public

image.png

  • 创建一个flavor
openstack flavor create --id 1 --vcpus 2 --ram 2048 --disk 50 2C2G50G

image.png

  • 创建安全组
openstack security group rule create --proto icmp default

openstack security group rule create --proto tcp --dst-port 22 default
  • 创建网络

openstack network create --share --external --provider-physical-network provider --provider-network-type flat mgt


openstack subnet create --network mgt --allocation-pool start=192.168.10.2,end=192.168.10.252 --gateway 192.168.10.254 --subnet-range 192.168.10.0/24 mgt

image.png

  • 创建虚机
nova boot --flavor 1 --image7ae4245d-8b71-4289-807b-6b911201a0fb --nic net-name=mgt c testVM


openstack server create --flavor 2C2G50G --image cirros --nic net-id=95a5d7df-382c-4299-ab33-272ebd737fcb --security-group default provider-instance

报错

Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<class 'keystoneauth1.exceptions.http.Unauthorized'> (HTTP 500) (Request-ID: req-bb1dc04d-4972-4f87-9809-75be61bdd272)

nova.conf的[neutron]密码配置错误

image.png

  • 重启nova服务
systemctl restart openstack-nova-api

image.png

  • 虚机创命令没问题但是报错:
MaxRetriesExceeded: Exceeded maximum number of retries. Exhausted all hosts available for retrying build failures for instance dbaa631e-cfa7-4551-b143-65583a18d1cc

image.png

修改计算节点的nova.conf

image.png

[libvirt]
virt_type = kvm
  • 重启计算服务
systemctl restart libvirtd.service openstack-nova-compute.service

无效

查看dashboard发现虚机并没有绑定IP地址,可能是网络存在问题。 查看控制节点的neutron服务,报错

Failed to bind port ef1fd554-6203-4c4e-8d57-0c38f761f338 on host compute02 for vnic_type normal using segments