Skyline简介
OpenStack Web界面可以用 Horizon 来提供,也可以使用更加优雅、更加大气的 Skyline
Skyline 的吉祥物是九色鹿。九色鹿取自敦煌壁画《九色鹿王》,其寓意是佛教因果和感恩,这与99cloud自成立以来拥抱和回馈社区的理念是一致的。Skyline 由九州云于 2021 年 9 月捐献给 OpenStack 社区。同年 12 月末,Skyline 孵化完成,毕业成为 OpenStack 正式项目。
Skyline 可以和之前的 Dashboard 共存,互不影响。Skyline 通过容器加载 yaml 文件(文件中定义数据库地址、Keystone地址、以及相关账号密码等)去数据库中获取对应资源,并在界面展示。
部署环境
OpenStack版本 | OpenStack Train |
Domain | demo |
Project | admin、service、demo |
创建Skyline管理用户
创建Skyline数据库
[root@controller ~]# mysql -uroot -p000000 -e "CREATE DATABASE skyline DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;"
[root@controller ~]# mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'localhost' IDENTIFIED BY '000000'; "
[root@controller ~]# mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'%' IDENTIFIED BY '000000'; "
创建Skyline用户并授予管理员权限
[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# openstack user create --domain demo --password-prompt skyline
User Password: #这里自定义密码 000000
Repeat User Password: #这里自定义密码 000000
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 02860f16cac3456da8265fe75a219631 |
| name | skyline |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
[root@controller ~]# openstack role add --project service --user skyline admin
部署Skyline运行环境
在skyline节点中上传docker-repo.tar.gz软件包和skyline.tar镜像包并配置docker本地源
也可以直接使用controller节点部署skyline
[root@skyline ~]# ls
anaconda-ks.cfg docker-repo.tar.gz skyline.tar
[root@skyline ~]# tar zxvf docker-repo.tar.gz -C /opt/
[root@skyline ~]# rm -rf /etc/yum.repos.d/*
[root@skyline ~]# vi /etc/yum.repos.d/docker.repo
[docker]
name=docker
baseurl=file:///opt/docker-repo
gpgcheck=0
enabled=1
安装docker服务
若按照缺少软件包,可上传CentOS7.9-2009镜像作为本地源补充软件包
[root@skyline ~]# yum -y install docker-ce
[root@skyline ~]# systemctl enable docker --now
导入Skyline镜像
[root@skyline ~]# docker load -i skyline.tar
配置Skyline工作目录
[root@skyline ~]# mkdir -p /etc/skyline /var/log/skyline /var/lib/skyline /var/log/nginx /etc/skyline/policy
创建yaml文件
[root@skyline ~]# vi /etc/skyline/skyline.yaml
[root@controller ~]# cat /etc/skyline/skyline.yaml
default:
access_token_expire: 3600
access_token_renew: 1800
cafile: ''
cors_allow_origins: []
database_url: mysql://skyline:000000@192.168.100.10:3306/skyline ##注意修改为实际的数据库IP地址
debug: true
log_dir: /var/log/skyline
log_file: skyline.log
policy_file_path: /etc/skyline/policy
policy_file_suffix: policy.yaml
prometheus_basic_auth_password: ''
prometheus_basic_auth_user: ''
prometheus_enable_basic_auth: false
prometheus_endpoint: http://localhost:9091
secret_key: aCtmgbcUqYUy_HNVg5BDXCaeJgJQzHJXwqbXr0Nmb2o
session_name: session
ssl_enabled: true
openstack:
base_domains:
- heat_user_domain
default_region: RegionOne
enforce_new_defaults: true
extension_mapping:
floating-ip-port-forwarding: neutron_port_forwarding
fwaas_v2: neutron_firewall
qos: neutron_qos
vpnaas: neutron_vpn
interface_type: public
keystone_url: http://192.168.100.10:5000/v3/ ##注意修改为实际的keystone认证地址
nginx_prefix: /api/openstack
reclaim_instance_interval: 604800
service_mapping:
baremetal: ironic
compute: nova
container: zun
container-infra: magnum
database: trove
dns: designate
identity: keystone
image: glance
instance-ha: masakari
key-manager: barbican
load-balancer: octavia
network: neutron
object-store: swift
orchestration: heat
placement: placement
sharev2: manilav2
volumev3: cinder
sso_enabled: false
sso_protocols:
- openid
sso_region: RegionOne
system_admin_roles:
- admin
- system_admin
system_project: service ##注意修改为实际的项目名称
system_project_domain: demo ##注意修改为实际的域名称
system_reader_roles:
- system_reader
system_user_domain: demo ##注意修改为实际的用户所在域名称
system_user_name: skyline ##注意修改为实际的用户名
system_user_password: '000000' ##注意修改为实际的用户密码
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
运行引导服务器
[root@skyline ~]# docker run -d --name skyline_bootstrap -e KOLLA_BOOTSTRAP="" -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml -v /var/log:/var/log --net=host 99cloud/skyline:latest
查看日志,如果看到以下日志信息,说明引导服务器初始化成功
[root@skyline ~]# docker logs skyline_bootstrap
+ echo '/usr/local/bin/gunicorn -c /etc/skyline/gunicorn.py skyline_apiserver.main:app'
+ mapfile -t CMD
++ tail /run_command
++ xargs -n 1
+ [[ -n 0 ]]
+ cd /opt/skyline_apiserver/
+ make db_sync
alembic -c skyline_apiserver/db/alembic/alembic.ini upgrade head
2024-03-29 00:30:28.443 | INFO | alembic.runtime.migration:__init__:205 - Context impl MySQLImpl.
2024-03-29 00:30:28.443 | INFO | alembic.runtime.migration:__init__:208 - Will assume non-transactional DDL.
2024-03-29 00:30:28.459 | INFO | alembic.runtime.migration:run_migrations:619 - Running upgrade -> 000, init
+ exit 0
清理引导服务器
[root@skyline ~]# docker rm -f skyline_bootstrap
运行Skyline-apiserver
[root@skyline ~]# docker run -d --name skyline --restart=always -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml -v /var/log:/var/log --net=host 99cloud/skyline:latest
[root@skyline ~]# docker ps
如果需要自定义端口号,则在启动skyline时添加-e LISTEN_ADDRESS=参数,默认端口号为9999
访问 Skyline
地址http://x.x.x.x:9999,使用操作流程和之前的 Dashboard 一致,不过需要提前熟悉界面
暂无评论内容