自动化运维工具一览
这里只对业内著名的开源配置自动化工具进行介绍。
Puppet:Puppet 是一种 Linux、UNIX、Windows 平台的集中配置管理系统,使用自有的 Puppet 描述语言,可管理配置文件、用户、cron 任务、软件包、系统服务等。Puppet 把这些系统实体称为资源,Puppet 的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。Puppet 采用 C/S 星状结构,所有客户端和一个或几个服务器交互。每个客户端周期地(默认为半个小时)向服务器发送请求,获得其最新配置信息,以保证与该配置信息同步。Puppet 使用一种建模方法来配置自动化配置清单,通过推送的方式来更新所有服务器。
Chef:该工具类似于 Puppet,它也是使用编程脚本来实现服务器、操作系统和应用软件自动化部署和更新的。Chef 使用 Git 编程语言,它能够提供非常详细和定制化的脚本,受到 IT 运维团队的青睐。
Ansible:Ansible 是一款基于 Python 的自动化运维工具,集合了众多运维工具(Puppet、Chef)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。管理节点上的 Ansible 将命令通过 SSH 协议(或者 Kerberos、LDAP)推送到被管理节点上并执行命令,通过这种方式能够在管理节点上控制一台或多台被管理节点,以执行安装软件、重启服务等命令。
Salt:Salt 在配置自动化脚本或者部署应用软件方面的功能类似于 Puppet 和 Chef。你可以通过使用 Python 或 PyDSL 编程语言创建定制化的脚本或模块,还可以下载预制模块。Salt 的最大优势在于其伸缩性和弹性能力。
Git:Git 是一个开源的分布式版本控制系统,用于 Linux 内核开发的版本控制工具,可以有效、高速地处理从很小到非常大的项目版本管理。与常用的版本控制工具 CVS、Subversion 等不同,它采用了分布式版本库的方式,不需要服务器端软件的支持(注:这需要区分使用的是什么样的服务器端,使用 HTTP 协议或者 Git 协议等不太一样。并且在 push 和 pull 时与服务器端还是有交互的),使源代码的发布和交流极其方便。Git 的速度很快,这对于诸如 Linux Kernel 这样的大项目来说自然很重要。Git 最为出色的是它的合并跟踪(merge tracing)能力。
Foreman:Foreman 是一个集成的数据中心生命周期管理工具,提供了服务开通、配置管理以及报告功能,与 Puppet 一样,Foreman 也是一个 Ruby on Rails 程序。与 Puppet 不同的是,Foreman 更多地关注服务开通和管理数据中心的能力,如 PXE 启动服务器、DHCP 服务器及服务器开通工具进行集成。Foreman 可以与 Puppet 集成使用,通常是作为 Puppet 的前端接入。Foreman 能够通过 Facter 组件显示系统目录信息,并且可以从 Puppet 主机报表中提供实时信息,能够自动化完成所有手工管理工作。Foreman 还能够管理大规模(当然也包括小规模)的企业级网络,可能有很多域、子网和很多 Puppet Master 节点。Foreman 也可以实现配置版本的回溯。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/ac17ead6654619502f8f5244b】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论