Ansible 学习不迷茫∶如何将Ansible学至精通

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

三分钟内,请给我Ansible所有资料


我赶紧Google了一下Ansible的资料,对它做个简介。

Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。

Ansible能批量配置、部署、管理一大堆的主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作。

例如,下面的操作(看不懂没关系表示将Ansible所在主机上的/etc/my.cn文件拷贝到mysql主机组内的所有主机的/etc/目录下,mysql主机组可以是单台主机,也可以是很多台主机,这可以由用户自己来定义。

$ ansible mysql -m copy -a "src=/etc/my.cnf dest=/etc/"

其实,固定在一台主机上去控制其它主机,通过ssh工具或一些基于ssh二次开发的简单工具也能实现,但Ansible吸引人的地方在于它提供的playbook能批量整合不同主机上执行的不同任务,同时还提供一些额外的机制让用户可以去协调这些任务的执行策略。

Ansible是基于模块工作的,它只是提供了一种运行框架,它本身没有完成任务的能力,真正执行操作的是Ansible的模块,比如copy模块用于拷贝文件到远程主机上,service模块用于管理服务的启动、停止、重启等。

这有点像Shell,Shell自身提供的操作是很有限的,但是它提供了一个很友好的平台让实现各种功能的命令得以执行。Ansible自身可以类比于Shell自身,Ansible的各种模块可以类比于Shell下各种命令。

Ansible一个比较鲜明的特性是Agentless。

即无Agent的存在,它就像普通命令一样,并非C/S软件,也只需在某个作为控制节点的主机上安装一次Ansible即可,通常它基于ssh连接来控制远程主机,远程主机上不需要安装Ansible或其它额外的服务。

Ansible的另一个比较鲜明的特性是它的绝大多数模块都具备幕等性(idempotence)所谓幂等性,指的是多次操作或多次执行不影响结果。比如算术运算时数值加是幂等的,无论加多少次结果都不会改变,而数值加1是非幂等的,每次加1结果都会改变。再比如执行systemct stopxx命令来停止服务,当发现要停止的目标服务已经处于停止状态,它什么也不会做,所以多次停止的结果仍然是停止,不会改变结果,它是幂等的,而systemct restartxx是非幂等的。Ansible的很多模块在执行时都会先判断目标节点是否要执行任务,所以,可以放心大胆地让Ansible去执行任务,重复执行某个任务绝大多数时候不会产生任何副作用。

[root@real-server2 ~]# ansible 192.168.179.102 -m file -a "path=/usr/local/nginx/ state=directory"
192.168.179.102 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true,    #ansible判断该目录不存在,所以在192.168.179.102创建了该目录
    "gid": 0, 
    "group": "root", 
    "mode": "0755", 
    "owner": "root", 
    "path": "/usr/local/nginx/", 
    "secontext": "unconfined_u:object_r:usr_t:s0", 
    "size": 6, 
    "state": "directory", 
    "uid": 0
}
[root@real-server2 ~]# ansible 192.168.179.101 -m file -a "path=/usr/local/nginx/ state=directory"
192.168.179.101 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, #ansible判断该目录存在,所以啥都不干
    "gid": 0, 
    "group": "root", 
    "mode": "0755", 
    "owner": "root", 
    "path": "/usr/local/nginx/", 
    "secontext": "unconfined_u:object_r:usr_t:s0", 
    "size": 151, 
    "state": "directory", 
    "uid": 0
}

如何学习并学好Ansible?


Ansible作为一个自动化管理工具,它的用法可以非常简单,只需学几个基本的模块,就像ssh命令一样去使用,就能完成一些简单的批量配置管理功能。它的用法也可以非常难,需要学习大量Ansible自身的知识,而且还需要学习Ansible中涉及到的额外知识。比较悲催的是Ansible的知识体系比较庞大,它的知识板块也比较零散,想要构建一个比较完善的Ansible知识体系确实稍有难度,这也往往会让我们对深入Ansible无处下手甚至产生迷茫感,相信不少学习过Ansible的人对此应该都有所体会。

其实,Ansible的知识虽多,但这些知识点本身是死的,**需要什么功能学什么功能就可以,总有一天可以吞下绝大多数的知识点。**但这并不够,实际的环境是非常灵活且复杂的,**使用Ansible去管理配置时,需要关注很多任务流程和逻辑,**如果编写的任务没有逻辑,使用Ansible很可能会让你知道一口大锅从天而降是一种什么样的体验,所以需要去协调Ansible中的各个任务,协调各个任务是Ansible的另一难点。

最后一个难点,我个人认为是**写出适合自己公司环境的可复用(即一次编写多次使用)的playbook或role。**这要求熟悉如何应对各种需求和逻辑,对知识点也了然于心,这需要很强的综合能力。要掌握Ansible,需要∶

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值