001. Ansible简介

一 简介

Ansible是一款极其简单的自动化运维工具, 基于Python开发, 集合了众多运维工具(puppet, cfengine, chef, func, fabric)的优势。 实现了批量系统配置, 批量程序部署, 批量运行命令等功能。python

Ansible是基于模块工做的, 自己没有批量部署的能力。真正具备批量部署的是ansible所运行的模块, Ansible只是提供一种框架。主要包括:安全

001

  1. Play books:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible依次执行多个任务,一般是JSON格式的YML文件;
  2. Host inventory: Ansible管理主机的清单,指定操做的主机, 是一个配置文件里面定义监控的主机;
  3. Modules:各类模块核心模块, command模块等,也包括自定义模块;
  4. Connection plugins: 负责和被监控端实现通讯;
  5. Plugins:模块功能的补充,如链接类型插件、循环插件、变量插件等,可借助于插件完成更丰富的功能。

二 工做机制

 

  1. 002用户使用Ansible或Playbook,在服务器中断输入Ansible的Ad-Hoc命令集或Playbook;
  2. Ansible遵循预先编排的规则将Playbooks逐条拆解为Play;
  3. Play组织成Ansible可识别的任务(Task);
  4. Task会调用任务所涉及的全部模块(Module)和插件(Plugin);
  5. 读取Inventroy中定义的主机列表;
  6. 经过SSH认证(默认)将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果。

三 特性

  1. no agents: 不须要在被管控主机上安装任何客户端,只需SSH、Python便可,建议Python版本为2.6.6以上;
  2. no server: 无服务器端, 使用时直接运行命令便可;
  3. modules in any languages: 基于模块工做, 丰富的内置模块,可以使用任意语言开发模块;
  4. yaml, not code: 使用yaml语言定制剧本playbook,易于管理,API简单明了;
  5. ssh by default: 基于SSH工做,整个过程简单、方便、安全,建议使用公钥方式认证;
  6. strong multi-tier solution: 可实现多级指挥。

四 优势

    (1).轻量级, 无需在客户端安装agent, 更新时只需在操做机上进行一次更新便可;ruby

    (2).批量任务执行能够写成脚本, 并且不用分发到远程就能够执行;服务器

    (3).使用python编写, 维护更简单, ruby语法过于复杂;框架

    (4).支持sudo。运维

五 应用场景

5.1 操做角度划分

  • 文件传输:文件的本地传输和异地传输,全部文件的空间形态、时间形态变化均构成文件传输类操做;
  • 命令执行:终端全部操做对系统来讲都是指令的组成,对运维操做的用户行为来讲,除文件传输之外的其余操做都可称为命令操做。

5.2 工做类型划分

  1. 应用部署
  2. 配置管理
  3. 任务流编排
相关文章
相关标签/搜索