Ansible

1. Ansible定位:让自动化简化我们的工作

2. Ansible是一个开源软件,提供配置管理和应用程序部署等项目通用的管理功能,通过特性语言来描述各种资源对象,可以管理linux和windows上的资源。
3. 它是由Michael DeHaan基于Python语言编写而成,2012年发布第一个版本,并于2015年10月被Red Hat收购。它与其他同类的自动化管理工具的不同在于,Ansible是无代理的(采用的是"拉模式")通过SSH协议的方式来完成工作。
4. 特点:
 开发 基于Python语言实现
 部署 基于Python和SSH、agentless实现简单部署
 安全 基于OpenSSH加密方式来传输
 三大关键模块:Paramiko、PyYAML、Jinja2
 格式 YAML格式,支持丰富的数据结构
 编排 支持playbook自动化方式编排任务
 分层 基于角色特性实现多层解决方案
5. 企业中的应用:
 Dev开发环境
 Test测试环境
 Pre预发布环境
 Master生成环境
6. 功能:
 1.远程执行:批量对多台主机执行远程命令
 2.配置管理:批量修改配置
 3.事件驱动:比如修改配置后重启;只修改配置文件,不重启;修改配置文件后,重新加载;远程启停服务管理;
 4.二次开发,因为是python开发的,可以与Django结合
 5.任务编排:利用playbook进行一套框架部署
7. 架构
 1、connection plugins:用来连接被管理端
 2、核心模块core modules:连接主机实现操作,它依赖于具体的模块来做具体的事情
 4、plugins:完成模块功能的补充
 5、playbook:将多个任务定义在剧本中,由ansible自动执行
 6、inventor:定义ansible需要操作主机的范围,默认文件在/etc/ansible/hosts