~、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" 正常退出。
------------









![ERROR [io.undertow.request] UT005023: Exception handling request 报错处理](https://img-blog.csdnimg.cn/11d6e2de350b43f1a1a6dfae3c9db3fa.png)










