本地部署:On-Premises
基础设施即服务:IaaS——Infrastructure as a Service
平台即服务:PaaS——Platform as a Service
软件即服务:SaaS——Software as a Service
ansible的分享网站pages.GitHub.con网站
Ansible基本要求是基于key验证,不用每次输入口令
*Saltstack :基于Python开发,需要部署agent(需要代理),执行效率更高,适用于1000+台
*Puppet:基于ruby开发,功能强,配置复杂、重型,适合于大型环境
Fabric:基于Python开发,agebtless不需要代理
Chef:基于ruby开发,国内应用少
Cfengine
func
前三个重要,后面了解
Ansible是模块化的,用什么功能调用什么模块
有三个关键模块
1)Paramiko: 基于ssh开发的,ssh不用远程代理,
2)PyYAML:用来编写剧本的语言
3)Jinja2:模板语言
支持自定义模块:
支持playbook编排任务:就像编角本用于执行定期任务,循环任务
幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况,执行同一任务第一次成功,后续不会报错,一般用于playbook,脚本调试,执行成功的不会执行,不成功的报错,调试好再执行,
工作原理:
1.需要一个主角清单,知道哪些主机被控制
2.可以通过单一的(模块)命令控制,也可以用playbook控制
playbook也是一个一个模块执行的
3.连接插件,基于ssh协议实现,
*也可以通过公/私 云开发接口实现ansible管理
4.CMDB配置管理数据库通过absible远程管理
通过web界面(通过开发接口开发的界面)通过底层调用ansible的命令远程管理
Ansible重要组成:
ANSIBLE PLAYBOOK:任务剧本,编写ansible任务集的配置文件,顺序执行,通常是JSON格式的YML文件
INVENTORY:管理主机清单
MODULES:执行命令的模块,可以自定义
PLUGINS:模块功能的补充,如连接类插件,循环插件,变量插件等
API:供第三方程序调用的应用程序编程接口
ANSIBLE:组合上面的绿框,ansible命令工具,核心工具
end