PuppetOpenstack项目简介
Last updated
Last updated
PuppetOpenstack
项目是由PuppetLabs公司于2013年发起的开源项目,最初托管在Github上,半年后移入OpenStack CI体系。
PuppetOpenstack最初只有Keystone,Nova,Glance,Cinder等几个核心项目的modules,随后得到了Red Hat,Cisco,Mirantis等公司的广泛支持,在社区贡献者的持续努力下,PuppetOpenstack项目从Stackforge孵化项目演变成了OpenStack Offical项目,目前隶属于Openstack Goverance项目。目前已构成了了一套庞大而复杂的部署体系。
你可以通过以下链接找到有关PuppetOpenstack项目的更多细节说明:
Wiki(Out of date): https://wiki.openstack.org/wiki/Puppet
PuppetOpenstack社区对与其目标的定义如下:
to bring scalable and reliable IT automation to OpenStack cloud deployments.
目前用于部署OpenStack的工具已非常广泛,为什么要选择它呢?或者说从技术角度来看,OpenStack自动化部署工具应该如何做技术选型?
笔者认为有以下三点:
第一,PuppetOpenstack项目诞生于2013年,诞生时间早,参与贡献者众多,使得PuppetOpenstack项目非常成熟和稳定,这对于自动化运维来说是十分重要的考虑因素。
其次,2016年4月出炉的Openstack User Survey (https://www.openstack.org/user-survey/survey-2016-q1/landing)
下图选自该份报告,统计了关于主流部署工具种类和占有率的使用统计:
值得一提的是,图中Fuel和Packstack项目的核心部署功能直接使用的是PuppetOpenstack项目。因此,可以理解为有近乎一半的用户选择使用PuppetOpenstack部署Openstack,这对于百花齐放的开源世界来说,是非常可观而且有说服力的数字。
第三,欧洲原子能机构CERN使用Puppet管理着世界上规模最为庞大的OpenStack集群,总计超过了一万台服务器。这从用户角度证明了PuppetOpenstack可以支持大规模Openstack集群的部署。
现在我们先站在最高的山峰上,来看看这些伟岸的群山吧。
第一个印入我们眼帘的是Openstack服务相关的modules,目前puppetopenstack已经支持以下服务的配置和管理:
Alarming (Aodh)
Key Manager (Barbican)
Telemetry (Ceilometer)
Block Storage (Cinder)
DNS (Designate)
Image service (Glance)
Time Series Database (Gnocchi)
Orchestration (Heat)
Dashboard (Horizon)
Bare Metal (Ironic)
Identity (Keystone)
Shared Filesystems (Manila)
Workflow service (Mistral)
Application catalog (Murano)
Networking (Neutron)
Compute (Nova)
Load Balancer (Octavia)
Oslo libraries (Oslo)
Benchmarking (Rally)
Data processing (Sahara)
Object Storage (Swift)
Testing (Tempest)
Deployment (TripleO)
Database service (Trove)
Deployment UI (TripleO UI)
Root Cause Analysis (Vitrage)
Message service (Zaqar)
第二大山脉是工具类相关的modules,分别有:
Common Puppet library (OpenStackLib)
Common Ruby helper library (puppet-openstack_spec_helper)
Puppet OpenStack helpers (OpenStackExtras)
Virtual Bridging (OpenvSwitch)
Integration CI tools (Puppet OpenStack Integration)
Blueprints (Puppet OpenStack Specs) (hosted here)
Compliant tool (Cookiebutter)
Sync tool (Modulesync)
第三大块则是一些尚在开发阶段或者已经废弃的模块:
Storage (Ceph)
Monitoring (Monasca)
Composition Layer (deprecated in Juno) (OpenStack)
说明: 本书以Ocata版本为基础
如果你是第一次接触PuppetOpenstack,推荐从公共库和工具类模块
章节 的puppet-openstack-integration
一节开始,这节会介绍如何使用PuppetOpenstack模块快速部署一个All-in-One的Openstack服务。