一、ansible的概述和运行机制
1、ansible概述
Ansible是一个部署一群远程主机的工具;Ansible通过SSH协议实现远程节点和管理节点之间的通信。理论上说,只要管理员通过ssh登录到一台远程主机上能做的操作,Ansible都可以做到。Ansible是python开发的,故依赖一些python库和组件,如:paramiko,PyYaml和jinja三个关键组件,我们不需要在节点中安装任何客户端、
2、ansible基本架构
ansible系统由管理节点和被管理节点组成,Ansible 在管理节点将 Ansible 模块通过SSH 协议推送到被管理端执行,执行完之后自动删除,可以使用 SVN、GIT 等来管理自定义模块及编排。
由上面的图可以看到 Ansible 的组成由一下几个部分组成:
Ansible: ansible的核心模块
Host Inventory:主机清单,也就是被管理的主机列表
Playbooks:ansible的剧本,可想象为将多个任务放置在一起,一块执行
Core Modules:ansible的核心模块
Custom Modules:自定义模块
Connection Plugins:连接插件,用于与被管控主机之间基于SSH建立连接关系
Plugins:其他插件,包括记录日志等
3、ansible任务执行方式
ansible执行自动化任务,分为两种执行放:
- ad-hoc:即ansible命令,命令行界面,单条命令的批量执行
- playbook:Playbook方式(剧本方式)
4、ansible的特点
- 部署简单,没有客户端,只需在主控端部署Ansible环境,被控端无需做任何操作;
- 模块化:调用特定的模块,完成特定任务
- 默认使用SSH协议对设备进行管理;
- 主从集中化管理;
- 配置简单、功能强大、扩展性强;
- 支持API及自定义模块,可通过Python轻松扩展;
- 通过Playbooks来定制强大的配置、状态管理
- 对云计算平台、大数据都有很好的支持;
- 具有幂等性:一个操作在一个主机上执行一遍和执行N遍的结果是一样的
二、安装并配置Ansible管理两个节点
1、环境拓扑
主机 | IP | 角色 | 安装软件 |
cong11 | 192.168.121.11 | ansible管理服务器 | ansible |
cong12 | 192.168.121.12 | clent | |
cong13 | 192.168.121.13 | clent |
注:运行ansible时ÿ