1 您需要了解

  • OpenStack Web界面可以用 Horizon 来提供,也可以使用更加优雅、更加大气的 Skyline
  • Skyline 的吉祥物是九色鹿。九色鹿取自敦煌壁画《九色鹿王》,其寓意是佛教因果和感恩,这与99cloud自成立以来拥抱和回馈社区的理念是一致的。Skyline 由九州云于 2021 年 9 月捐献给 OpenStack 社区。同年 12 月末,Skyline 孵化完成,毕业成为 OpenStack 正式项目。点击查看官方文档
  • 无论是手工搭建还是工具Packstack搭建的Openstack环境,都可以单独配置Skyline,配置方法一致
  • 本篇是在 Packstack 搭建完成Victoria版本基础之上,利用 Docker 环境单独进行配置,点击查看官方配置
  • 为有更好的浏览体验,您可以点击文章左上方目录按钮来显示文章整体目录结构

2 环境规划

计算节点必须开启虚拟化引擎 Intel VT-xAMD-V。虚拟机配置可根据实际情况进行调整。

主机名 IP 网关/DNS CPU/内存 磁盘 角色 备注
controller 192.168.100.128 192.168.100.2 4c16g 100g 控制/网络/计算 必须开启虚拟化引擎
compute 192.168.100.129 192.168.100.2 4c16g 100g 计算节点 必须开启虚拟化引擎

3 Skyline 配置(仅控制节点)

注意:Skyline 可以和之前的 Dashboard 共存,互不影响。Skyline 通过容器加载 yaml 文件(文件中定义数据库地址、Keystone地址、以及相关账号密码等)去数据库中获取对应资源,并在界面展示。

3.1 建库并授权

[root@controller ~]# mysql -uroot
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 1887
Server version: 10.3.28-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE skyline DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'localhost' IDENTIFIED BY 'skylineredhat';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'%' IDENTIFIED BY 'skylineredhat';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> exit
Bye

3.2 创建OpenStack用户并授权

在对 skyline 用户授权的时候,注意所属的 project,手工搭建默认project名称为 service,而Packstack搭建默认project名称为 services(多了一个s)

[root@controller ~]# source keystonerc_admin
[root@controller ~(keystone_admin)]# openstack user create --domain default --password-prompt skyline
User Password: #这里自定义密码 redhat
Repeat User Password: #这里自定义密码 redhat
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 02860f16cac3456da8265fe75a219631 |
| name                | skyline                          |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

[root@controller ~(keystone_admin)]# openstack role add --project services --user skyline admin

3.3 安装 Docker

下载 repo
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 Docker
yum install -y docker-ce
systemctl enable docker.service
systemctl start docker.service

拉取镜像
docker pull 99cloud/skyline:latest

3.4 创建并修改配置文件

skyline.yaml 文件内容,点这里查看

创建目录
mkdir -p /etc/skyline /var/log/skyline /var/lib/skyline /var/log/nginx /etc/skyline/policy

创建yaml文件
vim /etc/skyline/skyline.yaml

并修改以下对应行
...
database_url: mysql://skyline:skylineredhat@192.168.100.128:3306/skyline
debug: true
log_dir: /var/log/skyline
keystone_url: http://192.168.100.128:5000/v3/
system_project: services
system_user_password: 'redhat'
...

3.5 设置iptables规则

PackStack搭建的环境,需要手工放行端口 9999 (Skyline容器默认启用的端口),否则无法访问界面

[root@controller ~(keystone_admin)]# iptables -I INPUT -p tcp --dport 9999 -j ACCEPT

3.6 运行引导服务器

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

3.7 查看日志

如过看到以下日志信息,说明引导服务器初始化成功

[root@controller ~(keystone_admin)]# 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

3.8 清理引导服务器

[root@controller ~(keystone_admin)]# docker rm -f skyline_bootstrap

3.9 运行 skyline-apiserver

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

docker ps

3.9 访问 Skyline

地址 http://x.x.x.x:9999,使用操作流程和之前的 Dashboard 一致,不过需要提前熟悉界面

image.png

image.png

image.png

image.png

image.png

image.png

image.png

  • END