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中的管理主机列表, 并行的在这些主机中执行配置的任务, 最后等待执行返回的结果。