FreeBSD 安装 OpenStack dashboard keystone
第一,安装 OpenStack dashboard。
第二,配置 dashboard。
浏览器出openstack登陆页面,表示horizon安装配置成功。
这份为你整理的 FreeBSD 部署 OpenStack Horizon 核心避坑清单已就位,涵盖你这次实打实踩过的坑与最终解法,方便留档或后续加 Keystone 时快速对照。
核心避坑清单(FreeBSD 16-CURRENT + Python 3.12)
缓存配置(Memcached vs LocMem)
•
现象:ConnectionRefusedError: [Errno 61] Connection refused (pymemcache)
•
原因:装了 py312-pymemcache,但系统未运行 memcached 服务。
•
解法:
•
方案A(装服务):pkg install memcached + service memcached start。
•
方案B(测试环境推荐):改 local_settings.py 用本地内存:
python
CACHES = {‘default’: {‘BACKEND’: ‘django.core.cache.backends.locmem.LocMemCache’, ‘LOCATION’: ‘horizon’}}
静态文件权限与路径(最核心坑点)
•
现象:PermissionError: [Errno 13] Permission denied: ‘…/static/dashboard/css’ 或页面无样式。
•
原因:Django 默认易指向 site-packages,Apache(www用户)无写权,且 DEBUG=True 会触发运行时动态建目录。
•
解法:
•
独立目录:mkdir -p /usr/local/www/horizon/static
•
赋权:chown -R www:www /usr/local/www/horizon(必须保证 www 有 rwx)。
•
配置:local_settings.py 设 STATIC_ROOT = ‘/usr/local/www/horizon/static’,关闭调试 DEBUG = False。
•
收集:设好环境变量后执行 python3 -m django collectstatic --noinput。
•
Apache:Alias /static /usr/local/www/horizon/static,别再指回 site-packages。
WSGI 与 Apache 虚拟主机
•
要点:确保 py312-mod_wsgi 加载,WSGI 进程用 www 用户跑。
•
关键配置片段:
apache
WSGIDaemonProcess horizon python-path=/usr/local/lib/python3.12/site-packages user=www group=www
WSGIScriptAlias / /usr/local/lib/python3.12/site-packages/openstack_dashboard/wsgi.py
Alias /static /usr/local/www/horizon/static
环境变量与依赖
•
DJANGO_SETTINGS_MODULE=openstack_dashboard.settings 必须导出,否则 manage.py 类操作报错。
•
依赖:py312-horizon, py312-pymemcache, apache24, py312-mod_wsgi。
当前状态与后续(Keystone)
•
现状:前端登录页(含 Domain 字段)完美渲染,全链路通;无 Keystone,登录必报连接失败(预期内)。
•
后续:加 Keystone 时需配置 OPENSTACK_KEYSTONE_URL,并开放 5000 端口,届时缓存/静态配置无需大改。
留档建议:保存此清单 + 你的 local_settings.py + Apache vhost 配置,下次迁移直接复用。
第三,安装 OpenStack keystone
安装成功,浏览器出这个,表示keystone 安装成功。
第四,配置keystone 让dashboard与keystone联动
能登陆,表示FreeBSD 安装 OpenStack dashboard keystone 成功。
成果如下:










