Linux安装OpenStack Skyline组件

小柒博客 评论15字数 1313阅读4分22秒阅读模式

一、Skyline介绍

Skyline是新一代的OpenStack管理界面,由九州云于2021年9月捐献给OpenStack社区。同年12月末,Skyline孵化完成,成为OpenStack正式项目。2022年,Skyline开发团队完成了OpenStack的代码重构,并增加了对Octavia、Manila、Swift、Barbican、Zun、Trove等社区模块的支持。Skyline团队也通过企业微信群与社区开发者、社区用户进行了很多轮的互动讨论。2022年10月5日,Skyline第一个正式版本随OpenStack Yoga正式发布。Skyline不仅提供了OpenStack基础服务(如计算、存储、网络的操作界面),也支持许多增值服务(如文件存储、对象存储、负载均衡、数据库等服务)。一旦完成部署,Skyline不依赖任何插件就能迅速调用各种云服务接口,满足企业级的生产需求。云上的虚拟机、容器、K8s集群、RDS(Relational Database Service,关系数据库服务)数据库、负载均衡等各种资源,都能在Skyline的平台上完成全生命周期管理。

二、安装Skyline组件

1、创建数据库和授权

[root@controller ~]# mysql -uroot -p"Aa123456" 2>/dev/null -e "create database skyline;"

[root@controller ~]# mysql -uroot -p"Aa123456" 2>/dev/null -e "grant all privileges on skyline.* to 'skyline'@'localhost' identified by 'Skyline1234';"

[root@controller ~]# mysql -uroot -p"Aa123456" 2>/dev/null -e "grant all privileges on skyline.* to 'skyline'@'%' identified by 'Skyline1234';"

[root@controller ~]# mysql -uroot -p"Aa123456" 2>/dev/null -e "flush privileges;"

2、在Keystone上面注册skyline服务,创建账户skyline,密码Aa123456

[root@controller ~]# openstack user create --domain default --password Aa123456 skyline

3、添加skyline用户至service项目并配置为admin角色

[root@controller ~]# openstack role add --project service --user skyline admin

4、安装Docker-Ce

[root@controller ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

[root@controller ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@controller ~]# yum -y install docker-ce docker-ce-cli containerd.io

[root@controller ~]# systemctl enable docker

[root@controller ~]# systemctl start docker

5、安装Prometheus

# 创建Prometheus工作目录

[root@controller ~]# mkdir -p /data/prometheus/{data,config,rules}

[root@controller ~]# chmod 777 /data/prometheus/data

[root@controller ~]# vim /data/prometheus/config/prometheus.yml

global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

alerting:
  alertmanagers:
    - static_configs:
      - targets:
        - "192.168.10.170:9093"

rule_files:
  - 'rules/*.yml'

scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets:
        - "192.168.10.170:9090"
        labels:
          app: "prometheus"

  - job_name: "node-exporter"
    static_configs:
      - targets:
        - "192.168.10.170:9100"

  - job_name: "openstack-exporter"
    scrape_interval: 30s
    static_configs:
      - targets:
        - "192.168.10.170:9180"

 # 运行Prometheus容器

[root@controller ~]# docker run -d \

  --name prometheus \

  -p 9090:9090 \

  -v /data/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml \

  -v /data/prometheus/data:/prometheus \

  -v /data/prometheus/rules:/etc/prometheus/rules \

  --restart=unless-stopped \

  quay.io/prometheus/prometheus:v3.5.0 \

  --web.enable-lifecycle \

  --config.file=/etc/prometheus/prometheus.yml \

  --storage.tsdb.path=/prometheus \

  --storage.tsdb.retention.time=15d

6、安装Node Exporter

[root@controller ~]# docker run -d \

  --name node-exporter \

  -p 9100:9100 \

  -v /proc:/host/proc:ro \

  -v /sys:/host/sys:ro \

  -v /:/rootfs:ro \

  --restart=unless-stopped \

  quay.io/prometheus/node-exporter:v1.9.1 \

  --path.procfs=/host/proc \

  --path.rootfs=/rootfs \

  --path.sysfs=/host/sys \

  --collector.filesystem.mount-points-exclude='^/(sys|proc|dev|host|etc)($$|/)'

7、安装OpenStack Exporter

# 创建OpenStack Exporter配置文件

[root@controller ~]# mkdir -p /etc/openstack

[root@controller ~]# vim /etc/openstack/clouds.yaml

clouds:
  default:
    region_name: RegionOne
    interface: public
    identity_api_version: 3
    auth:
      auth_url: http://controller:5000/v3
      username: admin
      password: admin
      project_name: admin
      user_domain_name: 'Default'
      project_domain_name: 'Default'
    verify: true

 # 运行OpenStack Exporter容器

[root@controller ~]# docker run -d \

  --name openstack-exporter \

  -p 9180:9180 \

  -v /etc/openstack/clouds.yaml:/etc/openstack/clouds.yaml \

  --add-host controller:192.168.10.170 \

  --restart=unless-stopped \

  ghcr.io/openstack-exporter/openstack-exporter:1.7.0 \

  --prefix="openstack" \

  --endpoint-type="public" \

  default

8、安装Skyline

# 创建Skyline工作目录

[root@controller ~]# mkdir -p /etc/skyline /var/log/skyline

# 创建Skyline配置文件

[root@controller ~]# vim /etc/skyline/skyline.yaml

default:
  access_log_file: skyline-nginx-access.log
  access_token_expire: 3600
  access_token_renew: 1800
  cafile: ''
  cors_allow_origins: []
  database_url: mysql+pymysql://skyline:Skyline1234@192.168.10.170:3306/skyline
  debug: false
  error_log_file: skyline-nginx-error.log
  log_dir: /var/log/skyline
  log_file: skyline.log
  policy_file_path: /etc/skyline/policy
  policy_file_suffix: policy.yaml
  prometheus_basic_auth_password: ''
  prometheus_basic_auth_user: ''
  prometheus_enable_basic_auth: false
  prometheus_endpoint: http://192.168.10.170:9090
  secret_key: DUA7pFRjcV6uBgQ8X6ca3CNSZyKT7JaS7JYX6XMF
  session_name: session
  ssl_enabled: false
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://192.168.10.170:5000/v3/
  nginx_prefix: /api/openstack
  reclaim_instance_interval: 604800
  service_mapping:
    baremetal: ironic
    block-storage: cinder
    compute: nova
    container: zun
    container-infra: magnum
    database: trove
    dns: designate
    identity: keystone
    image: glance
    instance-ha: masakari
    key-manager: barbican
    load-balancer: octavia
    network: neutron
    object-store: swift
    orchestration: heat
    placement: placement
    sharev2: manilav2
  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: 'Aa123456'
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

 # 运行skyline-bootstrap容器

[root@controller ~]# docker run -d \

  --name skyline-bootstrap \

  -e KOLLA_BOOTSTRAP="" \

  -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml \

  -v /var/log/skyline:/var/log/skyline \

  --net=host \

  99cloud/skyline:latest

# 查看容器内部日志

[root@controller ~]# docker logs skyline-bootstrap

# 查看数据库是否生成文件,一共3张表

[root@controller ~]# mysql -uskyline -pSkyline1234 2>/dev/null -e "use skyline;;show tables;"

注意:该容器的作用是生成Skyline服务的数据库的表结构,经查询,生成了alembic_version、revoked_token、settings三张表结构,查询结果如上图所示。

# 结构创建成功后,删除数据库初始化引导容器skyline_bootstrap

[root@controller ~]# docker rm skyline-bootstrap

skyline-bootstrap

# 运行skyline容器

[root@controller ~]# docker run -d \

  --name skyline \

  --net=host \

  --restart=unless-stopped \

  -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml \

  -v /var/log/skyline:/var/log/skyline \

  99cloud/skyline:latest

9、访问Skyline

# 浏览器访问http://192.168.10.170:9999,如下图所示

# 输入账号密码

# 登录成功界面

# 切换中文

# 管理后台界面

10、访问Prometheus

# 浏览器访问http://192.168.10.170:9090,如下图所示

Linux安装OpenStack  Skyline组件

若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!

继续阅读
Wechat
微信扫一扫,加我!
weinxin
微信号已复制
微信公众号
微信扫一扫,关注我!
weinxin
公众号已复制
小柒博客
  • 本文由 小柒博客 发表于 2025年10月22日 15:01:25
  • 声明:本站所有文章,如无特殊说明或标注,本站文章均为原创。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。转载请务必保留本文链接:https://www.yangxingzhen.com/11169.html

发表评论