《Ansible权威指南》一1.1 Ansible是什么

简介:

本节书摘来自华章出版社《Ansible权威指南》一书中的第一章,第1.1节,作者 李松涛 魏 巍 甘 捷 更多章节内容可以访问云栖社区“华章计算机”公众号查看。


1.1 Ansible是什么

随着移动互联、物联网、互联网+、大数据、云计算等大规模应用的催生推动,以及人们日常生活的互联网化,互联网的蓬勃发展不仅冲击影响着整个经济体,更对人们的生活理念影响深远。在体验到互联网带来的便利和舒适的同时,人们也不再满足于“可以用”,而是要“用得爽”,在政策、需求、利益、趋势等原因的刺激下,互联网的发展速度可想而知。众所周知,智能的背后意味着复杂,这一现象在互联网的发展中体现得淋漓尽致。在互联网迅猛发展的同时,运维这个工种也从默默无闻的后台逐步走向公众视野,被更多的人所知晓。早期公司业务有数十台、上百台服务器已经是非常庞大的规模,每个运维同时操作10~20台机器,忙碌地奔波于各电脑之间配置重启服务,数十人摩肩接踵的场面是何等壮观。只是每个人都在数十台机器上做同样的修改、配置、操作,如何保证每台机器的操作都完全一样呢?又如何保证其他所有人的操作都能准确无误、没有遗漏过失呢?更何况,随着互联网的迅猛发展,一个公司拥有几十台上百台机器早已不是稀奇事,巨型公司数以万计的机器都不在话下,再沿用老一套办法一台台地人工修改配置已然不现实,这该怎么办呢?相信此时你已然明白运维自动化具体是什么了。简单来讲,运维自动化就是将日常重复性的工作通过规则设定使其遵循预先既定规则,在指定的范围时间内自动化运行,但整个过程无需人工参与。而Ansible正是帮助运维人员实现自动化的工具之一。

Ansible是近年越来越火的一款运维自动化工具,其主要功能是帮忙运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率,常用于软件部署自动化、配置自动化、管理自动化、系统化系统任务、持续集成、零宕机平滑升级等。它丰富的内置模块(如acl、command、shell、cron、yum、copy、file、user等,多达569个)和开放的API接口,同时任何遵循GPL协议的企业或个人都可以随意修改和发布自己的版本。

Ansible在其官网上定义如下:Ansible is a radically simple IT automation engine。即Ansible是一款极其简单的IT自动化工具。这里特别使用了radically simple来形容Ansible的简单程度,在0.X版本的Ansible官网中,更“过分”地使用Stupid Simple来形容Ansible是“令人发指的简单”。在Ansible官网的通篇文档中也不时使用Incredibly Simples、Keep It Simple、Power+Simplicity等字眼,可见Ansible这款自动化工具的设计非常注重Simple的理念。但Ansible的功能却非常不简单,完全没有因为使用方式上的简单而缩水,其自身内置模块的数量达500多个,而且还在快速地增加新模块,以下是这些模块的覆盖面的大致分类。

系统层:支持的系统有Linux、Windows、AIX等,对应的模块有acl、cron、pip、easy_install、yum、authorized_key等大量的内置模块;

知名第三方平台支持:支持的云平台有AWS、Azure、Cloudflare、Openstack、Google、Linode、Digital Ocean等,对应的模块有ec2、azure_rm_deployment、cloudflare_dns、clc_aa_policy、glance_image、gc_storage、digital_ocean等;

虚拟化:VMware、Docker、Cloudstack、LXC、Openstack等,对应的模块有vmware_vmkernel、docker、cs_account、lxc_container、glance_image等;

商业化硬件:F5、ASA、Citrix、Eos等,对应的模块有bigip_facts、asa_acl、netscaler、eos_command等;

系统应用层:Apache、Zabbix、Rabbitmq、SVN、GIT等,对应的模块有apache2_module、zabbix_group、rabbitmq_binding、subversion、git等。

GitHub上有众多开源爱好者为Ansible贡献功能模块,这些模块完全可以满足日常工作所需。官方对模块也从使用者角度进行详细分类,如Cloud Modules(云主机模块)、Clustering Modules(集群模块)、Commands Modules(命令模块)、Database Modules(数据库模块)等。详细的模块分类可参考官方模块列表:httpdocs.ansible.comansiblemodules_by_category.html,该网址内容的更新速度非常快,如果公司在使用Ansible,建议最少两周关注一次。

Ansible名字其实是来源于其作者喜欢的一本书——奥森·斯科特·卡特的《安德的游戏》,该书中Ansible是一种能跨越时空的即时通信工具,使用Ansible可以在相距数光年的距离远程实时控制前线的舰队战斗。Michael DeHaan希望借这个名词比喻控制远端大量的服务器,因此便将自己的这款产品命名为Ansible。

Web界面是一款功能完善的管理工具的必备功能,Tower是Ansible的Web化管理界面,但免费版的容量只有10台主机,付费版则无容量限制。基于此原因,本书的第12~14章会介绍搭建属于自己的Web化管理界面的方法,并代码全开源,具体地址大家可从GitHub上下载,同时读者遇到的问题都可以通过QQ群“Ansible中文权威”咨询,或在微信公众号“运维部落”留言。

更多信息请参考: 

Ansible官方地址:httpsdocs.ansible.com;

GitHub地址:httpsgithub.comansibleansibleblobdeveldocsiterstindex.rst;

Ansible中文权威地址:httpwww.ansible.com.cn。

相关文章
|
Web App开发 运维 Python
《Ansible权威指南 》一 导读
对比主流的自动化工具SaltStack、Puppet等,Ansible给人最直观的感觉就是比较简单,而这也是笔者选择使用Ansible最重要的理由之一。因为笔者一直认为每个人精力有限,如腾讯早期的Ops技能培训希望个人同时兼备Ops和Dev的战略,但直到现在身边真正同时具备Dev和Ops能力于一身的人凤毛麟角。
4001 0
|
Shell Apache 数据安全/隐私保护
Ansible权威指南笔记(粗略)
# 在托管节点上安装 python 解释器 ansible myhost --sudo -m raw -a "yum install -y python2 python-simplejson" # 各个平台上安装 ansible http://www.
1481 0
《Ansible权威指南 》一1.9 本章小结
Ansible是运维自动化工具的后起之秀。本章前半部分我们学习了Ansible是什么,底层通信发展史,Ansible发展历程等概念性知识。后半部分我们详细介绍了Ansible安装部署方式,同时考虑本地复杂环境可能导致的部署问题,本章后半部分我们也引申介绍了Python多环境扩展管理,以方便大家应对部署过程中可能出现的各类问题。
1470 0
《Ansible权威指南 》一 3.5 本章小结
Ansible Ad-Hoc在运维日常工作中的作用举足轻重,日常工作中的临时并发性操作均通过Ad-Hoc协助完成,因此我们花了很多篇幅为大家介绍其使用及企业实践。
833 0
|
JavaScript 算法 Linux
《Ansible权威指南 》一3.4 Ad-Hoc用户与组管理
用户权限管理是运维日常最重要的管理工作之一,如生产环境禁用开发和测试人员登录变更,但测试环境的用户权限仍需耗费精力维护,这项工作大公司也存在(将测试环境交给测试或开发管理并不是每个公司都能做到的,但未来是趋势)。
2777 0
|
Web App开发 JavaScript 关系型数据库
《Ansible权威指南 》一 3.3 Ad-Hoc组管理和特定主机变更
Ansible也提供了简洁但强大的组管理功能。同时,我们也可能遇到只针对这组主机中一台或某些主机做变更的场景,针对这些复杂多变的企业场景,本节我们将深入了解Ad-Hoc组管理和特定主机变更,进一步了解Ansible如何应对复杂多变的企业环境。
2424 0
|
JavaScript 前端开发 Linux
《Ansible权威指南 》一3.2 Ad-Hoc命令集介绍
本节介绍通过Ad-Hoc命令集查看系统设置,通过Ad-Hoc研究Ansible的并发特性,通过Ad-Hoc研究Ansible的模块使用。俗话说,磨刀不误砍柴工。开始之前做一些简单的初始化检查,如系统时间正确与否、磁盘容量是否充足等,是很有必要的。
2321 0
|
Linux Shell
《Ansible权威指南 》一第3章 Ansible Ad-Hoc命令集
第2章介绍了Ansible的各项元素、系列命令、Inventory基础,以及Ansible与正则的结合使用,这些内容是掌握Ansible的基础,请务必熟练掌握。在前两章的基础上,本章为大家介绍Ansible Ad-Hoc命令集,通过模拟真实的企业案例和应用场景更深入地了解Ansible。
1183 0
|
Web App开发 JavaScript 前端开发
《Ansible权威指南 》一2.6 Ansible与正则
正则表达式(Patterns)是各类高级语言的必定支持的方法之一,Ansible也不例外。其Patterns功能等同于正则表达式,语法使用也和正则类同,这大大便利了运维的使用。其对于Ansible的灵活性有着极大贡献,该功能同样支持Ansible-playbook。其用法也非常简单。
3380 0
|
JavaScript 前端开发 Linux
《Ansible权威指南 》一Ansible命令用法详解
Ansible命令行执行方式有Ad-Hoc、Ansible-playbook两种方式,Web化执行方式其官方提供了付费产品Tower(10台以内免费),个人的话可以基于其提供的API开发类似的Web化产品。
4258 0