之所以能早点下班,多亏看有了这篇 Ansible 工作原理图解!

本文样式、排版由网络工程师阿龙编辑 , 如需转载本样式风格、字体 , 请保留此信息 , 以尊重小编辛苦编辑 , 否则后果自负 。
Ansible是一个模型驱动的配置管理器 , 支持多节点发布、远程任务执行 。 默认使用SSH进行远程连接 。 无需在被管理节点上安装附加软件 , 可使用各种编程语言进行扩展 。 一、Ansible基本架构
之所以能早点下班,多亏看有了这篇 Ansible 工作原理图解!
文章图片
上图为ansible的基本架构 , 从上图可以了解到其由以下部分组成:
核心:ansible
核心模块(CoreModules):这些都是ansible自带的模块
扩展模块(CustomModules):如果核心模块不足以完成某种功能 , 可以添加扩展模块
插件(Plugins):完成模块功能的补充
剧本(Playbooks):ansible的任务配置文件 , 将多个任务定义在剧本中 , 由ansible自动执行
连接插件(ConnectiorPlugins):ansible基于连接插件连接到各个主机上 , 虽然ansible是使用ssh连接到各个主机的 , 但是它还支持其他的连接方法 , 所以需要有连接插件
主机群(HostInventory):定义ansible管理的主机二、Ansible工作原理
之所以能早点下班,多亏看有了这篇 Ansible 工作原理图解!
文章图片
之所以能早点下班,多亏看有了这篇 Ansible 工作原理图解!
文章图片
以上是从网上找到的两张ansible工作原理图 , 两张图基本都是在架构图的基本上进行的拓展 。 从上面的图上可以了解到:
1、管理端支持local、ssh、zeromq三种方式连接被管理端 , 默认使用基于ssh的连接---这部分对应基本架构图中的连接模块;
2、可以按应用类型等方式进行HostInventory(主机群)分类 , 管理节点通过各类模块实现相应的操作---单个模块 , 单条命令的批量执行 , 我们可以称之为ad-hoc;
3、管理节点可以通过playbooks实现多个task的集合实现一类功能 , 如web服务的安装部署、数据库服务器的批量备份等 。 playbooks我们可以简单的理解为 , 系统通过组合多条ad-hoc操作的配置文件 。
三、ansible的七个命令
安装完ansible后 , 发现ansible一共为我们提供了七个指令:ansible、ansible-doc、ansible-galaxy、ansible-lint、ansible-playbook、ansible-pull、ansible-vault 。 这里我们只查看usage部分 , 详细部分可以通过“指令-h”的方式获取 。
1、ansible[root@localhost~]#ansible-h
Usage:ansible[options]
ansible是指令核心部分 , 其主要用于执行ad-hoc命令 , 即单条命令 。 默认后面需要跟主机和选项部分 , 默认不指定模块时 , 使用的是command模块 。 如:
[root@361way.com~]#ansible192.168.0.102-a'date'
192.168.0.102|success|rc=0>>
TueMay1222:57:24CST2015
不过默认使用的模块是可以在ansible.cfg中进行修改的 。 ansible命令下的参数部分解释如下:
之所以能早点下班,多亏看有了这篇 Ansible 工作原理图解!
文章图片
之所以能早点下班,多亏看有了这篇 Ansible 工作原理图解!
文章图片
2、ansible-docansible-doc-h
Usage:ansible-doc[options][module...]
该指令用于查看模块信息 , 常用参数有两个-l和-s , 具体如下:
//列出所有已安装的模块
#ansible-doc-l
//查看具体某模块的用法 , 这里如查看command模块
#ansible-doc-scommand
3、ansible-galaxyansible-galaxy-h
Usage:ansible-galaxy[init|info|install|list|remove][--help][options]...
ansible-galaxy指令用于方便的从https://galaxy.ansible.com/站点下载第三方扩展模块 , 我们可以形象的理解其类似于centos下的yum、python下的pip或easy_install 。 如下示例: