30分钟带你揭开运维自动化的面纱-Ansible业务自动化之路

本文由马哥教育运维部落~Ansible部落分享整理而来,Ansible原创翻译团队共同努力而得.Ansible最新消息可关注 http://www.178linux.com/doc/ansible/

1、作者介绍

08年开始接触linux,之后一起从事linux相关工作,先后就职于上海woyo,腾讯,汇联,诺亚等企业,马哥教育特约讲师

2、主题介绍

30分钟带你揭开运维自动化的面纱-Ansible业务自动化之路

难度指数: 2星(满星5星)

技术指数: 4星(满星5星)

理论指数: 3星(满星5星)

面向人群: 运维~技术流

本次分享重点: 跨“种族”业务发布自动化之路

其中:

练就18式,拿下自动化 时间关系本次不做重点讲解,后续会做为系列分享进行

AnsibleUi  -jumpserver  会邀请jumpserver创始人为大家做讲解,在现有精彩的基础上jumpserver下版更精彩  http://www.jumpserver.org/
后记分享目录 为错过直播的同学提供可重复收听的机会 http://www.osstep.com/

3、分享内容

第一章、情定Ansible

和谈男女朋友一样,如果不对眼再漂亮的对象也白搭,如果相互不了解,再牛也有被当成是拍黄片(PHP)的时候.

我选择PHP的原因,sorry,我选择Ansible的原因有如下几个方面
1. 去中心化作为 Ansible 发展至今的核心优势极具竞争力,最大的优势是人人皆可成为三军将领,迁移非常方便,要求也很简单,python 2.6+,pip/yum/apt简单的几条命令即可全盘搞定.据称该特性也会一直坚持下去,不确认是不是基于这个原因红帽才下决心收购了Ansible呢(个人推断也是“轻”的缘故).无论如何作为一个新秀如此成绩实在惊为天人.2. 简单:

和saltstack/puppet不同,不用class等高级语法即可满足业务日常所需;虽然devops是新一代运维必备,但万丈高楼平地起,devops也非简单几日就能信手拈来

和fabric不同,无需懂python任何语种即可快速上手掌握; 好吧,也不得不承认 fabric 是开发同时的最爱,几行简单的代码无需改变习惯就能完成心中所想,但应对项目日趋复杂,对开发能力要求也不断提高,且维护成本指数增加

最后,用官方原话形容Ansible简单的特性: Stupid simple3. 友情搜索:

众所周知,未来是关系搜索的时代.身边朋友的实践体验也是极为重要.想到saltstack,puppet不停反馈出来的问题,心中也是略有阴影,当然也不排除Ansible问题还没有暴露出来的可能,~~4. “大势所趋”

想想XEN,KVM,有了奶妈的支持,高低立显. 继Ansible之前自动化工具虽如雨后春笋,但未来还不一定“鹿死谁手”.

相关链接可参考

http://mp.weixin.qq.com/s?__biz=MjM5NzM0MjcyMQ==&mid=400027385&idx=1&sn=6c5a9bc02c4ab8e44fcf6a42f5162b1d&scene=23&srcid=11032zNVGDQsdTMAP1cYRDP9#rd当然人们总是喜欢追求完美,这里有一些对比,仅供大家茶余饭后打打牙祭以供消遣更多:

对比参见 黄博文

http://www.cnblogs.com/huang0925/p/4664608.html

ok Ansible的基础介绍到此结束

第二章:跨”种族”业务发布自动化之路

开始之前,先为小白们普及下发布流程.

如图为简单的发布流程,其中涉及到运维操作的有8步.相对脚本化,Ansible更多程度上

1. 降低了上手难度2. 保障了自动化质量3. 健壮了可扩展性。

举个例子:

PHP/JAVA项目的发布就底层而言有非常大的不同和实现机制,同时由于开发同学多样化需求,针对多套环境如何保障运维发布操作单一化简单化,Ansible的实现方式非常针对性的考验运维同学思维深度和全面性. Ansible在设计之初侧面帮运维同学不少忙,你会发现在运用的过程中会不自主的靠着Ansible的“规则”来,当然这些规则对运维架构框架是有利的。下面的例子简单来分析看看如图为我们当前业务的发布方式,现在还处于脚本自动化阶段,比较lower

化零为整

Ansible一次完整的发布可以非常灵活的按模块拆分,场景:

针对测试环境不希望人工参与的背景下:化零为整一键部署化整为零

针对正式生产环境操作繁多变更不定的背景下: 化整为零

Ansible的模块化 & tags 功能轻松驾驭有朋友当然会反问,上面我写个脚本轻松搞定

确实,我们后面会讲到,请稍安勿躁

运维同学SHELL脚本是必备技能,相比较devops而言,SHELL脚本的学习成本和上手难度几乎为零.再回头看Ansible的发布方式,结合SHELL脚本的参数调用,有没有觉得似曾相识,改变一个人的习惯何其难,所以Ansible playbook简单是运维的福音.

Yml语法清晰明了,规则简单,99%的功能都是一行命令即可实现.Ansible自带冥等判断机制也省去运维不省逻辑判断伤脑费心的人脑运算.

写playbook的过程就是一个思维整理的过程.

太过复杂的思维在写的过程中会无意中被简化

好的,上面的内容大家可以先消化1min,

第三章: 不同“种族”业务Ansible的处理方式

以PHP/JAVA多项目为例,有如ppt所示问题

公司现有PHP项目近10个,JAVA项目也纳入运维管理,后期也可能不断融入新项目,如何保证1. 现有操作习惯不变改变2. 简单一致的发布操作

越来越具挑战。

起初希望通过git命名规范来实现简化发布操作,但随之发现不可能,原因如下:1. 影响合作部门已有工作习惯2. 约束力太多阻力也在不断加大3. 沟通成本大4. 非核心功能开发支持力度不及自力更生来的快

最终方案:

多一层判断和roles模块,通过git的变量名来定义git拉取地址.

这个用ansible来实现简单是易如反掌

如此以来php,java均可在最大化不更改运维操作习惯的前提下完成业务的(工具)自动化发布优点:

沟通成本小

约束点少

缺点:

冗余模块变多

运维维护成本大,复杂程度增加

来简单对比下代码差异化程度可以看出差异化地方只在执行的服务器和进程管理的各类

再来看看代码量

第四章:练就18式,拿下自动化

好的,因为时间原因我们直接开始下章分享

关于自动化我们介绍到这里,下面开始

我们练就18式,拿下自动化

基础模块13式作为基础模块,熟悉掌握即能完全驾驭ansible日常工作90%自动化工作,简单指数5星

辅助模块5式拥备基础模块,同时配合辅助模块可使已有成果更上一层楼,简单指数 4星

再拥有 http://www.178linux.com/doc/ansible/ 中文网站协助,轻松上手☀

第四章:AnsibleUi -jumpserver

话说自动化怎么能停留在工具时代,但 tower 又收费,如何破?

jumpserver 完全开源的,堡垒机功能日趋完善,自动化发布平台底层也基于 Ansible 实现,更多精彩可参考http://jumpserver.org/最新功能:关于 AnsibleUi -jumpserver 我们只做简单介绍,后面会邀请创始人为大家做详细解读
☀

第五章:后记分享目录

分享目录及方式参考

会参考http://www.178linux.com/doc/ansible/翻译的内容按功能模块结合业务实践以场景化方式逐一讲解

问题反馈路径     http://www.178linux.com/qa/

重复收看         http://www.osstep.com

如何找到我们

微信群已近满,有兴趣的同学可加我微信申请加入,拒绝僵尸用户.

Qq群 372011984 如图也扫码

好了,今天的分享到此结束,谢谢大家的观赏

群友QA

问题1. 发布为啥是用ansible去打包的?

最小化最简化原则,运维需要懂的工具很多,需要熟练不会太多,精一通百的人毕竟少数,精力也是有限,就如用阿里云,ucloud 就推荐使用他们的“四大件”

问题2:ansible在上千机器的集群中有没有瓶颈?

这个我如实回答,我知道的还没有。数百台的应用是有的。但我觉得RedHat都不担心这个问题,我们更不需要担心,看看kvm,docker的发展就是指导

问题3: ansible在win上只支持nt不支持2003 如何解决

A: 只能说是所有开源软件的通病,window闭源已经深知其中的痛点,近些年不是一直有传言会开源吗?哈哈

问题4:ansible在上千机器的集群中有没有瓶颈?

有瓶颈,一次在千台以上建议salt,万台建议go自己写,主要是消息回收master受不了

问题5:我想知道部署的时候 有没有向移动端发展的趋势!

A: 有,前沿的大公司已经在用,如鹅厂,jumpserver.org也在首面放在 mobile的daemon

问题6:感觉ansibie异常的时候不好排错!有没有好的方法?

A: 这样问是因为你还不熟悉,多被磨磨就好. python的报错输出和shell一样简单。见过JAVA的复杂日志输出会深有体会,看完我们开发同学输出的日志再看ansible的报错输出是觉得好幸福。哈哈

问题7:我们可否跟监控服务器联动,一旦执行出错 马上报警,并且让系统提供出错日志

harrison A: ansible本身提供mail alert功能,你可以可以把ansible日志记录到syslog里面,用ELK 或者splunk来实现报警

Ansible原著翻译团队

【最新看点】

    1. Ansible翻译项目倒数第二期更新    
    2. 10月份 Ansible 专题分享,有料你就来;    
    3. 现在的翻译团队共11人,7位朋友一直坚持至今(见翻译页面底部),翻译项目为某海外朋友简历

    增光添彩,也更让我们心里得意满满;    
    4. py开发团队(致力类tower和cmdb开发)兴趣岗已满员,有兴趣的朋友可先报备,

    联系人: stanley (微信号: fengzhilinux)    
    5. Ansible专题分享,请把你想听到的想学到的录入到 http://www.178linux.com/qa/

    让我们看到听到,剩下的交给我们

Ansible部落

致力全球流行技术本土化

运维部落---Ansible部落群功能

1. Ansible的翻译工作马上就要结束进行最后的 review 阶段,你知道吗?

2. 为方便各位第一时间接受最新技术前沿,我们成立运维部落微信订阅号,除了每日分享,定期更新外,还有大虾不定期解惑,欢迎关注

遗留兴趣岗

翻译: 不限

1、qq微信群活跃管理员: 
2、devops: 已满如需可先报备

现微信群成员余30珍贵席位,入群请添加群主微信 fengzhilinux 申请。(我们拒绝僵尸用户)

扫一扫加qq群 ( 372011984 )

文章来源

http://www.178linux.com/doc/ansible/

作 者:

薛定谔的章鱼 & guli & 以马内利 & 黄博文 & evanescunt & - 透彻? &Linux 学习 stanley (顺序无先后)

请尊重作者劳动,转载请连同如下LOGO并声明转自运维部落

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2015-11-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算

爬了知乎60W个网页,发现了一些很有趣的东西

我们先讲讲爬虫,这10w个网页我没有写代码去实现抓取,当时在上班,不想花太多时间去抓取这些内容(flag)。所以就采用Chrome浏览器的插件Web Scrap...

952360
来自专栏知晓程序

资深产品经理实战:高尔夫引发的小程序思考

15120
来自专栏ThoughtWorks

庖丁解牛:产品需求分析|洞见

在庄子的《南华经》中有一则寓言。说是有位叫丁的厨师,替梁惠王杀牛, 其技法之娴熟,有行云流水一般的顺畅感。惠王就问他为什么有如此高超的技术。他回答说:“臣所喜好...

38570
来自专栏华章科技

史上最全的微信运营架构图!

如果你是一名新手运营,这个思维导图会让你系统性的了解你的工作有哪些,为你提供指导、查缺补漏。所以,如果一次无法记牢,那就收藏备用吧。

8910
来自专栏phodal

2017 年,我挖的那些开源软件坑

造轮子,是一个程序员的基本装逼技能。这些轮子可以的来源可以是: 我们日常工作中遇到的一些问题,提出的解决方案。 使用某个开源软件的过程中,发现它不能满足我们的需...

24070
来自专栏云计算D1net

开发者应该知道的 OpenStack 背后的设计准则

OpenStack是一种开源产品,得到了一大批志愿者和领薪代码贡献者的支持,它让人们意识到了一种全面审查的架构和一种深思熟虑的设计具有的重要性,这种架构和设计似...

36260
来自专栏数据派THU

数据蒋堂 | 计算封闭性导致臃肿的数据库

来源:数据蒋堂 作者:蒋步星 本文长度为1873字,建议阅读5分钟 本文讲述计算机的封闭性如何导致了臃肿的数据库。 许多大型用户的数据库(仓库)在运行多年之后,...

219100
来自专栏CIT极客

【极客周刊】支付宝PK微信?AI程序员面世?等等重大事件等你来看!

45660
来自专栏云计算D1net

云计算网络中混合WAN和SD-WAN的不同

21150
来自专栏我是攻城师

Linux 25周年:专访Linux之父Linus Torvalds

38280

扫码关注云+社区

领取腾讯云代金券