软件简介
Ansible 是一款自动化运维工具,基于 Python 开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
功能特点
-
部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作
-
默认使用 SSH 协议对设备进行管理
-
有大量常规运维操作模块,可实现日常绝大部分操作
-
配置简单、功能强大、扩展性强
-
支持 API 及自定义模块,可通过 Python 轻松扩展
-
通过 Playbooks 来定制强大的配置、状态管理
基础架构
-
Ansible:Ansible 核心程序。
-
HostInventory:记录由 Ansible 管理的主机信息,包括端口、密码、ip 等。
-
Playbooks:YAML 格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能。
-
CoreModules:核心模块,主要操作是通过调用核心模块来完成管理任务。
-
CustomModules:自定义模块,完成核心模块无法完成的功能,支持多种语言。
-
ConnectionPlugins:连接插件,Ansible 和 Host 通信使用
任务执行
Ansible 系统由控制主机对被管节点的操作方式可分为两类,即 adhoc 和 playbook
-
ad-hoc 模式(点对点模式) 使用单个模块,支持批量执行单条命令。ad-hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令,就相当于 bash 中的一句 shell 命令。
-
playbook模式 (剧本模式) Ansible 主要管理方式,也是 Ansible 功能强大的关键所在。playbook 通过多个 task 集合完成一类功能,如 Web 服务的安装部署、数据库服务器的批量备份等。可以简单地把 playbook 理解为通过组合多条 ad-hoc 操作的配置文件。
批处理实战
环境准备
软件安装
登录 ansible01,执行安装命令
1 |
|
主要程序
-
/usr/bin/ansible 主程序
-
/usr/bin/ansible-doc 配置文档
-
/usr/bin/ansible-playbook 定制自动化任务,编排剧本工具
-
/usr/bin/ansible-pull 远程执行命令的工具
-
/usr/bin/ansible-vault 文件加密工具