Fork me on GitHub

初识Ansible

初识ansible。

Ansible是什么

官方的描述如下

1
Simple, agentless and powerful open source IT automation

Ansible是近年越来越火的一款基于Python开发的运维自动化工具,2012.02月出现至今,已成为排名前10的python项目。

其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率,常用于软件部署自动化、配置自动化、管理自动化、系统化系统任务、持续集成、零宕机平滑升级等。

Ansible名字来源

Ansible名字其实是来源于作者喜欢的一本书——奥森·斯科特·卡特的《安德的游戏》,该书中Ansible是一种能跨越时空的即时通信工具,使用Ansible可以在相距数光年的距离远程实时控制前线的舰队战斗。Michael DeHaan希望借这个名词比喻控制远端大量的服务器,因此便将自己的这款产品命名为Ansible。

为什么选择Ansible?

  1. noagents:不需要在被管控主机上安装任何客户端
  2. noserver:无服务器daemon进程
  3. 基于SSH工作
  4. 安装简单
  5. Redhat收购
  6. Ansible galaxy
  7. 支持docker的模块管理

Ansible架构

Ansible没有客户端,因此底层通信依赖于系统软件,Linux系统下基于OpenSSH通信,Windows系统下基于PowerShell,管理端必须是Linux系统,使用者认证通过后在管理节点通过Ansible工具调用各应用模块将指令推送至被管理端执行,并在执行完毕后自动删除产生的临时文件。

ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

(1)、连接插件connectionplugins:负责和被监控端实现通信;

(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3)、各种模块核心模块、command模块、自定义模块;

(4)、借助于插件完成记录日志邮件等功能;

(5)、playbook:剧本执行多个任务

Ansible任务执行流程

好记性不如烂笔头,生命不息,学习不止!

分享