~、OpenStack 面板更替换代:Skyline Dashboard <-- Horizon 面板
先决条件
一个至少运行核心组件的 OpenStack 环境, 并能通过 Keystone endpoint 访问 OpenStack 组件
一个安装有容器引擎的 (docker 或 podman) 的 Linux 服务器
一、
(一)、创建 skyline 服务凭证 。
# 脚本初始化先: source /etc/kolla/admin-openrc.sh
openstack user create --domain default --password skyline skyline # 用户 skyline 已存在 。"openstack user show skyline" 查看。
Conflict occurred attempting to store user - Duplicate entry found with name skyline at domain ID default. (HTTP 409) (Request-ID: req-77262ddd-d787-49ad-b910-22ac593c8e4e)
openstack role add --project service --user skyline admin
或,新建用户。
openstack user create --domain default --password skyline stack
openstack role add --project service --user stack admin
(一)、创建数据库 。
stack@chenlx-pitaya-svr:~$
cat /etc/kolla/passwords.yml | grep ^database_password # 获取mariadb 密码
docker exec -it mariadb bash # 进入 mariadb 容器。
(mariadb)[mysql@chenlx-pitaya-svr /]$ mysql -u root -p
CREATE DATABASE IF NOT EXISTS skyline DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON skyline.* TO 'stack'@'localhost' IDENTIFIED BY 'hwwCUPUHJ3'
GRANT ALL PRIVILEGES ON skyline.* TO 'stack'@'%' IDENTIFIED BY 'hwwCUPUHJ3';
(一)、服务配置更新 。
stack@chenlx-pitaya-svr:~$ sudo wget https://jihulab.com/james-curtis/skyline-apiserver/-/raw/master/etc/skyline.yaml.sample -O /etc/skyline/skyline.yaml # 或拷贝 skyline-apiserver-2.0.0\etc\skyline.yaml.sample
编辑 /etc/skyline/skyline.yaml
# database_url: sqlite:tmp/skyline.db
# database_url: mysql://skyline:hwwCUPUHJ3Fcf5anzgx38oC9rXcAs8ItHSaCh7Sl@192.168.157.132:3306/skyline
# database_url: mysql://stack:hwwCUPUHJ3Fcf5anzgx38oC9rXcAs8ItHSaCh7Sl@192.168.157.132:3306/skyline
database_url: mysql://root:hwwCUPUHJ3Fcf5anzgx38oC9rXcAs8ItHSaCh7Sl@192.168.157.132:3306/skyline
# prometheus_endpoint: http://localhost:9091
prometheus_endpoint: http://192.168.157.132:9091
# keystone_url: http://127.0.0.1:5000/v3/
keystone_url: http://192.168.157.132:5000/v3/
# system_user_name: skyline
# system_user_password: ''
system_user_name: stack
system_user_password: 'skyline'
一、
(一)、启动容器服务 。
docker pull 99cloud/skyline:zed
docker run -d --name skyline_bootstrap -e KOLLA_BOOTSTRAP="" -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml --net=host 99cloud/skyline:zed # 临时容器,初始化引导一下 。
docker rm -f skyline_bootstrap
docker run -d --name skyline --restart=always -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml -v /var/log/skyline:/var/log/skyline -v /tmp/skyline:/tmp --net=host 99cloud/skyline:zed # 正式创建服务容器 。
docker ps | grep skyline # 运行状态
53b1a923a18c 99cloud/skyline:zed "start_service.sh" 2 hours ago Up 2 hours skyline # 正在运行
# 或,
64a34b7cf976 99cloud/skyline:zed "start_service.sh" 4 minutes ago Restarting (1) 9 seconds ago skyline # 或像这样,无法启动运行。
访问仪表盘: https://192.168.157.132:9999 即 https://<浮动ip>:9999
------------
参, OpenStack使用Skyline Dashboard面板替换默认Horizon面板 2023-02-03 。
工程说明 README.rst 、 README-zh_CN.rst 。
------- FAQ -------
docker run -d --name skyline_bootstrap -e KOLLA_BOOTSTRAP="" -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml --net=host 99cloud/skyline:zed # 临时容器 skyline_bootstrap,初始化引导 。
docker logs skyline_bootstrap
报错:
yaml.parser.ParserError: while parsing a block mapping
in "/etc/skyline/skyline.yaml", line 2, column 3
expected <block end>, but found '<block mapping start>' # 注意:yaml 配置层次,换行格式对齐。
in "/etc/skyline/skyline.yaml", line 8, column 5
处理。
# keystone_url: http://127.0.0.1:5000/v3/ # OK: 行首与上一行的"#" 对齐 。
keystone_url: http://192.168.157.132:5000/v3/
# keystone_url: http://127.0.0.1:5000/v3/ # Bad: 行首与上一行的"#" 没有对齐 。
keystone_url: http://192.168.157.132:5000/v3/
处理后, "docker logs skyline_bootstrap" 命令结果,应以 "exit 0" 正常退出。
------------