001. Ansible简介
一 简介
Ansible是一款极其简单的自动化运维工具, 基于Python开发, 集合了众多运维工具(puppet, cfengine, chef, func, fabric)的优点。 实现了批量系统配置, 批量程序部署, 批量运行命令等功能。
Ansible是基于模块工作的, 本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块, Ansible只是提供一种框架。主要包括:

- Play books:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible依次执行多个任务,通常是JSON格式的YML文件;
- Host inventory: Ansible管理主机的清单,指定操作的主机, 是一个配置文件里面定义监控的主机;
- Modules:各种模块核心模块, command模块等,也包括自定义模块;
- Connection plugins: 负责和被监控端实现通信;
- Plugins:模块功能的补充,如连接类型插件、循环插件、变量插件等,可借助于插件完成更丰富的功能。
二 工作机制
用户使用Ansible或Playbook,在服务器中断输入Ansible的Ad-Hoc命令集或Playbook;- Ansible遵循预先编排的规则将Playbooks逐条拆解为Play;
- Play组织成Ansible可识别的任务(Task);
- Task会调用任务所涉及的所有模块(Module)和插件(Plugin);
- 读取Inventroy中定义的主机列表;
- 通过SSH认证(默认)将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果。
三 特性
- no agents: 不需要在被管控主机上安装任何客户端,只需SSH、Python即可,建议Python版本为2.6.6以上;
- no server: 无服务器端, 使用时直接运行命令即可;
- modules in any languages: 基于模块工作, 丰富的内置模块,可使用任意语言开发模块;
- yaml, not code: 使用yaml语言定制剧本playbook,易于管理,API简单明了;
- ssh by default: 基于SSH工作,整个过程简单、方便、安全,建议使用公钥方式认证;
- strong multi-tier solution: 可实现多级指挥。
四 优点
(1).轻量级, 无需在客户端安装agent, 更新时只需在操作机上进行一次更新即可;
(2).批量任务执行可以写成脚本, 而且不用分发到远程就可以执行;
(3).使用python编写, 维护更简单, ruby语法过于复杂;
(4).支持sudo。
五 应用场景
5.1 操作角度划分
- 文件传输:文件的本地传输和异地传输,所有文件的空间形态、时间形态变化均构成文件传输类操作;
- 命令执行:终端所有操作对系统来说都是指令的组成,对运维操作的用户行为来说,除文件传输以外的其他操作均可称为命令操作。
5.2 工作类型划分
- 应用部署
- 配置管理
- 任务流编排
001. Ansible简介的更多相关文章
- 001.Ansible简介与基本安装
一 自动化运维 1.1 运维的自动化发展历程 IAAS:infratructure as a Service PAAS:platform as a Service 平台及服务 SAAS:softwar ...
- 批量搞机(一):ansible简介、ansible安装
一.ansible简介 Ansible是2013年推出的一款IT自动化和DevOps软件,目前由Redhat已签署Ansible收购协议.其是基于Python研发,糅合了很多老运维工具的优点实现了批量 ...
- ansible简介安装配置
ansible简介 ansible是一款,自动化运维管理工具.顾名思义是用于批量去管理及安装服务及批量管理主机. ansible与saltstack对比 ansible优点:配置简单,部署容易除主管理 ...
- Ansible简介及常用模块
一.基础介绍 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...
- Ansible - 简介和应用自动化基础实践
installAnsible简介和应用自动化基础实践 一.引入: 1.1 如官方定义,Ansible is The simplest way to automate apps and IT infr ...
- Ansible 简介
Ansible 是一个开源的基于 OpenSSH 的自动化配置管理工具.可以用它来配置系统.部署软件和编排更高级的 IT 任务,比如持续部署或零停机更新.Ansible 的主要目标是简单和易用,并且它 ...
- 1、Ansible简介及简单安装、使用
参考Ansible权威指南:https://ansible-tran.readthedocs.io/en/latest/index.html 以下内容学习自马哥教育 Ansible: 运维工作:系统安 ...
- Ansible简介
概述 Ansible是一种自动化运维管理工具,无需安装客户端,通过SSH协议与节点通信. 架构 由上图可以看出Ansible由5个部分组成 Ansible:核心 Inventory:定义管理主机的清单 ...
- 1. Ansible 简介
目录 1. Ansible 是什么? 2. Ansible 特性 3. 控制主机需求 4. 被管理节点需求 1. Ansible 是什么? Ansible 是一个配置管理系统(configuratio ...
随机推荐
- Confluence 6 查看索引和提示
查看索引 Confluence 使用被称为 Lucene 的搜索引擎.如果你希望在你的 Confluence站点中查看更多有关索引的细节,你可以下载并且运行 Luke.Luke 是一个开发和诊断工具, ...
- Confluence 6 配置服务器基础地址示例
如果 Confluence 的安装是没有安装在非根目录路径(这个是上下文路径),然后服务器基础 URL 地址应该包括上下文地址.例如,你的 Confluence 正在运行在下面的地址: http:// ...
- Confluence 6 创建站点的导出文件
希望为你的站点创建一个 XML 导出文件: 进入 > 基本配置(General Configuration) > 备份和恢复(Backup & Restore). 选择 归档到备 ...
- 【JS】中ajax的URL中包含中文,后台接收乱码
[问题]ajax提交get请求,url中参数包含中文,后台接收到显示乱码. [解决方案]前台: function getSiteInfoByName(siteName){ var res; $.aja ...
- pytorch:修改预训练模型
torchvision中提供了很多训练好的模型,这些模型是在1000类,224*224的imagenet中训练得到的,很多时候不适合我们自己的数据,可以根据需要进行修改. 1.类别不同 # codin ...
- HashMap&线程
1.HashMap概念 HashMap是一个散列表,存储内容是键值对(key-value)的映射, HashMap继承了AbstractMap,实现了Map.Cloneable.java.io.Ser ...
- CF451E
一道不错的题,对排列组合能力的要求较高 题意:给定s个相同的小球放在n个不同的盒子里,可以不放,每个盒子有一个放的上限,求一共有多少种放法 解析:首先考虑没有上限的情况,这里比较好解决,采用隔板法,可 ...
- sass方式实现颜色平铺(红色--->紫色)
<!DOCTYPE html><html lang="en"><head> <link rel="stylesheet" ...
- Jmeter中使用外部的java文件
感觉在Jmeter中使用外部的Java文件比较方便,语法一样,而且可以直接引用,所以个人觉得这个功能还是蛮重要的,特别是在使用Jmeter的过程中,可能需要结合一定的业务场景进行判断等,那使用Jmet ...
- Python 开发的 IDE 和代码编辑器,你选择的哪一个?
为了方便,我会分两个大类去说明,一类是适用于软件开发的比较通用的编辑器或 IDE ,我们可以通过插件等形式支持 Python 的开发,另一个是专注于 Python 开发的编辑器或 IDE . 不过在此 ...