我想建立一个测试云并开始运行,以准备部署12.04。我对UEC感到有些困惑,但是很难找到任何有用的东西作为新堆栈的入门。有关暗黑破坏神的通用文档,但是在Ubuntu中可能已经有很多方便的工具,特定的指南可以节省时间。
而且,就我所愿,我的预算中不包括4-6k美元的费用,以便在Canonical支持下运行小型集群。
我想建立一个测试云并开始运行,以准备部署12.04。我对UEC感到有些困惑,但是很难找到任何有用的东西作为新堆栈的入门。有关暗黑破坏神的通用文档,但是在Ubuntu中可能已经有很多方便的工具,特定的指南可以节省时间。
而且,就我所愿,我的预算中不包括4-6k美元的费用,以便在Canonical支持下运行小型集群。
Answers:
如果您想快速起步并运行,请转到此处:
这个答案是关于如何在OpenStack中使用Juju的更详细的介绍。
OpenStack平台功能强大,用途广泛。本部分文档主要涉及使用(但不限于)诸如MAAS,Juju和Ubuntu之类的Canonical组件部署“标准”运行的OpenStack系统。在适当的地方,将提及其他方法和软件。
在部署任何服务之前,盘点可用资源及其使用方式非常有用。OpenStack包含许多相互关联的服务(Nova,Swift等),每个服务在主机方面都有不同的需求。例如,提供对象存储的Swift服务与提供计算资源的Nova服务有不同的要求。
每种服务的最低要求和建议在《OpenStack官方操作指南》中列出
建议使用MAAS和Juju部署OpenStack的节点组成是系统中的所有节点都应能够运行任何服务。这是系统健壮性的最佳实践,因为既然任何物理节点都应该发生故障,则可以重新利用另一个物理节点来代替它。显然,这扩展到了任何硬件要求,例如额外的网络接口。
如果出于经济原因或其他原因选择使用不同的硬件配置,则应注意,克服硬件故障的能力将降低。还必须将部署定向到特定节点-请参阅MAAS文档中有关标签的部分。
我们将使用Juju Charm来部署OpenStack的组成部分。每个超级按钮都封装了设置特定服务所需的一切。但是,各个服务具有许多配置选项,我们将要更改其中一些。
为了使此任务更容易且更易于重现,我们将创建一个单独的配置文件,其中包含所有服务的相关选项。这是以标准的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使用的单个护身符文档中都有详细说明,可以通过访问在线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
现在Juju引导节点已启动并正在运行,我们可以部署进行OpenStack安装所需的服务。为了在部署这些服务时正确地配置它们,我们将使用我们先前定义的配置文件,将其--config
与每个deploy命令一起随开关一起传递。如果不同,请替换您的配置文件的名称和路径。
按以下顺序部署服务很有用,但不是必需的。也强烈建议打开一个附加的终端窗口并运行命令juju debug-log
。这将在所有服务运行时输出日志,这对于故障排除很有用。
还建议juju status
定期运行命令,以检查每个服务是否已安装并运行正常。Juju将自动尝试从在线Charm Store获取最佳版本的护身符。如果要从受限或封闭的网络中进行安装,则可以预取所需的超级按钮。请参阅[有关脱机超级按钮的文档] [超级脱机]。
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
尽管现在已经部署了服务,但它们尚未连接在一起。当前每个服务都是独立存在的。我们使用juju add-relation
命令使他们彼此了解并建立任何相关的连接和协议。这些额外的配置由各个护身符自己照顾。
我们应该开始通过设置Keystone授权服务及其数据库来添加超级按钮之间的关系,因为许多其他连接都需要这样做:
juju add-relation keystone mysql
我们等到建立关系为止。完成后,以juju状态检查它:
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云现在正在运行,但是在准备使用之前,需要填充一些其他组件。
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 Cloud Platform(XCP)上作为管理程序。
部署RDO是一个快速简便的过程。设置OpenStack云大约需要15分钟,并且只需3个步骤即可。 http://openstack.redhat.com/Quickstart