使用Skyline 新型UI管理OpenStack技术方案
使用Skyline 新型UI管理OpenStack
【摘要】 Skyline 是一个经过 UI 和 UE 优化过的 OpenStack 仪表盘,支持 OpenStack Train 及以上版本。Skyline 拥有现代化的技术栈和生态,更易于开发者维护和 使用者操作,以及更高的并发性能。 Skyline 的吉祥物是九色鹿。九色鹿源自于敦煌壁画《九色鹿本生》,其寓意是佛理 因果和知恩图报,这与九州云自创办以来秉持的拥抱和反馈社区理念一致。

Skyline 是一个经过 UI 和 UE 优化过的 OpenStack 仪表盘,支持 OpenStack Train 及以上版本。Skyline 拥有现代化的技术栈和生态,更易于开发者维护和 使用者操作,以及更高的并发性能。
Skyline 的吉祥物是九色鹿。九色鹿源自于敦煌壁画《九色鹿本生》,其寓意是佛理 因果和知恩图报,这与九州云自创办以来秉持的拥抱和反馈社区理念一致。我们也希望 Skyline 像九色鹿一样,轻巧、优雅,而又能力强大,为 OpenStack 社区和用户 提供更优质的 Dashboard。
官方项目地址:https://opendev.org/openstack/skyline-apiserver
安装步骤
环境要求
一个至少运行核心组件的 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
#创建文件夹
rm -rf /tmp/skyline && mkdir /tmp/skyline
mkdir /etc/skyline
简单配置
# 请按实际填写
vi data/skyline.yaml
default:
database_url: mysql://skyline:SKYLINE_DBPASS@172.16.102.200:3306/skyline
prometheus_endpoint: http://172.16.102.200:9091
openstack:
keystone_url: http://172.16.102.200:35357/v3
default_region: RegionOne
interface_type: internal
system_user_name: skyline
system_user_password: SKYLINE_PASS
复杂配置
# 请按实际填写
default:
access_token_expire: 3600
access_token_renew: 1800
cors_allow_origins: []
database_url: 'mysql://skyline:SKYLINE_DBPASS@10.122.0.235:3306/skyline'
#database_url: 'sqlite:tmp/skyline.db'
debug: false
log_dir: ./log
prometheus_basic_auth_password: ''
prometheus_basic_auth_user: ''
prometheus_enable_basic_auth: false
prometheus_endpoint: http://10.122.0.233:9091
secret_key: aCtmgbcUqYUy_HNVg5BDXCaeJgJQzHJXwqbXr0Nmb2o
session_name: session
developer:
show_raw_sql: false
openstack:
base_domains:
- heat_user_domain
base_roles:
- keystone_system_admin
- keystone_system_reader
- keystone_project_admin
- keystone_project_member
- keystone_project_reader
- nova_system_admin
- nova_system_reader
- nova_project_admin
- nova_project_member
- nova_project_reader
- cinder_system_admin
- cinder_system_reader
- cinder_project_admin
- cinder_project_member
- cinder_project_reader
- glance_system_admin
- glance_system_reader
- glance_project_admin
- glance_project_member
- glance_project_reader
- neutron_system_admin
- neutron_system_reader
- neutron_project_admin
- neutron_project_member
- neutron_project_reader
- heat_system_admin
- heat_system_reader
- heat_project_admin
- heat_project_member
- heat_project_reader
- placement_system_admin
- placement_system_reader
- panko_system_admin
- panko_system_reader
- panko_project_admin
- panko_project_member
- panko_project_reader
- ironic_system_admin
- ironic_system_reader
- octavia_system_admin
- octavia_system_reader
- octavia_project_admin
- octavia_project_member
- octavia_project_reader
default_region: RegionOne
extension_mapping:
fwaas_v2: neutron_firewall
vpnaas: neutron_vpn
interface_type: admin
keystone_url: 'http://10.122.0.235:35357/v3'
nginx_prefix: /api/openstack
reclaim_instance_interval: 604800
service_mapping:
baremetal: ironic
compute: nova
database: trove
identity: keystone
image: glance
load-balancer: octavia
network: neutron
object-store: swift
orchestration: heat
placement: placement
volumev3: cinder
system_admin_roles:
- admin
- system_admin
system_project: 'service'
system_project_domain: 'Default'
system_reader_roles:
- system_reader
system_user_domain: 'Default'
system_user_name: 'skyline'
system_user_password: 'skyline'
setting:
base_settings:
- flavor_families
- gpu_models
- usb_models
flavor_families:
- architecture: x86_architecture
categories:
- name: general_purpose
properties: []
- name: compute_optimized
properties: []
- name: memory_optimized
properties: []
- name: high_clock_speed
properties: []
- architecture: heterogeneous_computing
categories:
- name: compute_optimized_type_with_gpu
properties: []
- name: visualization_compute_optimized_type_with_gpu
properties: []
gpu_models:
- nvidia_t4
usb_models:
- usb_c
创建数据库
注1:如果openstack环境是kolla-ansible搭建的需要用 docker exec -it mariadb bash 进入mysql容器进行添加数据库用户操作
注2:如果openstack环境是kolla-ansible搭建的需要用 cat /etc/kolla/passwords.yml |grep ^database_password 查看mysql的root密码
# 1.连接到数据库
mysql -uroot -p数据库root用户密码
# 2.创建skyline数据库
CREATE DATABASE IF NOT EXISTS skyline DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 3.创建skyline数据库用户,并设置密码为 SKYLINE_DBPASS
GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'localhost' IDENTIFIED BY 'SKYLINE_DBPASS';
GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'%' IDENTIFIED BY 'SKYLINE_DBPASS';
创建服务凭证
注1:如果提示没有openstack命令请安装 yum install -y python-openstackclient
#一般在部署openstack 就已经执行 如果未执行 则执行
source /etc/kolla/admin-openrc.sh
# 创建skyline用户并设置密码为 SKYLINE_PASS
openstack user create --domain default --password SKYLINE_PASS skyline
# 将skyline设置为admin角色
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
# 检查日志输出结尾是否是"exit 0" !!!
docker logs skyline_bootstrap
运行 skyline 服务
# 删除引导容器
docker rm -f skyline_bootstrap
# 启动skyline服务容器
docker run -d --name skyline --restart=always -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml --net=host 99cloud/skyline:latest
注1:如果无法访问9999端口,请用 docker logs skyline 命令查看容器日志
访问web界面
容器监听宿主机9999端口:https://IP:9999

页面预览
- 这里是区分管理平台和控制台的,管理平台就类似阿里云的云管,控制台适合运维同事使用。



使用Skyline 新型UI管理OpenStack技术方案的更多相关文章
- iOS多线程技术方案
iOS多线程技术方案 目录 一.多线程简介 1.多线程的由来 2.耗时操作的模拟试验 3.进程和线程 4.多线程的概念及原理 5.多线程的优缺点和一个Tip 6.主线程 7.技术方案 二.Pthrea ...
- Unity 游戏框架:UI 管理神器 UI Kit
UI Kit 快速入门 首先我们来进行 UI Kit 的快速入门 制作一个界面的,步骤如下: 准备 生成代码 逻辑编写 运行 1. 准备 先创建一个场景 TestUIHomePanel. 删除 Hie ...
- C#开发BIMFACE系列49 Web网页中加载模型与图纸的技术方案
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在BIMFACE二次系列博客中详细介绍了服务器端API的调用方式,如下列表 C#开发BIMFACE系列1 BIMFAC ...
- 京东小程序接入ARVR的技术方案和性能调优
作者:京东零售 戴旭 京东小程序是一个开放技术平台,正在被越来越多的头部品牌选择,用于站内私域流量的营销和运营.诸如各种日化.奢侈品等品牌对ARVR有较多的诉求,希望京东小程序引擎提供一些底层能力,叠 ...
- Facebook存储技术方案:找出“暖性BLOB”数据
Facebook公司已经在其近线存储体系当中彻底弃用RAID与复制机制,转而采用分布式擦除编码以隔离其所谓的“暖性BLOB”. 暖性?BLOB?这都是些什么东西?大家别急,马上为您讲解: BLOB—— ...
- Android基于WIFI实现电脑和手机间数据传输的技术方案研究
Android手机和电脑间基于wifi进行数据传输,从技术上讲,主要有两种方案: 一种是通过ftp协议实现,Android手机作为数据传输过程中的ftp服务器: 一种是通过http协议实现.Andro ...
- 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等
本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...
- AI创业的技术方案选择
观察了许多初创公司技术方案的选择,我总结基本遵循8个字:快速灵活,物美价廉.我们也应该根据自身实际情况,跳出束缚与时俱进,选择智能互联网时代最有力的技术和工具. 基础编程语言 候选者:C#/C++/P ...
- IM——技术方案
一. 即时通讯技术方案 1. 第三方SDK: 环信, 融云, 网易云信, 腾讯 中小型公司/初创型: 建议使用第三方. 好处: 快, 符合快速开发的需求, 自己和后台人员不需要做什么操作 缺点: 你的 ...
- Web前端开发最佳实践(7):使用合理的技术方案来构建小图标
大家都对网站上使用的小图标肯定都不陌生,这些小图标作为网站内容的点缀,增加了网站的美观度,提高了用户体验,可是你有没有看过在这些网站中使用的图标都是用什么技术实现的?虽然大部分网站还是使用普通的图片实 ...
随机推荐
- liunx 进阶技术
以下命令非学习阶段常用,在工作设汲到用liunx操作的时候以下必然要用,所以记录整理一下 关掉服务器所有java程序使用命令 pkill java 查看当前运行java服务 ps -ef | grep ...
- GoLand打开后Project消失
一直用的好好的Goland,突然不能用了,左边栏Project"消失"了. 如下: 解决方法 遇到上面问题,一般情况是GoLand的cache问题,这个时候要将GoLand清理一下 ...
- arch安装deep-wine-wechat时,跳过md5检测的方法
yay -S --mflags --skipinteg deepin-wine-wechat 这条命令是的我们跳过了md5检测! 微信的安装位置:C:\Program Files\Tencent\We ...
- 【图算法】构建消息传递网络教程 Creating Message Passing Networks by Pytorch-geometric
一.背景 将卷积运算推广到不规则域通常表示为邻局聚合(neighborhood aggregation)或消息传递(neighborhood aggregation)模式. \(\mathbf{x}^ ...
- Spring之事务传播属性
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量. 在使用Spring时,大部分会用到他的声明式事务,简单的在配置文件中进行一些规则 ...
- TP6框架--EasyAdmin学习笔记:项目初始化+环境配置
最近在研究一个基于TP6的框架EasyAdmin,这里分享下我的开发心得 首先要获取原始项目文件 这里是git地址 https://github.com/zhongshaofa/easyadmin 项 ...
- Error in beforeDestroy hook: “Error: [ElementForm]unpected width “found in
吹水,可忽略 当我尝试吧el-form中labelWidth设为auto时,刷新页面获取到了上面的错误 百思不得其解,我貌似没有在beforeDestroy进行操作,为何会报这个错误 果断各种百度,G ...
- table边框改为细线
默认的TABLE边线设置即使是1px 是很粗的,会使用其他一些方法来制作出细线边框. 利用CSS来实现细线的方法,很有效,而且兼容所有浏览器. 细线表格如果单纯设置边框,很难保证浏览器兼容.常见的做法 ...
- MySQL与Java JDBC数据类型对照
MySQL数据类型 JAVA数据类型 JDBC TYPE BIGINT Long BIGINT TINYINT Byte TINYINT SMALLINT Short SMALLINT MEDIUMI ...
- jQuery AJAX 常见属性
1 jQuery.ajax(...) 2 部分参数: 3 url:请求地址 4 type:请求方式,GET.POST(1.9.0之后用method) 5 headers:请求头 6 data:要发送的 ...