本节书摘来自华章出版社《Ansible权威指南 》一书中的第3章,第3.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区“华章计算机”公众号查看。
第3章
Ansible Ad-Hoc命令集
第2章介绍了Ansible的各项元素、系列命令、Inventory基础,以及Ansible与正则的结合使用,这些内容是掌握Ansible的基础,请务必熟练掌握。在前两章的基础上,本章为大家介绍Ansible Ad-Hoc命令集,通过模拟真实的企业案例和应用场景更深入地了解Ansible。作为Ansible最常用的命令,本节内容显得尤为重要。
3.1 Ad-Hoc使用场景
所谓Ad-Hoc,简而言之是“临时命令”,英文中作为形容词有“特别的,临时”的含义。Ad-Hoc只是官方对Ansible命令的一种称谓,大家按各自习惯称呼即可。笔者平时一般称之为“临时操作”或Ansible命令。
从功能上讲,Ad-Hoc是相对Ansible-playbook而言的,Ansible提供两种完成任务方式:一种是Ad-Hoc命令集,即命令ansible,另外一种就是Ansible-playbook了,即命令ansible-playbook。前者更注重于解决一些简单或者平时工作中临时遇到的任务,相当于Linux系统命令行下的Shell命令,后者更适合于解决复杂或需固化下来的任务,相当于Linux系统的Shell Scripts。通常,深入Ansible是从接触Ansible-playbook开始的,灵活运用Ansible-playbook才能更好地体会到Ansible的强大所在。
具体来讲,什么样的场景下我们需要用到Ad-Hoc,什么样的情况下需要使用Ansible-playbook呢?
(1)需要使用Ad-Hoc的场景
情景1:
节假日将至,我们需要关闭所有不必要的服务器,并对所有服务器进行节前健康检查。
情景2:
临时更新Apache &Nginx的配置文件,且需同时将其分发至所有需更新该配置的Web服务器。
(2)需要使用Ansible-playbook的场景
情景1:
新购置的服务器安装完系统后需做一系列固化的初始化工作,诸如:定制防火墙策略、添加NTP时间同步配置、添加EPEL源等。
情景2:
业务侧每周定期对生产环境发布更新程序代码。
其实两者之间关系用急行军(Ad-Hoc)和远征军(Ansible-playbook)来形容可能更容易理解。急行军需轻装上阵,注重灵活机动;远征军需稳扎稳打,注重长远规划。正如我们上面所讲,Ad-Hoc更注重于解决一些简单或者平时工作中临时遇到的任务,Ansible-playbook更适合于解决复杂的或需固化下来的任务。后面的章节中我们会介绍大量企业实战场景,相信大家会有更深刻的体会。