2024年5月2日发(作者:)
配置管理工具
——Ansible
作者:陈栋,新炬网络技术专家。
说到ansible,了解的人都会提到ansible通过ssh连接与远端机器进行通信,远端
机器无需安装agent。
看似无条件,实则有条件的远端要求:
从官方文档中我们可以了解到。Ansible采用python语言开发,采用ssh通信,不需
要安装代理,没有数据库,同时没有后台驻留程序。但一切的前提是你安装的是一个正常
无精简的linux操作系统,因为它仍然需要远端机器上有sftp或scp,同时至少安装了
python2.4以上版本,而且在python2.5及以下版本还需要安装python的插件python-
simplejson,才能使用更全面的功能。对操作系统有开启selinux,还需要安装插件
libselinux-python。另外,对于windows操作系统,那其实就更加有要求。不仅要求
powershell至少是3.0或以上版本,还需要安装pywinrm。顿时看着平台上一大堆的
windows 2003,只能泪流满面了。
欣慰的服务中心端:
说完了远端的要求,再来看服务中心端的要求。简简单单,揽括了RedHat、Debian、
OS X和BSDS(Windows除外)等安装有python2.6的任何机器上运行。脑子了立刻想到的
是,便捷性的ansible中心控制端,对新项目中大量繁复的集成工作或许是一个很好的工
具。
Ansible的架构:
1
1、
2、
3、
4、
5、
Connation Plugins:基于ssh,负责与远端机器进行通信。
Host Inventory:定义管理的主机或主机组。
Moudule:各个核心模块和自定义模块。
Plugins:借助插件完成记录日志、邮件等。
PlayBooks:简单的翻译就是剧本,真正实现简化配置管理和多机器部署
的基础。
Ansible的核心模块命令:
1、 Ansible-doc命令
查询ansible 模块的详细信息
Ansible-doc “模块名称”
例:
2、 ping模块命令
测试远程机器的通信状态
Ansible 主机 –m ping
例:
2
3、 setup模块命令
查看远程主机的一些基本信息
Ansible 主机 –m setup
例:
4、 command模块命令
在远程机器上执行命令
Ansible 主机 –m command –a “命令”
3
例:
5、 raw模块命令
类似command模块,支持管道传递
Ansible 主机 –m raw –a “命令”
例:
6、 shell模块命令
执行远程机器上的shell/python脚本
4
7、 script模块命令
在远程机器执行主控上的shell/python脚本
ansible与其它工具的选择:
由于网上大把的横向对比,在此就不再重复对比。只根据个人经验,谈谈面对各类配
置管理工具,我们到底该如何选择。
在讲述如何选择选择之前,先说一下为什么要使用配置管理工具。
首先,当然因为有数据中心规模越来越大,通过配置管理工具,提高工作效率,使配
置管理更加简单化,从而将时间花在更高级别的事情上去。
其次,通过配置管理工具,可以降低更新错误、操作错误、防止不法行为、甚至为启
用审计功能。
最后,从企业层面上,可以从几种方式评估使用自动化的配置管理,其所能带来的收
益和好处。
目前,市面上流行的开源配置管理工具主要为chef、puppet、saltstack和本文介绍
的ansible。
可能有人会说,chef和puppet重点在配置上,saltstack和ansible重点在配置管理
上。然后就是各自开发语言、工具的学习、各自的优缺点等等。但其实,做为一名运维人
员个人认为,在配置管理工具的选择上,不外乎以下三点。
第一, 目前是否已经有自己的配置管理工具,是否能满足自己目前的需求。如果都
满足,何必因为切磨杀驴。如果不满足,是否可以通过定制开发,通过插件
等方式去完善工具。而不是一棍子打死,替换了目前的配置管理工具。毕竟
培养一个人甚至一个团队重新去研究、定制和使用一个目前符合需求的工
具,所花的时间和成本是无形的。
第二, 对于之前没有配置管理工具,首先需要明确自己的需求,其次要了解自身运
维团队的优势,然后还要的运维环境和基础架构。如果都了解了,那么从工
具的学习、到后续开发、再到投入试用,到最后的正式落地。那么如何选择
其实很清晰了。
第三, 如何你说自己的还是不清楚该如何选择。那就一一进行说明。开发能力足够
强大,更加注重自己的需求通过开发实现,那么chef和puppet都是不错的
选择。能通过自主开发去管理业务应用的配置。其中puppet还是目前这四款
工具中最成熟的。相反,saltstack和ansible更符合运维和系统管理员的
要求,两者相比chef和puppet更精简,saltstack拥有高扩展性和强大功
能。Ansible也一样拥有强大功能,同时最重要的一点,没有代理、不需要
数据库,也没有后台驻留程序。可以让你更快更迅速的在各种繁杂的基础架
构去迅速推广。
总结
chef、puppet、saltstack和ansible都是目前流行的配置管理工具,为什么以
ansible来展开,除了目前很流行,也是因为它有自己的优势,是一款不可多得的好工
具。学习的目的在于学以致用,最后希望本文对你有所帮助和启迪。
5
发布者:admin,转转请注明出处:http://www.yc00.com/news/1714663582a2490836.html
评论列表(0条)