ansible的简单应用的简单应用
一、初识ansible
1、ansible是新出现的自动化运维工具
ansible是一个配置管理和应用部署工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric、
SaltStack )的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量
部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。
2、ansible在生产环境当中的应用
自动化部署应用
自动化管理配置
自动化持续交付
自动化(aws)云服务器管理
3、ansible的优点
(1).ansible糅合了众多老牌运维工具的优点,基本上pubbet和saltstack能实现的功能全部能实现;
(2).轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
(3).ansible是一个工具,ansible不需要启动服务,仅仅只是一个工具,可以轻松的实现分布式扩展;
(4).批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
(5).ansible是一致性,高可靠性,安全性设计的轻量级自动化工具;
(6).使用python编写,维护更简单,ruby语法过于复杂;
4、ansible特性
(1)、no agents:不需要在被管控主机上安装任何客户端;
(2)、no server:无服务器端,使用时直接运行命令即可;
(3)、modules in any languages:基于模块工作,可使用任意语言开发模块;
(4)、yaml,not code:使用yaml语言定制剧本playbook;
(5)、ssh by default:基于SSH工作;
(6)、strong multi-tier solution:可实现多级指挥
5、ansible的基本架构 (ansible是模块化的 它所有的操作都依赖于模块)
1.connectior plugins (连接插件):用于连接主机,用来连接被管理端
2.core modules (核心模块):连接主机实现操作,它依赖于具体的模块来做具体的事情
3.custom modules (自定义模块):根据自己的需求编写具体的模块
4.plugins (插件):完成模块功能的补充
5.playbooks(剧本):ansible的配置文件,将多个任务定义在剧本中,由ansible自动执行
6.host inventory (主机清单):定义ansible需要操作主机的范围
7.架构图↓: