Ansible(1):简介和基本概念

Ansible(1):简介和基本概念

https://blog.csdn.net/weixin_42890981/article/details/82593814

https://www.cnblogs.com/yanjieli/p/10969089.html

https://blog.51cto.com/191226139/2066936

1.1. Ansible是什么?

ansible是一个开源产品,用于自动执行资源的配置管理和应用程序部署。基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)优点,只需要使用ssh协议连接,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。

 

1.2. 常用的自动化运维工具技术特性比较

 

 

1.3. Ansible能做什么

ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作。

比如:同时在100台服务器上安装nginx服务,并在安装后启动它们。

比如:将某个文件一次性拷贝到100台服务器上。

比如:每当有新服务器加入工作环境时,你都要为新服务器部署某个服务,也就是说你需要经常重复的完成相同的工作。

这些场景中我们都可以使用到ansible

 

1.4. Ansible特点

  • ansible不需要单独安装客户端,ssh相当于ansible客户端。
  • ansible不需要启动任何服务,仅需要安装对应工具即可。
  • ansible依赖大量的Python模块来实现批量管理。支持API及自定义模块,可通过Python轻松扩展;
  • ansible playbook 采用yaml配置,对于自动化任务执行过一目了然
  • 提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。

 

1.5. Ansible基础架构

https://www.linuxprobe.com/ansible-formwork-2.html

 

 

 

  • 核心:ansible
  • 核心模块(Core Modules):这些都是ansible自带的模块
  • 扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
  • 插件(Plugins):完成模块功能的补充
  • 剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
  • 连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
  • 主机群(Host Inventory):定义ansible管理的主机

 

1.6. ansible 执行流程

 

 

 

简单理解就是Ansible在运行时, 首先读取ansible.cfg中的配置, 根据规则获取Inventory中的管理主机列表, 并行的在这些主机中执行配置的任务, 最后等待执行返回的结果。

 

posted on 2020-02-12 23:04  光阴8023  阅读(153)  评论(0编辑  收藏  举报