这是Ansible系列课程第一节,为什么要学习Ansible?介绍Ansible与DevOps的关系,什么是Ansible,以及学习Ansible哪些好处。
该系列课程前后章节都是有关联性的,对于初学者建议按顺序阅读,也可以选择特定的章节了解单个知识点。
前言
先跟大家闲聊一下,现在的社会大多数人都特别焦虑,也特别浮躁,包括我自己。
一是现在每天的信息量特别大,充斥着你的大脑,娱乐的,科技的,股票的,房地产的,世界格局的等等,大脑都统统接收,处理,消耗了脑力,但回过头一看对自己有用的并不多。
二是我们对知识沉淀不够,总以为看过了几本书,刷了几个视频,听了几次讲座就认为掌握了这些知识。殊不知这些对我们来说只是一个一个零散的知识点。根据学习金字塔,这些都属于被动学习,并且听讲和阅读的知识留存率只有5%-10%。如果要转换为自己的知识,就要主动学习,用讨论、实践的方式去参与、去亲身经历。基于此,我也在思考更有效的学习方法,对于软件工具来说,我们不仅要知道工具是什么,还要能够把环境搭起来,在实际的场景中去应用。最主要的是这些都是自己亲自完成的,错了就改正,直到正确为止。这也是DevOps文化中非常重要的一点:持续改进。
好了,我们言归正传,这个系列是关于Ansible的。Ansible是目前DevOps落地过程中非常重要的一个工具,而且也是目前用的最多的自动化配置管理工具。在这个系列课程中,我会采用理论和实践相结合的方法,不仅介绍Ansible的每个功能特性是什么,怎么用,还会一步一步的去完成每一个实操。
如果想了解更多的软件工具,幂次平台是个好地方,这是一个关于工具的共享平台,不仅有工具的介绍,还有具体的部署脚本。
Ansible与DevOps的关系
因为Ansible属于一个DevOps的落地工具,我们先介绍一下Ansible和DevOps的关系。
最近这几年很多企业都开始实施DevOps,DevOps能解决什么问题呢?有的人说可以快速的部署软件,有的人说可以提高代码的质量,有的人说可以为企业带来收益等等。总之,DevOps肯定是有用的,只管实施就行了。这句话前半句是没问题的,现在市场上已经不是在讨论DevOps有没有用的问题了,而是如何去落地,如何去实施?后半句给人的感觉就是,只要我们组建了DevOps团队,用开源工具搭建了流水线就DevOps了。有句话说的好“懂得了很多道理,却依然过不好这一生”,企业实施DevOps也一样,DevOps理论,实践都明白,但真正做好的并不多。
那么DevOps跟我们要介绍的Ansible有什么关系呢?前面提到过,DevOps可以加快软件的交付,那么怎么才能加快软件的交付呢?自动化啊。能骑车就不要走路,能自动化的就绝不要手动。我们想想软件开发过程中,哪些阶段是可以自动化的。下面是软件开发的整个过程。
软件开发前面的需求,设计和开发几个阶段主要还是跟变幻莫测的用户需求和别具匠心的人类创造性有关,这很难通过自动化的方式实现。后面的测试、部署和运维这些都是针对开发阶段产出的制品有关,将制品部署到测试环境、预览环境或者生产环境,对制品进行测试,对制品的运行态进行监控、检查以保证服务可用性。因此Ansible在软件开发全生命周期中的位置如下,是处于开发人员产出制品之后交个测试、部署直到生产环境的阶段。
Ansible在软件开发生命周期中的位置什么是Ansbile
我们先看一下下面这些情况在日常工作中是不是经常遇到:
1、要在100台服务器上安装部署服务,要一个一个安装吗,能不能批量?
2、又有一台服务器加入了,还需要手动再次部署吗,能不能自动化?
3、每次部署都出问题,不是少配置,就是少文件,能不能固化部署步骤,自动化部署?
这些看似简单的操作,重复执行100次,你试试,不崩溃也给整抑郁了。不要着急,Ansible都能很好的帮你解决这些问题。
Ansible是一个由RedHat开发的自动化配置管理工具。软件研发全生命周期中跟软件部署,系统运维中那些具有固定流程的、重复性的工作都交给Ansible完成。Ansible可以带来这几个好处:
提升效率:Ansible的脚本一旦编写一遍,就可以自动化执行,提高了环境搭建、软件安装、服务部署的效率,进而提高软件交付的效率。
专注创新型工作:这样团队才有更多的时间专注于创新型的工作,也就是前面的需求、设计和开发。(注意:这里并不是指传统意义上的业务系统开发,在DevOps时代,没有纯粹的开发和运维,而是开发运维和运维开发。运维人员从重复性工作中解脱后,可以开发自动化运维平台等)。
版本控制和知识沉淀:Ansible是基础设施即代码的理念,可以像管理代码一样去管理安装部署过程,不仅能够追踪脚本变更的历史,而且也可以沉淀知识,有人离职也不会带走,新人加入也能快速上手。
ansible是一个自动化配置管理工具Ansible的功能特性
虽然Ansible能带来这么多好处,但其他类似的工具也能实现啊,为什么要选择Ansible呢?
我先找来了一份权威报告为此站台,在2020年Q3 Forrester Wave:Infrastructure automation platforms报告中指出,Ansible在基础设施自动化领域处于领导者地位。也就是全球的开发者都认同Ansible所具有的功能特性,才使得Ansible立于世界自动化之林。
Ansible处于Leader位置光有名号可不行,得看看Ansible有哪些真本事,下面这几个是Andible的立足之本:
简单:首先是学习简单,Ansible脚本采用YAML语法格式,不需要其他的编码技能就能完成Ansible脚本的编写,即便是初学者也很快就能上手。其次是执行简单,Ansible的任务都是按从上到下的顺序依次执行,每个步骤都执行一个特定的任务,一次编写随时执行。
强大:Ansible的强大之处在于集成了众多的模块和插件,涉及IT运维的众多领域,比如:软件安装,网络配置,流程编排,配置管理等。因此Ansible能够满足IT运维领域几乎所有的复杂场景。
无代理:Ansible采用无代理模式,不需要在管理主机上安装任何程序,通过SSH即可实现任务的执行,更加有效和安全,这也是Ansible与其他配置管理工具的不同,如puppet。
三大特点Ansible的就业前景
我了解到了Ansible的确是一个不错的自动化工具,那么目前市场上对Ansible的需求量怎么样呢,学完之后对我以后的职业发展有帮助吗?下面这个图是百度趋势里自2011年到现在关于ansible的一个趋势图,可以看到从2013年创立开始就一直备受青睐并快速发展,近几年热度更是居高不下。
Ansible在百度搜索中的趋势对于就业岗位来说,只要涉及到DevOps,运维开发等岗位,都会有对Ansible的要求。下面是从拉钩招聘上摘取了两个,一个是字节跳动一个是建信金科,涉及互联网、金融等行业,我相信其他的行业和企业有类似。
招聘信息 招聘信息总结
下面我们总结一下为什么要学习Ansible。首先,我们处在一个DevOps时代,作为任何一个DevOps落地实践者都应该学习Ansible。其次,Ansible本身是一个非常不错的强大的自动化配置管理工具,是一款优秀的工具,能够真正为企业提高软件交付效率,能带来实实在在的好处。再次,Ansible能为自己的职业生涯添砖加瓦,提升自己的竞争力。
从下一节开始我们进入Ansible的系列学习,希望本系列课程对大家有所帮助。
网友评论