问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

OpenStack环境下的Skyline部署指南

创作时间:
作者:
@小白创作中心

OpenStack环境下的Skyline部署指南

引用
CSDN
1.
https://blog.csdn.net/m0_64417755/article/details/138270347

Skyline是OpenStack生态系统中的一个重要组件,主要用于提供统一的API服务和资源管理功能。本文将详细介绍在OpenStack环境中部署Skyline的具体步骤,包括环境准备、数据库配置、服务凭证创建以及容器运行等关键环节。

环境要求

  1. 一个安装有容器引擎(docker 或 podman)的 Linux 服务器
  2. 一个至少运行核心组件的 OpenStack 环境,并能通过 Keystone endpoint 访问 OpenStack 组件

1. Docker 安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 查看版本
docker version

2. 新建数据库

在安装和配置 Skyline APIServer 服务之前,必须创建一个数据库。

# 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环境是kolla-ansible搭建的需要用 docker exec -it mariadb bash 进入mysql容器进行添加数据库用户操作
注2:如果openstack环境是kolla-ansible搭建的需要用 cat /etc/kolla/passwords.yml |grep ^database_password 查看mysql的root密码

3. 创建服务凭证

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 
# 如果提示没有openstack命令请安装 yum install -y python-openstackclient

4. 创建配置文件

mkdir -p /etc/skyline /var/log/skyline /var/lib/skyline /var/log/nginx
vim /etc/skyline/skyline.yaml
default:
  access_token_expire: 3600
  access_token_renew: 1800
  cors_allow_origins: []
  #database_url: sqlite:tmp/skyline.db
  database_url: 'mysql://skyline:000000@172.5.1.236:3306/skyline'
  debug: false
  log_dir: ./log
  log_file: skyline.log
  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://172.5.1.236:5000/v3/
  nginx_prefix: /api/openstack
  reclaim_instance_interval: 604800
  service_mapping:
    baremetal: ironic
    compute: nova
    container: zun
    container-infra: magnum
    database: trove
    identity: keystone
    image: glance
    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: Default
  system_reader_roles:
- system_reader
  system_user_domain: Default
  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

5. 运行 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

6. 运行 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
# LISTEN_ADDRESS defaults to 0.0.0.0:9999 默认端口是9999,如果需要指定端口也可以增加参数  -e LISTEN_ADDRESS=<ip:port>

7. 排查

1、如果没有9999端口监听,则尝试停掉horzion,看下nginx的配置文件,skyline容器里面 8080端口
root@control01:/etc/nginx# pwd
/etc/nginx
root@control01:/etc/nginx# cat /etc/nginx/nginx.conf | grep listen -C 10
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    upstream skyline {
        server unix:/var/lib/skyline/skyline.sock fail_timeout=0;
    }
    ##
    # Virtual Host Configs
    ##
    server {
        listen 8080 ssl http2 default_server;  ### 8080端口

        root /skyline/libs/skyline-console/skyline_console/static;
        # Add index.php to the list if you are using PHP
        index index.html;
        server_name _;
        error_page 497 https://$http_host$request_uri;
root@control01:/etc/nginx#

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号