多节点OpenStack Charms 部署指南0.0.1.dev223--4-安装openstack

56 篇文章 4 订阅
55 篇文章 1 订阅

目录:
第一节 多节点OpenStack Charms 部署指南0.0.1.dev223–1--OpenStack Charms 部署指南
第二节 多节点OpenStack Charms 部署指南0.0.1.dev223–2-安装MAAS

第三节 多节点OpenStack Charms 部署指南0.0.1.dev223–3-安装Juju

第四节 多节点OpenStack Charms 部署指南0.0.1.dev223–4-安装openstack

第五节 多节点OpenStack Charms 部署指南0.0.1.dev223–5--使bundle安装openstack

第六节 多节点OpenStack Charms 部署指南0.0.1.dev223–6--配置vault和设置数字证书生命周期

第七节 多节点OpenStack Charms 部署指南0.0.1.dev223–7--juju 离线部署bundle

第八节 多节点OpenStack Charms 部署指南0.0.1.dev223–8--配置 OpenStack

附录 t 多节点OpenStack Charms 部署指南0.0.1.dev223–附录T–OpenStack 高可用性

第九节 多节点OpenStack Charms 部署指南0.0.1.dev223–9--网络拓扑

第十节 多节点OpenStack Charms 部署指南0.0.1.dev223–10–OpenStack 高可用基础架构实际

第十一节 多节点OpenStack Charms 部署指南0.0.1.dev223–11–访问Juju仪表板

第十二节 多节点OpenStack Charms 部署指南0.0.1.dev223–12–OpenStack 配置openstack失败后处理

第十三节 多节点OpenStack Charms 部署指南0.0.1.dev223–13–OpenStack配置高可用后无法登陆openstack dashboard

第十四节 多节点OpenStack Charms 部署指南0.0.1.dev223–14–ssh端口转发解决IDC机房国际线路不良问题

第十五节 多节点OpenStack Charms 部署指南0.0.1.dev299–15–OpenStack 实例高可用

第十六节 多节点OpenStack Charms 部署指南0.0.1.dev299–16–OpenStack基础架构高可用The easyrsa resource is missing. .

第十七节 多节点OpenStack Charms 部署指南0.0.1.dev303–17–修改实例数量等quota上限

第十八节 多节点OpenStack Charms 部署指南0.0.1.dev303–18–backup备份

第十九节 多节点OpenStack Charms 部署指南0.0.1.dev303–19–juju log

第二十节 多节点OpenStack Charms 部署指南0.0.1.dev303–20–控制器高可用性

第二十一节 多节点OpenStack Charms 部署指南0.0.1.dev303–21–控制器备份和还原

第二十二节 多节点OpenStack Charms 部署指南0.0.1.dev223–22-- Resource: res_masakari_haproxy not running

第二十三节 多节点OpenStack Charms 部署指南0.0.1.dev223–23-登录openstack-dashboad,SSLError(SSLCertVerificationError

第二十四节 多节点OpenStack Charms 部署指南0.0.1.dev223–24-Resource: res_masakari_f8b6bde_vip not running

第二十五节 多节点OpenStack Charms 部署指南0.0.1.dev223–25–rsyslog 日志服务器构建实际

第二十六节 多节点OpenStack Charms 部署指南0.0.1.dev223–26–跨model 建立关系构建rsyslog 日志服务器构建实际

第二十七节 多节点OpenStack Charms 部署指南0.0.1.dev223–27–Charm Hook

第二十八节 多节点OpenStack Charms 部署指南0.0.1.dev223–28–Command run

第三十节 多节点OpenStack Charms 部署指南0.0.1.–30–参考体系结构—Dell EMC硬件上的Canonical Charmed OpenStack(Ussuri)

第三十一节 多节点OpenStack Charms 部署指南0.0.1.–31–vm hosting-1

第三十二节 多节点OpenStack Charms 部署指南0.0.1.–32–vm hosting-2-VM host networking (snap/2.9/UI)

第三十三节 多节点OpenStack Charms 部署指南0.0.1.–33–vm hosting-3-Adding a VM host (snap/2.9/UI)

第三十四节 多节点OpenStack Charms 部署指南0.0.1.–34–vm hosting-4-VM host存储池和创建和删除vm (snap/2.9/UI)

第三十五节 多节点OpenStack Charms 部署指南0.0.1.–35–Command export-bundle备份opensack并重新部署openstack

第三十六节 多节点openstack charms 部署指南0.0.1-36-graylog实际-1

第三十七节 多节点openstack charms 部署指南0.0.1-37-graylog实际-2

第三十八节 多节点openstack charms 部署指南0.0.1-38-graylog实际-3

第三十九节 多节点openstack charms 部署指南0.0.1-39-graylog-4-filebeat

第四十节 多节点openstack charms 部署指南0.0.1-40-prometheus2

安装 OpenStack

在前面的部分中,我们安装了 Juju 并创建了 Juju 控制器和模型。我们现在要使用 Juju 来安装 OpenStack 本身。有两种方法可供选择:

1 通过单独的charm。这种方法会使您对 Juju 如何工作以及 OpenStack各组件如何组合在一起工作有深刻的理解。如果您从未在 Juju 中安装 OpenStack,请选择此选项。

2 使用charm bundle。这种方法提供了一种自动安装 OpenStack 的方法。如果您熟悉 OpenStack 是如何使用 Juju 构建的,请选择此选项。
当前页面介绍了方法 # 1。方法 # 2请参阅使用bundle部署 OpenStack。

重要事项 无论采用何种安装方式,一旦部署云计算,推荐以下与charm版本和机器系列相关的管理实践: 1
用于管理云端的整套charm服务应在云端作出任何重大改变(例如迁移到新charm服务、升级云端服务、升级机器系列)之前升级到最新的稳定charm版本。详情请参阅charm升级
2 组成云的 Juju 机器应该运行相同的系列(例如“ bionic”或“ focal”
,但不是两者的混合)。有关详细信息,请参阅系列升级

尽管这个页面很长,但是只使用三个不同的 Juju 命令: juju deployjuju add-unitjuju add-relation。在继续之前,您可能需要阅读 Juju 文档中的相关章节:

这个页面将展示如何安装一个最小的非高可用 OpenStack 云。高可用主题,可以参考 OpenStack 高可用性

OpenStack release 发行版

正如指南的概述部分所说,OpenStack Ussuri 将部署在 Ubuntu 20.04 LTS (Focal)云节点之上。为了实现这一点,在每个 OpenStack 应用程序的安装过程中将使用云节点的默认包存档(“ distro”)。请注意,有些应用程序本身并不是 OpenStack 项目的一部分,因此不适用(例外情况下,Ceph 应用程序使用这种方法)
请参阅 OpenStack 升级附录中的 Perform the upgrade,以获得更多关于云归档发行版以及升级 OpenStack 时如何使用它们的详细信息。

重要事项 选择的 OpenStack 发行版可能会影响安装和配置说明。

安装进度

有许多变动部分涉及到一个charm的 OpenStack 安装。在这个过程的大部分时间里,将有一些组件尚未得到满足,这将导致类似错误的消息显示在 juju status 命令的输出中。不要惊慌。事实上,这些都是了解各种软件的相互依赖性的机会。一旦添加和处理了适当的应用程序和关系,诸如丢失关系阻塞关系之类的消息将消失。

小贴士 监视安装进度的一个方便的方法是让命令 watch -n 5 -c juju status --color在一个单独的终端中运行。

部署 OpenStack

假设您已经精确地遵循了 Install Juju 页面上的说明,那么现在应该有一个名为“ maas-controller”的 Juju 控制器和一个名为“ openstack”的空 Juju 模型。现在就切换到这个背景:

juju switch maas-controller:openstack

在接下来的部分中,各种 OpenStack 组件将被添加到“ OpenStack”模型中。每个应用程序将从在线 Charm 存储安装,许多将通过 YAML 文件指定配置选项。

注意 您不需要等待 Juju 命令完成后才发出进一步的命令。但是,了解一个命令对云的当前状态的影响是非常有益的。

Ceph OSD

Ceph-osd 应用程序使用 ceph-osd 符号部署到四个节点。支持 osd 的块设备的名称取决于节点上的硬件。节点上所有可能的设备都应该作为 osd-devices 选项的值(空格分隔)。在这里,我们将在每个云节点上使用相同的设备:/dev/sdb。文件 ceph-osd.yaml 包含了配置

vim ceph-osd.yaml
ceph-osd:
  osd-devices: /dev/sdb
  source: distro

要部署应用程序,我们将使用我们在 Install MAAS 页面上的每个节点上放置的“ compute”标记。

juju deploy -n 4 --config ceph-osd.yaml --constraints tags=compute ceph-osd

如果来自 ceph-osd 单元(如“检测到非原始设备”)的消息出现在 juju 状态的输出中,则需要使用“ ceph-osd”符号附带的操作 zap-disk 和 add-disk。Zap-disk 操作本质上是破坏性的。仅当您想清除磁盘中供 Ceph 使用的所有数据和签名时才使用它。

注意 由于 ceph-osd 部署在四个节点上,并且在这个环境中只有四个节点可用,因此严格来说不需要使用“ compute”标记

Nova计算

Nova-compute 应用程序使用 nova-compute charm 部署到一个节点。然后,我们将把应用程序扩展到另外两台机器。文件 nova-compute.yaml 包含以下配置:

vim nova-compute.yaml 
nova-compute:
  enable-live-migration: true
  enable-resize: true
  migration-auth-type: ssh
  openstack-origin: distro

由于没有更多的空闲 Juju 机(MAAS 节点)可用,因此初始节点必须由计算机定位。这意味着我们在节点上放置了多个服务。我们选择了机器1,2和3:

juju deploy -n 3 --to 1,2,3 --config nova-compute.yaml nova-compute

注意
“nova compute”的charm是设计来支持一个镜像格式类型的每个应用程序在任何给定的时间。当现有实例使用先前的格式时,更改格式(请参阅
charm 选项 libvirt-image-backend)将需要为每个实例手动进行镜像转换。见 bug LP # 1826888。

Swift storage

速存储应用程序以swift storage的charm部署到三个节点(计算机0、2和3)。swift-storage.yaml 包含以下配置:

vim swift-storage.yaml
swift-storage:
  block-device: sdc
  overwrite: "true"
  openstack-origin: distro

此配置指向块设备/dev/sdc。根据可用的硬件进行调整。在生产环境中,避免使用环回设备。

部署到三台机器上:

juju deploy -n 3 --to 0,2,3 --config swift-storage.yaml swift-storage

MySQL InnoDB Cluster 集群

MySQL InnoDB 集群总是需要至少三个数据库单元,它们将被集成在0、1和2机器上:

juju deploy -n 3 --to lxd:0,lxd:1,lxd:2 mysql-innodb-cluster

Vault 保险库

Vault 是管理 TLS 证书所必需的,这些证书将支持云应用程序之间的加密通信。

以这种方式部署它:

juju deploy --to lxd:3 vault

这是第一个与上一节中设置的云数据库联接的应用程序。过程如下:

  1. 创建一个 mysql 路由器的特定于应用程序的实例(一个从属)
  2. 在 mysql 路由器实例和数据库之间添加一个关系
  3. 在应用程序和 mysql 路由器实例之间添加一个关系

步骤2和步骤3的组合将应用程序连接到云数据库。

以下是 Vault 的相应命令:

juju deploy mysql-router vault-mysql-router
juju add-relation vault-mysql-router:db-router mysql-innodb-cluster:db-router
juju add-relation vault-mysql-router:shared-db vault:shared-db

Vault现在需要启动和解封。这种charm还需要获得授权才能执行某些任务。这些步骤都包含在Vault页面中。现在就做。
一旦完成上面的单位部分输出命令charm状态应该看起来类似于这样:

Unit                     Workload  Agent  Machine  Public address  Ports     Message
ceph-osd/0*              blocked   idle   0        10.0.0.206                Missing relation: monitor
ceph-osd/1               blocked   idle   1        10.0.0.208                Missing relation: monitor
ceph-osd/2               blocked   idle   2        10.0.0.209                Missing relation: monitor
ceph-osd/3               blocked   idle   3        10.0.0.213                Missing relation: monitor
mysql-innodb-cluster/0*  active    idle   0/lxd/0  10.0.0.211                Unit is ready: Mode: R/W
mysql-innodb-cluster/1   active    idle   1/lxd/0  10.0.0.212                Unit is ready: Mode: R/O
mysql-innodb-cluster/2   active    idle   2/lxd/0  10.0.0.214                Unit is ready: Mode: R/O
nova-compute/0*          blocked   idle   1        10.0.0.208                Missing relations: image, messaging
nova-compute/1           blocked   idle   2        10.0.0.209                Missing relations: image, messaging
nova-compute/2           blocked   idle   3        10.0.0.213                Missing relations: messaging, image
swift-storage/0*         blocked   idle   0        10.0.0.206                Missing relations: proxy
swift-storage/1          blocked   idle   2        10.0.0.209                Missing relations: proxy
swift-storage/2          blocked   idle   3        10.0.0.213                Missing relations: proxy
vault/0*                 active    idle   3/lxd/0  10.0.0.217      8200/tcp  Unit is ready (active: true, mlock: disabled)
  vault-mysql-router/0*  active    idle            10.0.0.217                Unit is ready

Neutron网络

Neutron网络有四种应用:

  1. neutron-api
  2. neutron-api-plugin-ovn (subordinate)
  3. ovn-central
  4. ovn-chassis (subordinate)
    文件 neutron.yaml 包含其中三个所需的配置:
vim neutron.yaml 
ovn-chassis:
  bridge-interface-mappings: br-ex:eth1
  ovn-bridge-mappings: physnet1:br-ex
neutron-api:
  neutron-security-groups: true
  flat-network-providers: physnet1
  openstack-origin: distro
ovn-central:
  source: distro

桥接接口映射bridge-interface-mappings设置引用 OVN 底盘Chassis将绑定到的网络接口。在上面的例子中,它是‘ eth1’ ,它应该是一个未使用的接口。在 MAAS 中,这个接口必须具有“未配置”的 IP 模式(见 MAAS 文档中的后委托配置)。所有四个节点都应该具有这个接口,以确保任何节点都能够容纳 OVN 底盘 Chassis。

扁平网络提供商flat-network-providers 设置允许本示例场景中使用的neutron扁平网络提供商,并将其命名为“ physnet1”。当我们在下一页设置公共网络时,将引用扁平网络提供商及其名称。

Ovn-bridge-mappings 设置将数据端口接口映射到平面网络提供者

OVN 的主要应用程序是 OVN-central,它至少需要三个单元。它们将用0、1和2号机器集装:

juju deploy -n 3 --to lxd:0,lxd:1,lxd:2 --config neutron.yaml ovn-central

neutron-api 应用程序将装入1号机器:

juju deploy --to lxd:1 --config neutron.yaml neutron-api

部署下级charm应用程序:

juju deploy neutron-api-plugin-ovn
juju deploy --config neutron.yaml ovn-chassis

添加必要的关系:

juju add-relation neutron-api-plugin-ovn:neutron-plugin neutron-api:neutron-plugin-api-subordinate
juju add-relation neutron-api-plugin-ovn:ovsdb-cms ovn-central:ovsdb-cms
juju add-relation ovn-chassis:ovsdb ovn-central:ovsdb
juju add-relation ovn-chassis:nova-compute nova-compute:neutron-plugin
juju add-relation neutron-api:certificates vault:certificates
juju add-relation neutron-api-plugin-ovn:certificates vault:certificates
juju add-relation ovn-central:certificates vault:certificates
juju add-relation ovn-chassis:certificates vault:certificates

将 neutron-api 加入云数据库:

juju deploy mysql-router neutron-api-mysql-router
juju add-relation neutron-api-mysql-router:db-router mysql-innodb-cluster:db-router
juju add-relation neutron-api-mysql-router:shared-db neutron-api:shared-db

Keystone

关键的应用程序将集装箱机器0。
部署:

juju deploy --to lxd:0 --config openstack-origin=distro keystone`

加入云数据库的 keystone:

juju deploy mysql-router keystone-mysql-router
juju add-relation keystone-mysql-router:db-router mysql-innodb-cluster:db-router
juju add-relation keystone-mysql-router:shared-db keystone:shared-db

此时还可以增加两个关系:

juju add-relation keystone:identity-service neutron-api:identity-service
juju add-relation keystone:certificates vault:certificates

RabbitMQ

Rabbitmq-server 应用程序将以 rabbitmq-server 的charm包装在机器2上:

juju deploy --to lxd:2 rabbitmq-server

此时可以增加两个关系:

juju add-relation rabbitmq-server:amqp neutron-api:amqp
juju add-relation rabbitmq-server:amqp nova-compute:amqp

此时juju status输出的charm状态应该类似于这样:

Unit                           Workload  Agent  Machine  Public address  Ports              Message
ceph-osd/0*                    blocked   idle   0        10.0.0.206                         Missing relation: monitor
ceph-osd/1                     blocked   idle   1        10.0.0.208                         Missing relation: monitor
ceph-osd/2                     blocked   idle   2        10.0.0.209                         Missing relation: monitor
ceph-osd/3                     blocked   idle   3        10.0.0.213                         Missing relation: monitor
keystone/0*                    active    idle   0/lxd/2  10.0.0.223      5000/tcp           Unit is ready
  keystone-mysql-router/0*     active    idle            10.0.0.223                         Unit is ready
mysql-innodb-cluster/0*        active    idle   0/lxd/0  10.0.0.211                         Unit is ready: Mode: R/W
mysql-innodb-cluster/1         active    idle   1/lxd/0  10.0.0.212                         Unit is ready: Mode: R/O
mysql-innodb-cluster/2         active    idle   2/lxd/0  10.0.0.214                         Unit is ready: Mode: R/O
neutron-api/0*                 active    idle   1/lxd/2  10.0.0.220      9696/tcp           Unit is ready
  neutron-api-mysql-router/0*  active    idle            10.0.0.220                         Unit is ready
  neutron-api-plugin-ovn/0*    active    idle            10.0.0.220                         Unit is ready
nova-compute/0*                blocked   idle   1        10.0.0.208                         Missing relations: image
  ovn-chassis/1                active    idle            10.0.0.208                         Unit is ready
nova-compute/1                 blocked   idle   2        10.0.0.209                         Missing relations: image
  ovn-chassis/0*               active    idle            10.0.0.209                         Unit is ready
nova-compute/2                 blocked   idle   3        10.0.0.213                         Missing relations: image
  ovn-chassis/2                active    idle            10.0.0.213                         Unit is ready
ovn-central/0*                 active    idle   0/lxd/1  10.0.0.218      6641/tcp,6642/tcp  Unit is ready (leader: ovnnb_db, ovnsb_db northd: active)
ovn-central/1                  active    idle   1/lxd/1  10.0.0.221      6641/tcp,6642/tcp  Unit is ready
ovn-central/2                  active    idle   2/lxd/1  10.0.0.219      6641/tcp,6642/tcp  Unit is ready
rabbitmq-server/0*             active    idle   2/lxd/2  10.0.0.222      5672/tcp           Unit is ready
swift-storage/0*               blocked   idle   0        10.0.0.206                         Missing relations: proxy
swift-storage/1                blocked   idle   2        10.0.0.209                         Missing relations: proxy
swift-storage/2                blocked   idle   3        10.0.0.213                         Missing relations: proxy
vault/0*                       active    idle   3/lxd/0  10.0.0.217      8200/tcp           Unit is ready (active: true, mlock: disabled)
  vault-mysql-router/0*        active    idle            10.0.0.217                         Unit is ready

Nova cloud controller

Nova-cloud-controller 应用程序,包括 nova-scheduler、 nova-api 和 nova-conductor 服务,将使用 nova-cloud-controller charm 包装在机器0上。文件 nova-cloud-controller.yaml 包含以下配置:

vim controller.yaml
nova-cloud-controller:
  network-manager: Neutron
  openstack-origin: distro

部署:

juju deploy --to lxd:3 --config nova-cloud-controller.yaml nova-cloud-controller

加入 nova-cloud-controller 到云数据库:

juju deploy mysql-router ncc-mysql-router
juju add-relation ncc-mysql-router:db-router mysql-innodb-cluster:db-router
juju add-relation ncc-mysql-router:shared-db nova-cloud-controller:shared-db

注意 为了保持 juju 状态输出压缩,预期的 nova-cloud-controller-mysql-router
应用程序名称被缩短为 ncc-mysql-router。

此时可以增加另外五种关系:

juju add-relation nova-cloud-controller:identity-service keystone:identity-service
juju add-relation nova-cloud-controller:amqp rabbitmq-server:amqp
juju add-relation nova-cloud-controller:neutron-api neutron-api:neutron-api
juju add-relation nova-cloud-controller:cloud-compute nova-compute:cloud-compute
juju add-relation nova-cloud-controller:certificates vault:certificates

Placement

placement 应用将使用placemet charm集成安装到机器2
部署:

juju deploy --to lxd:3 --config openstack-origin=distro placement

加入云数据库的位置:

juju deploy mysql-router placement-mysql-router
juju add-relation placement-mysql-router:db-router mysql-innodb-cluster:db-router
juju add-relation placement-mysql-router:shared-db placement:shared-db

此时可以增加另外三种关系:

juju add-relation placement:identity-service keystone:identity-service
juju add-relation placement:placement nova-cloud-controller:placement
juju add-relation placement:certificates vault:certificates

OpenStack dashboard 指示板

Openstack-dashboard 应用程序(Horizon)将通过 openstack-dashboard charm集装在计算机1上
部署:

juju deploy --to lxd:1 --config openstack-origin=distro openstack-dashboard

加入 openstack-dashboard 到云数据库:

juju deploy mysql-router dashboard-mysql-router
juju add-relation dashboard-mysql-router:db-router mysql-innodb-cluster:db-router
juju add-relation dashboard-mysql-router:shared-db openstack-dashboard:shared-db

注意 为了保持 juju 状态输出压缩,预期的 openstack-dashboard-mysql-router 应用程序名称被缩短为
dashboard-mysql-router

还需要两个关系:

juju add-relation openstack-dashboard:identity-service keystone:identity-service
juju add-relation openstack-dashboard:certificates vault:certificates

Glance

glance应用将使用glance charm 集成安装在机器2上
部署:

juju deploy --to lxd:3 --config openstack-origin=distro glance

加入云数据库浏览:

juju deploy mysql-router glance-mysql-router
juju add-relation glance-mysql-router:db-router mysql-innodb-cluster:db-router
juju add-relation glance-mysql-router:shared-db glance:shared-db

此时可以增加四种关系:

juju add-relation glance:image-service nova-cloud-controller:image-service
juju add-relation glance:image-service nova-compute:image-service
juju add-relation glance:identity-service keystone:identity-service
juju add-relation glance:certificates vault:certificates

此时juju status命令输出的charn状态应该类似于这样:

Unit                           Workload  Agent  Machine  Public address  Ports              Message
ceph-osd/0*                    blocked   idle   0        10.0.0.206                         Missing relation: monitor
ceph-osd/1                     blocked   idle   1        10.0.0.208                         Missing relation: monitor
ceph-osd/2                     blocked   idle   2        10.0.0.209                         Missing relation: monitor
ceph-osd/3                     blocked   idle   3        10.0.0.213                         Missing relation: monitor
glance/0*                      active    idle   3/lxd/3  10.0.0.224      9292/tcp           Unit is ready
  glance-mysql-router/0*       active    idle            10.0.0.224                         Unit is ready
keystone/0*                    active    idle   0/lxd/2  10.0.0.223      5000/tcp           Unit is ready
  keystone-mysql-router/0*     active    idle            10.0.0.223                         Unit is ready
mysql-innodb-cluster/0*        active    idle   0/lxd/0  10.0.0.211                         Unit is ready: Mode: R/W
mysql-innodb-cluster/1         active    idle   1/lxd/0  10.0.0.212                         Unit is ready: Mode: R/O
mysql-innodb-cluster/2         active    idle   2/lxd/0  10.0.0.214                         Unit is ready: Mode: R/O
neutron-api/0*                 active    idle   1/lxd/2  10.0.0.220      9696/tcp           Unit is ready
  neutron-api-mysql-router/0*  active    idle            10.0.0.220                         Unit is ready
  neutron-api-plugin-ovn/0*    active    idle            10.0.0.220                         Unit is ready
nova-cloud-controller/0*       active    idle   3/lxd/1  10.0.0.216      8774/tcp,8775/tcp  Unit is ready
  ncc-mysql-router/0*          active    idle            10.0.0.216                         Unit is ready
nova-compute/0*                active    idle   1        10.0.0.208                         Unit is ready
  ovn-chassis/1                active    idle            10.0.0.208                         Unit is ready
nova-compute/1                 active    idle   2        10.0.0.209                         Unit is ready
  ovn-chassis/0*               active    idle            10.0.0.209                         Unit is ready
nova-compute/2                 active    idle   3        10.0.0.213                         Unit is ready
  ovn-chassis/2                active    idle            10.0.0.213                         Unit is ready
openstack-dashboard/0*         active    idle   1/lxd/3  10.0.0.210      80/tcp,443/tcp     Unit is ready
  dashboard-mysql-router/0*    active    idle            10.0.0.210                         Unit is ready
ovn-central/0*                 active    idle   0/lxd/1  10.0.0.218      6641/tcp,6642/tcp  Unit is ready (leader: ovnnb_db, ovnsb_db northd: active)
ovn-central/1                  active    idle   1/lxd/1  10.0.0.221      6641/tcp,6642/tcp  Unit is ready
ovn-central/2                  active    idle   2/lxd/1  10.0.0.219      6641/tcp,6642/tcp  Unit is ready
placement/0*                   active    idle   3/lxd/2  10.0.0.215      8778/tcp           Unit is ready
  placement-mysql-router/0*    active    idle            10.0.0.215                         Unit is ready
rabbitmq-server/0*             active    idle   2/lxd/2  10.0.0.222      5672/tcp           Unit is ready
swift-storage/0*               blocked   idle   0        10.0.0.206                         Missing relations: proxy
swift-storage/1                blocked   idle   2        10.0.0.209                         Missing relations: proxy
swift-storage/2                blocked   idle   3        10.0.0.213                         Missing relations: proxy
vault/0*                       active    idle   3/lxd/0  10.0.0.217      8200/tcp           Unit is ready (active: true, mlock: disabled)
  vault-mysql-router/0*        active    idle            10.0.0.217                         Unit is ready

Ceph 监视器

Ceph-mon 应用程序将用 ceph-mon charm安装在0、1和2台机器上。
部署:

juju deploy -n 3 --to lxd:0,lxd:1,lxd:2 --config source=distro ceph-mon

此时可以增加三个关系:

juju add-relation ceph-mon:osd ceph-osd:mon
juju add-relation ceph-mon:client nova-compute:ceph
juju add-relation ceph-mon:client glance:ceph

对于上述关系,

Nova-compute: Ceph 关系使 Ceph 成为 Nova 非可引导磁盘映像的存储后端。Nova-compute charm
选项 libvirt-image-backend 必须设置为“ rbd”才能生效。
glance:Ceph 关系使 Ceph 成为 Glance 的存储后端。

Cinder

cinder应用程序将使用cinder charm集成安装在机器1。文件 cinder.yaml 包含的配置:

vim cinder.yaml
cinder:
  glance-api-version: 2
  block-device: None
  openstack-origin: distro

部署:

juju deploy --to lxd:1 --config cinder.yaml cinder

把cinder加入云数据库:

juju deploy mysql-router cinder-mysql-router
juju add-relation cinder-mysql-router:db-router mysql-innodb-cluster:db-router
juju add-relation cinder-mysql-router:shared-db cinder:shared-db

此时可以增加四种关系:

juju add-relation cinder:cinder-volume-service nova-cloud-controller:cinder-volume-service
juju add-relation cinder:identity-service keystone:identity-service
juju add-relation cinder:amqp rabbitmq-server:amqp
juju add-relation cinder:image-service glance:image-service

上面的glance:image-service关系将使Cinder能够使用Glance API.(例如,使Cinder能够执行Glance图片的卷快照)
Like Glance, Cinder will use Ceph as its storage backend (hence block-device: None in the configuration file). This will be implemented via the cinder-ceph subordinate charm:
与 Glance 一样,Cinder 将使用 Ceph 作为其存储后端(因此配置文件中的 block-device: None)。这将通过cinder-ceph的附属charm来实现:

juju deploy cinder-ceph

需要增加四个关系:

juju add-relation cinder-ceph:storage-backend cinder:storage-backend
juju add-relation cinder-ceph:ceph ceph-mon:client
juju add-relation cinder-ceph:ceph-access nova-compute:ceph-access
juju add-relation cinder:certificates vault:certificates

Swift proxy
Swift-proxy 应用程序将以 swift-proxy charm 包装在3号计算机上:

vim swift-proxy.yaml
swift-proxy:
  zone-assignment: auto
  swift-hash: "<uuid>"

Swift proxy需要提供一个唯一标识符/代理(UUID)。使用 uuid -v 4命令生成一个(可能需要首先安装 uuid deb 包)并将其插入文件。

部署:

juju deploy --to lxd:3 --config swift-proxy.yaml swift-proxy

我们需要两种关系:

juju add-relation swift-proxy:swift-storage swift-storage:swift-storage
juju add-relation swift-proxy:identity-service keystone:identity-service

NTP
最后一个组件是 NTP 客户机,用于同步每个云节点上的时间。这是通过 ntp 附属charm
完成的:

juju deploy ntp

下面的关系将在每个 ceph-osd 单元旁边添加一个 ntp 单元,从而在四个云节点上各添加一个:

juju add-relation ceph-osd:juju-info ntp:juju-info

最终结果和仪表盘访问

一旦所有的应用都部署完毕,并且加入了它们之间的关系,我们就需要等待juju
status的输出。最终结果应该没有任何类似错误的消息。这里给出了成功的云部署的示例输出(包括关系)。
OpenStack 部署中的一个里程碑是第一次登录 Horizon 仪表板。您将需要其 IP 地址和管理员密码。
以这种方式取得地址:

juju status --format=yaml openstack-dashboard | grep public-address | awk '{print $2}' | head -1

密码是从 Keystone 查询的:

juju run --unit keystone/0 leader-get admin_passwd

在这个例子中,地址是‘10.0.0.210’ ,密码是‘ kohy6shoh3diWav5’。

然后,仪表板的 URL 变成:

http://10.0.0.210/horizon

这些证书是:

Domain: admin_domain
User Name:admin
Password: kohy6shoh3diWav5 6shoh3diwav5

一旦登录,你应该会看到这样的东西:
在这里插入图片描述
使能进入控制台:

juju config nova-cloud-controller console-access-protocol=novnc

下一步

您已经成功地使用 Juju 和 MAAS 部署了 OpenStack。下一步是为用户呈现云功能。这将涉及到建立网络、图像和用户环境。现在进入配置 OpenStack。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值