OpenStack部署skyline

本文详细描述了如何在具备Docker和OpenStack环境中部署SkylineAPIServer,包括安装Docker、创建数据库、设置服务凭证、配置Skyline.yaml文件,以及运行和初始化引导容器。还介绍了如何排查常见问题如端口监听和Nginx配置。
摘要由CSDN通过智能技术生成

OpenStack部署skyline

在这里插入图片描述

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#

在这里插入图片描述
在这里插入图片描述

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值