1. add skyline-functional-devstack which inherits from devstack 2. add skyline-functional-devstack into check and gate job 3. add playbook to integrate with devstack for zuul 4. change the port from 8080 to 9999 because the 8080 is used for s3api 5. rename functional-py38 as unittest-py38 6. add install extra tools ready for skyline-console's e2e test Change-Id: I7f4b549bec6573661e62dd2bd9a3355253afd47d
6.9 KiB
Skyline
English | 简体中文
Skyline 是一个经过 UI 和 UE 优化过的 OpenStack 仪表盘,拥有现代化的技术栈和生态,更易于开发者维护和使用者操作,以及更高的并发性能。
Skyline 的吉祥物是九色鹿。九色鹿源自于敦煌壁画《九色鹿本生》,其寓意是佛理因果和知恩图报,这与九州云自创办以来秉持的拥抱和反馈社区理念一致。我们也希望 Skyline 像九色鹿一样,轻巧、优雅,而又能力强大,为 OpenStack 社区和用户提供更优质的 Dashboard。
目录
资源
快速开始
先决条件
- 一个至少运行核心组件的 OpenStack 环境, 并能通过 Keystone endpoint 访问 OpenStack 组件
- 一个安装有容器引擎的 (docker 或 podman) 的 Linux 服务器
配置
-
在 Linux 服务器中编辑
/etc/skyline/skyline.yaml
文件可以参考 sample file, 并根据实际的环境修改以下参数
- database_url
- keystone_url
- default_region
- interface_type
- system_project_domain
- system_project
- system_user_domain
- system_user_name
- system_user_password
部署 - 数据库使用 Sqlite
-
运行 skyline_bootstrap 容器进行初始化引导
rm -rf /tmp/skyline && mkdir /tmp/skyline docker run -d --name skyline_bootstrap -e KOLLA_BOOTSTRAP="" -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml -v /tmp/skyline:/tmp --net=host 99cloud/skyline:latest # Check bootstrap is normal `exit 0` docker logs skyline_bootstrap
-
初始化引导完成后运行 skyline 服务
docker rm -f skyline_bootstrap docker run -d --name skyline --restart=always -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml -v /tmp/skyline:/tmp --net=host 99cloud/skyline:latest
部署 - 数据库使用 MariaDB
-
连接 OpenStack 环境的数据库, 并创建
skyline
数据库$ mysql -u root -p MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS skyline DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; Query OK, 1 row affected (0.001 sec)
-
授予对数据库的适当访问权限
用合适的密码替换
SKYLINE_DBPASS
MariaDB [(none)]> GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'localhost' IDENTIFIED BY 'SKYLINE_DBPASS'; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'%' IDENTIFIED BY 'SKYLINE_DBPASS'; Query OK, 0 rows affected (0.001 sec)
-
创建 skyline 服务凭证
# Source the admin credentials $ source admin-openrc # Create the skyline user $ openstack user create --domain default --password-prompt skyline User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 1qaz2wsx3edc4rfv5tgb6yhn7ujm8ikl | | name | skyline | | options | {} | | password_expires_at | 2020-08-08T08:08:08.123456 | +---------------------+----------------------------------+ # Add the admin role to the skyline user: $ openstack role add --project service --user skyline admin
-
运行 skyline_bootstrap 容器进行初始化引导
docker run -d --name skyline_bootstrap -e KOLLA_BOOTSTRAP="" -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml --net=host 99cloud/skyline:latest # Check bootstrap is normal `exit 0` docker logs skyline_bootstrap
-
初始化引导完成后运行 skyline 服务
docker rm -f skyline_bootstrap docker run -d --name skyline --restart=always -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml --net=host 99cloud/skyline:latest
访问测试
现在你可以访问仪表盘: https://<ip_address>:9999
开发 Skyline-apiserver
支持 Linux 和 Mac 操作系统 (推荐 Linux 操作系统) (由于 uvloop 和 cython 库)
依赖工具
- make >= 3.82
- python >= 3.8
- poetry >= 1.1.0 (安装指南)
- node >= 10.22.0 (可选,只开发 API 就用不到)
- yarn >= 1.22.4 (可选,只开发 API 就用不到)
安装和运行
-
安装依赖包
# 如果只开发 apiserver,可以通过 export IGNORE_JS=True 来跳过安装 skyline-console export IGNORE_JS=True make install
-
配置
skyline.yaml
文件cp etc/skyline.yaml.sample etc/skyline.yaml export OS_CONFIG_DIR=$(pwd)/etc
可能你需要根据实际的环境修改以下参数:
- database_url - keystone_url - default_region - interface_type - system_project_domain - system_project - system_user_domain - system_user_name - system_user_password
如果你为
database_url
设置了类似sqlite:////tmp/skyline.db
,只需要执行以下操作。 如果你为database_url
设置了类似mysql://root:root@localhost:3306/skyline
,你应该先参考部署 - 数据库使用 MariaDB
一章中的1
和2
步骤。 -
初始化 skyline 数据库
pushd libs/skyline-apiserver/ make db_sync popd
-
运行 skyline-apiserver
$ poetry run uvicorn --reload --reload-dir libs/skyline-apiserver/skyline_apiserver --port 28000 --log-level debug skyline_apiserver.main:app INFO: Uvicorn running on http://127.0.0.1:28000 (Press CTRL+C to quit) INFO: Started reloader process [154033] using statreload INFO: Started server process [154037] INFO: Waiting for application startup. INFO: Application startup complete.
此时你可访问在线 API 文档:
http://127.0.0.1:28000/docs
-
构建镜像
make build