1 自动化运维工具
1.1 Ansible
1、Ansible简介
2、概念:基于python语言开发的一款轻量级集中化运维工具,它默认采用SSH的方式管理客户端,在主控制端部署Ansible环境,通过SSH远程管理被控主机(节点)。Ansible提供了各种模块对客户端进行批量管理,包括执行命令、安装软件、执行特定任务等。对于一些复杂的需要重复执行的任务,可以通过Ansible下的playbook来管理。
3、特点
部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作。
默认通过SSH协议对设备进行管理。
配置简单,功能强大。
指出API及自定义模块,可通过Python轻松扩展。
通过Playbook来制定强大的配置,状态管理。
对云计算平台、大数据有很好的支持。
注:Ansible是基于模块工作的,它本身只提供一个框架,并没有批量部署的能力,真正具有批量部署能力的是它所运行的模块。
2.1 Ansible架构
1、Ansible:核心引擎
Host Inventory:主机清单,定义的主机策略,默认是在Ansible的主机配置文件中定义节点,同时也支持自定义动态主机清单和指定配置文件位置。
Core Modles:核心模块,包含Ansible自带的模块,它们被分发到远程节点执行特定任务或匹配一个特定状态。
Custom Modles:自定义模块,如果核心模块不足以完成某个功能,则可以通过添加自定义模块对Ansible进行扩展。
Pulgins:插件,它用于补充模块功能,完成记录日志、邮件等功能。
Playbook:脚本,定义Ansible任务的文件,可以将多个任务定义在一个playboy脚本文件中,由Ansible执行。
Connection Pulgins:连接插件,Ansible通过连接插件实现与各个主机的连接,实现与被管节点通信。