1、说明
- openstack的web界面可以用Honizon提供,界面更加大气、漂亮。
- 无论是手动搭建还是使用工具packstack搭建的openstack环境,都可以配置skyline。
- 本文是基于packstack搭建完成的基础之上,使用docker进行配置。
2、环境规划
主机名 | IP | 角色 | 备注 |
controller | 192.168.6.10 | 控制/网络/计算 | 开启虚拟化引擎 |
computer | 192.168.6.20 | 计算节点 | 开启虚拟化引擎 |
3、控制节点-——skyline配置
注意:
- Skyline 可以和 Dashboard 共存,互不影响。Skyline 通过容器加载 yaml 文件去数据库中获取对应资源,并在界面展示。
- 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、创建用户并授权
[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
注意:对 skyline 用户授权的时候,注意所属的 project:
- 手工搭建默认project名称为 service
- Packstack搭建默认project名称为 services(多了一个s)
3.3、安装docker
//下载 repo
[root@controller ~]# yum install -y yum-utils
[root@controller ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
//安装 Docker
[root@controller ~]# yum install -y docker-ce
[root@controller ~]# systemctl enable docker.service
[root@controller ~]# systemctl start docker.service
//拉取镜像
docker pull 99cloud/skyline:latest
3.4、创建修改配置文件
//创建目录
[root@controller ~]#mkdir -p /etc/skyline /var/log/skyline /var/lib/skyline /var/log/nginx /etc/skyline/policy
//创建yaml文件
[root@controller ~]#vim /etc/skyline/skyline.yaml
//并修改以下对应行
...
database_url: mysql://skyline:skylineredhat@192.168.6.10:3306/skyline
debug: true
log_dir: /var/log/skyline
keystone_url: http://192.168.6.10:5000/v3/
system_project: services
system_user_password: 'redhat'
...
3.5、设置防火墙(iptables)规则
[root@controller ~(keystone_admin)]# iptables -I INPUT -p tcp --dport 9999 -j ACCEPT
使用packstack安装的环境中,需要手动放行9999端口,否则无法访问界面,该端口为skyline默认使用的端口
3.6、运行引导服务器
[root@controller ~(keystone_admin)]#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-11-15 09:30:28.443 | INFO | alembic.runtime.migration:__init__:205 - Context impl MySQLImpl.
2024-11-15 09:30:28.443 | INFO | alembic.runtime.migration:__init__:208 - Will assume non-transactional DDL.
2024-11-15 09: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-apaserver
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
4、访问skyline
访问地址:http://192.168.6.10:9999