运维服务器管理工具——Ansible的特点介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。原创不易,各位勉之。 https://blog.csdn.net/LL845876425/article/details/81148642

Ansible是一款轻量级的服务器集中管理软件,它默认采用SSH的方式管理客户端,部署简单,只需要在跳板机或主控端部署Ansible环境,被控端无需进行任何操作。Ansible是基于Python开发的,由Paramiko和PyYAML两个关键模块构建,它的各种模块可用来实现对客户端进行批量管理(执行命令/安装软件/指定特定任务等),对于一些较为复杂的需要重复执行的任务,可以通过Ansible下的playbook系统来管理。

Ansible跟Fabric一样;都是基于paramiko开发的。paramiko是一个纯Python实现的SSH协议库。因此Fabric和Ansible还有一个共同点就是都不需要在远程主机上安装客户端,因为它们都是基于SSH来和远程主机通信的。

关于Ansible的更多详细介绍请参考官方网址http://www.ansibleworks.com。

相比较于其他自动化运维工具,Ansible的优势有很多,具体如下:

  • 轻量级,无需在客户端安装agent,更新时只需在操作机上进行一次更新即可。
  • 批量任务执行可以写成脚本,而且不用分发到远程就可以执行。
  • 使用Python编写,维护更简单。
  • 支持sudo,
  • Ansible社区非常活跃。Ansible本身提供的模块非常丰富,第三方资源多。

2015年,红帽公司(Red Hat)宣布收购Ansible,在产品层面,Ansible符合Red Hat希望通过开放式开发提供无障碍设计和模块化架构的目标,主要体现在以下几个方面。

Ansible易于使用:这点从下面这两个例子可见一斑。一是,Ansible的playbook使用了人类可读的YAML代码进行编写,简化了自动化流程的编写和维护;二是,Ansible使用标准的SSH连接来执行自动化流程,不需要代理,更容易融入已有的企业IT环境。

Ansible是模块化的:Ansible提供了400多个模块,而且还在不断增加,可用于扩展该产品的功能。这是Red Hat希望在其管理的产品中提供的一个重要功能。

Ansible是一个非常受欢迎的开源项目:在GitHub上,Ansible拥有将近13000颗星和4000个分支。另外据Redmonk统计,Hacker News提及Ansible的次数也在飞速增长。

在资产组合方面,Ansible符合Red Hat希望的提供多层架构、多层一致性和多供应商支持的目标,主要体现在以下几个方面。

Ansible支持多层部署:按照设计,Ansible通过VM和容器为多层应用程序的部署和配置提供支持。这意味着组织可以将同一应用程序的不同组件自动部署到运行效率最高的层上。比如,Ansible可以同时在Vmware vSphere服务器虚拟环境中管理VM和客户操作系统,在OpenStack IaaS云上部署和管理实例,在OpenShift PaaS云上部署应用程序。

Ansible为架构的多个层次带来一致性:借助Ansible,可以通过编程操作计算架构中从基础设施到应用程序之间的每一层。比如,Ansible可以自动化包括网络、存储、OS、中间件和应用程序层在内的所有配置工作。

Ansible支持异构IT环境:Ansible可以自动配置来自许多供应商的各种技术,而不只是Red Hat的技术。比如,Ansible既支持Linux,也支持Windows;Ansible使IT组织可以管理各种ISV和IHV技术,比如硬件F5 BIG-IP和Citrix NetScaler到Amazon Web服务和Google云计算平台。

参考文档http://www.infoq.com/cn/news/2015/10/Red-Hat-DevOps。

另外,从Ansible1.7版本开始,Ansbile加入了支持管理Windows系统的模块,限于篇幅的原因,对此这里不做介绍。有兴趣的朋友可以参考官网http://docs.ansible.com/ansible/list_of_windows_modules.html。

猜你喜欢

转载自blog.csdn.net/LL845876425/article/details/81148642