安装 OpenStack

安装 OpenStack

我想启动并运行一个测试云,为可能部署 12.04 做准备。我稍微研究了一下 UEC,但很难找到任何有用的新堆栈入门资料。Diablo 上有通用文档,但 Ubuntu 中可能已经有很多方便的资料,因此特定指南可以节省时间。

此外,虽然我很想这样做,但我的预算不包括 4-6,000 美元来运行由 Canonical 支持的小型集群。

答案1

安装 OpenStack

如果您想快速启动并运行,请访问此处:

这个答案更详细地介绍了如何将 Juju 与 OpenStack 结合使用。

范围

OpenStack 平台功能强大,用途广泛。本文档部分主要涉及使用(但不限于)MAAS、Juju 和 Ubuntu 等 Canonical 组件部署“标准”运行的 OpenStack 系统。在适当的情况下,将提及其他方法和软件。

假设

  1. MAAS 的使用- 请首先遵循这些说明。
  2. Juju 的使用
  3. 本地网络配置 - 本文档假设您具有足够的本地网络配置,包括用于访问 OpenStack 云的单独接口。理想的网络在 [MAAS][MAAS 的 OpenStack 文档] 中列出。

规划安装

在部署任何服务之前,盘点可用资源及其使用方式非常有用。OpenStack 由许多相互关联的服务(Nova、Swift 等)组成,每个服务在主机方面都有不同的需求。例如,提供对象存储的 Swift 服务与提供计算资源的 Nova 服务的要求不同。

每项服务的最低要求和建议均列于官方OpenStack操作指南

使用 MAAS 和 Juju 部署 OpenStack 的推荐节点组成是系统中的所有节点都应该能够运行任何服务。这是系统稳健性的最佳实践,因为任何物理节点一旦发生故障,都可以重新利用另一个节点来代替它。这显然扩展到任何硬件要求,例如额外的网络接口。

如果出于经济或其他原因,您选择使用不同的硬件配置,则应注意,您克服硬件故障的能力将会降低。还需要将部署定位到特定节点 - 请参阅MAAS 标签文档

创建 OpenStack 配置文件

我们将使用 Juju charms 来部署 OpenStack 的组件。每个 charm 都封装了设置特定服务所需的一切。但是,各个服务都有许多配置选项,其中一些我们想要更改。

为了使此任务更容易、更可重复,我们将创建一个单独的配置文件,其中包含所有服务的相关选项。这是以标准 YAML 格式编写的(如果你不熟悉这个,请访问 www.yaml.org)。

以下是 openstack-config.yaml 的一个示例:

keystone:
  admin-password: openstack
  debug: 'true'
  log-level: DEBUG
nova-cloud-controller:
  network-manager: 'Neutron'
  quantum-security-groups: 'yes'
  neutron-external-network: Public_Network
nova-compute:
  enable-live-migration: 'True'
  migration-auth-type: "none"
  virt-type: kvm
  #virt-type: lxc
  enable-resize: 'True'
quantum-gateway:
  ext-port: 'eth1'
  plugin: ovs
glance:
  ceph-osd-replication-count: 3
cinder:
  block-device: None
  ceph-osd-replication-count: 3
  overwrite: "true"
  glance-api-version: 2
ceph:
  fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
  monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
  osd-devices: /dev/sdb
  osd-reformat: 'True'

对于所有服务,我们可以配置为openstack-origin指向安装源。在本例中,我们将依赖默认设置,它将指向 Ubuntu 14.04 LTS Trusty 版本的相关源。每个服务的进一步配置在这个文件

其他配置

部署 OpenStack 服务时可以使用其他设置和配置选项。这些在 Juju 使用的各个 charm 的文档中有详细说明,可以通过访问在线 Juju Charm 商店并使用页面左上角的搜索框搜索超级按钮。然后,配置设置在主页的“配置”下详细说明,如下所示:

在此处输入图片描述

使用 Juju 部署 OpenStack

现在配置已经定义,我们可以使用 Juju 来部署和关联服务。

初始化 Juju

Juju 需要最少的设置。我们假设它已经配置为与您的 MAAS 集群配合使用(有关更多信息,请参阅 [Juju 安装指南][juju_install])。

首先,我们需要获取 Juju 将使用的图像和工具:

juju sync-tools --debug

然后我们可以创建引导实例:

juju bootstrap --upload-tools --debug

我们使用 upload-tools 开关来使用我们刚刚获取的工具的本地版本。调试开关将提供有用的详细输出。此过程可能需要几分钟,因为 Juju 正在创建实例并安装工具。完成后,您可以使用以下命令检查系统状态:

juju status

这应该返回类似这样的内容:

environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.18.1.1
    dns-name: localhost
    instance-id: localhost
    series: trusty

部署 OpenStack Charms

现在 Juju 引导节点已启动并运行,我们可以部署安装 OpenStack 所需的服务。为了在部署时正确配置这些服务,我们将使用之前定义的配置文件,通过在--config每个部署命令中将其与交换机一起传递。如果配置文件的名称和路径不同,请替换为配置文件的名称和路径。

按照以下顺序部署服务很有用,但不是必需的。强烈建议打开另一个终端窗口并运行命令juju debug-log。这将输出所有服务运行时的日志,并且可用于故障排除。

还建议juju status定期运行命令,以检查每个服务是否已安装并正常运行。 Juju 将自动尝试从在线 Charm Store 获取最佳版本的 Charm。 如果您在受限或封闭的网络中安装,则可以预先获取所需的 Charm。 请参阅 [离线 Charm 文档] [charms-offline]。

juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3 
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw

添加 OpenStack 服务之间的关系

虽然现在已部署了这些服务,但它们尚未连接在一起。每个服务目前都独立存在。我们使用命令juju add-relation 让它们相互了解并设置任何相关的连接和协议。这些额外的配置由各个 charms 自己处理。

我们应该通过设置 Keystone 授权服务及其数据库来开始添加魅力之间的关系,因为许多其他连接都需要它:

juju add-relation keystone mysql

我们等待关系建立。完成后使用 juju status 检查:

juju status mysql
juju status keystone

这项服务可能需要一些时间才能稳定下来。虽然当然可以继续添加关系(Juju 管理待处理操作的队列),但从总体时间来看,这可能会适得其反,因为许多关系都引用相同的服务。

还需要建立以下关系:

juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone

最后,juju status 的输出应该显示所有关系已完成。OpenStack 云现在正在运行,但在准备使用之前,需要填充一些其他组件。

答案2

Ken Pepple 有一本关于部署 OpenStack 的书: http://shop.oreilly.com/product/0636920021674.do

Ken 的公司(Internap)拥有第一个商业化的 OpenStack 云计算服务。

http://www.theregister.co.uk/2011/10/28/internap_openstack_cloud/

Internap 的云建立在 Xen 云平台 (XCP) 上作为虚拟机管理程序。

答案3

部署 RDO 的过程快速而简单。设置 OpenStack 云大约需要 15 分钟,只需 3 个步骤。 http://openstack.redhat.com/Quickstart

相关内容