5款管理OpenStack服务器的开源工具

Python023

5款管理OpenStack服务器的开源工具,第1张

OpenStack是一个开源平台,可让你构建在商用硬件上运行的基础架构即服务(IaaS)云。OpenStack背后的技术由一系列项目组成,这些项目为云基础架构解决方案提供了各种组件。它可以处理数据中心内的大量存储和网络资源,既可以作为单独的云,也可以作为外部的公有云。

要管理OpenStack云基础架构,需要管理各个云服务的配置。OpenStack的主要优势在于它的水平可伸缩性,因此添加网络和存储可随着时间的推移来扩展云更加方便。

云可伸缩性的关键部分是建立和运行云,并因此进行扩展所需的时间价值,以及降低运营成本。为此,需要一个集成了配置管理系统的自动化部署和配置基础结构。许多开源工具可用于安装,管理和运行OpenStack云。

Chef是一个自动化框架,无论基础结构如何,它都可以轻松地将服务器和应用程序设置到任何实际,虚拟或云中。Chef是仅专注于其开发者用户群的产品。

它使用Ruby作为一种编程语言,并包含一个可搜索的门户,可以在其中获取社区贡献的技术。Chef自动执行管理配置,以确保正确且一致地配置系统。

Chef具有基于代理的架构,该架构在由中央主代理领导的情况下涉及每个VM或服务器实例上的客户端。Chef还以大量cookbook和文档形式获得广泛支持。它的一些功能包括:

Ansible是基础结构自动化工具,它支持配置系统,部署软件以及设置更高级的IT密集型任务,例如在安装更新时保持一致的部署和零停机时间。Ansible OpenStack模块可用于管理各种云操作。

Ansible不仅仅是简单的部署。Ansible的主要目标是简单和易用。它进一步着重于安全性和可靠性。Ansible提供了用于设置和管理OpenStack的强大工具-可以配置,配置和部署应用程序,并且可以在云之上运行。

它基于简单的无代理架构,因此无需在安装前配置VM或工作站。Ansible通常可以通过命令行与他们合作。它的一些功能包括:

Fuel是系统管理员基于GUI的工具,用于设置和管理OpenStack云。Fuel是OpenStack的上游项目,专注于自动化OpenStack和一系列第三方选项的部署和测试。

Fuel自动检测从网格连接的所有虚拟节点。它由几个单独的组件组成。某些组件也可以与Fuel分开单独使用,而无需进行任何修改,而某些组件的调整很少。以下是其一些功能。

Puppet可以在整个生命周期内计划,升级和管理节点。所有模块和配置均使用基于Ruby或Ruby本身的特定于Puppet的语言来制作,因此,将需要编程专家来扩展系统管理技能。它涉及Web UI和报告工具。

Puppet Enterprise允许使用主服务器上存在的预构建模块对节点进行实时管理。报告工具得到了全面的开发,提供了有关代理如何执行以及进行了哪些更改的深入详细信息。它的一些功能包括:

Compass用于OpenStack的自动化部署和管理。它降低了复杂性,并控制了数据中心服务器管理中的各种错误。它支持从裸机金属节点引导与任何云平台相关的服务器池。

Compass可协助系统管理员确定硬件,部署操作系统和管理程序,并提供全面的配置管理。其他一些功能如下。

自己装虚拟机,做一个base box出来,以便使用。本文主要针对ubuntu的base box的制作。

步骤如下:(环境 OS:ubuntu12.04_Desktop virtualbox:4.1.12)

1.在物理机安装好ubuntu系统,在此系统上安装virtualbox

2.下载一个需要的ubuntu版本的iso镜像

3.创建一个新的虚拟机

给虚拟机起个名字为”vagrant-precise32″

确保您分配足够的磁盘空间,40GB足够了。

确保默认的内存分配也不用太高,建议360M。

如果不需要,禁用音频,USB控制器等。大多数应用程序都不需要播放音乐!因此,节约资源,禁用这些功能。

确保网络控制器设置为NAT,为了端口转发正常工作。

4.启动虚拟机,安装ubuntu,确保配置如下(非强制,如打算分发此box,建议遵循如下约定)

Hostname:vagrant-[os-name],例:vagrant-ubuntu-Steve

Domain: vagrantup.com

Root Password: vagrant

Main account login: vagrant

Main account password: vagrant

5.安装完毕后,进入虚拟机

6.根据自己需要,安装一些常用软件

sudo apt-get -y install vim

7.创建admin组

sudo groupadd admin

8.添加vagrant用户到admin组

sudo usermod -G admin vagrant

9.修改sudoers文件

sudo vim /etc/sudoers #添加或修改如下行(有些发行版还需Disable requiretty):

Defaults env_keep=”SSH_AUTH_SOCK”

%admin ALL=NOPASSWD: ALL

10.安装puppet(chef没有计划装进去,如需要可安装ruby,rubygems,chef)

sudo apt-get install puppet puppetmaster

11.安装ssh

sudo apt-get install openssh-server

12.安装vagrant的public keys

mkdir ~/.ssh/

cd ~/.ssh

wget http://github.com/mitchellh/vagrant/raw/master/keys/vagrant

wget http://github.com/mitchellh/vagrant/raw/master/keys/vagrant.pub

mv vagrant.pub authorized_keys

13.Install virtual box guest additions(为了共享文件夹,端口转发等)

(1) First, build the necessary packages. You may have to look these up for your system, but they should be fairly similar. On Ubuntu and Debian based systems they are as follows:

$ sudo apt-get install linux-headers-$(uname -r) build-essential

(2) Next, make sure to insert the guest additions image by using the GUI and clicking on “Devices” followed by “Install Guest Additions.”. Then run the following to mount the CD Rom:

$ sudo mount /dev/cdrom /media/cdrom

(3) And finally, run the shell script which matches your system. For linux on x86, it is the following:

$ sudo sh /media/cdrom/VBoxLinuxAdditions.run

If you didn’t install a Desktop environment when you installed the operating system, as recommended to reduce size, the install of the VirtualBox additions should warn you about the lack of OpenGL or Window System Drivers, but you can safely ignore this.

14.清除缓存

sudo apt-get clean

15.关闭虚拟机,进入virtual box directory(~/VirtualBox VM/vagrant-precise32)

vagrant package –output ubuntu_32.box –base vagrant-precise32

总结:以上步骤完成后生成的ubuntu_32.box就可以拿来用了,用vagrant box add ,vagrant init等自己测试看看吧。

1、Agentless Agent

2、语言 Python Ruby

3、简单 可读性 可写行

4、性能 执行速度 管理节点数

5、细分场景支持 应用部署 配置管理 作业编排

1、如果机器规模非常小,少于20台完全可以手工来维护,因为一般情况下每台机器的配置都可能不大相同,使用手工管理是最有效率的。

2、随着机器规模的扩大,根据自己的实际情况选择对应的配置管理工具,比如说人员的技术栈、编写配置的的能力、对于管理节点数量以及执行速度要求等。一般情况下熟悉Python,使用Ansible是一种好的选择。

3、如果机器规模非常大,大于5000台,可以考虑使用侧重于编排类的工具使用,或者考虑自定义与扩展开源软件,或者考虑商业软件。

Python

Agentless

Have a GUI Partial

2012

2017-06-28 v2.3.2.0

Ansible is Simple IT Automation

SIMPLE POWERFUL AGENTLESS https://www.ansible.com/it-automation

SIMPLE

Human readable automation

No special coding skills needed

Tasks executed in order

Get productive quickly

POWERFUL

App deployment

Configuration management

Workflow orchestration

Orchestrate the app lifecycle

AGENTLESS

Agentless architecture

Uses OpenSSH and WinRM

No agents to exploit or update

Predictable, reliable and secure

Python

Agent Agentless

Have a GUI

2011

2017-07-14 v2.2.2

Salt is a new approach to infrastructure management built on a dynamic communication bus

https://docs.saltstack.com/en/latest/

REMOTE EXECUTION

EVENT-DRIVEN INFRASTRUCTURE

CONFIGURATION MANAGEMENT

Ruby, Erlang

Agent

Have a GUI

2009

2017-08-18 Chef Client 13.3.42

2017-08-18 Chef Server 12.16.9

Automate IT Infrastructure

https://downloads.chef.io/

ACCELERATE CLOUD ADOPTION

MANAGE BOTH DATA CENTER AND CLOUD ENVIRONMENTS

MANAGE MULTIPLE CLOUD ENVIRONMENTS

MAINTAIN HIGH AVAILABILITY

Ruby

Agent

Have a GUI

2005

2017-08-17 v5.1.0

Reduce the cost of maintaining your servers. Automate the configuration and management of your infrastructure with the next-generation open source server automation tool.

https://puppet.com/download-open-source-puppet

Discover resources within minutes.

Provision new nodes easily in cloud, hybrid or physical environments.

Configure a range of setups.

Orchestrate changes and events across clusters of nodes.

https://blog.gruntwork.io/why-we-use-terraform-and-not-chef-puppet-ansible-saltstack-or-cloudformation-7989dad2865c

http://blog.takipi.com/deployment-management-tools-chef-vs-puppet-vs-ansible-vs-saltstack-vs-fabric/

https://www.quora.com/Which-should-I-choose-Chef-Puppet-Ansible-SaltStack-Docker-or-something-else-if-I%E2%80%99m-looking-to-lead-an-effort-to-improve-automation-in-the-infrastructure-of-a-global-agency-with-dozens-of-simultaneous-client-specific-projects