什么是Ansible

Ansible是一种IT自动化运维工具,它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署或者是零停机滚动更新
Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。
Ansible的主要目的是简单易用,它还非常注重安全性很可靠性,具有最少的移动部件,使用OPenSSH进行传输(使用其他的传输和拉取模式作为代替方案)
Ansible以无代理方式管理机器。永远不会出现如何升级远程守护进程或无法管理系统的问题,因为卸载了守护进程。由于OpenSSH是最受同行评审的开源组件之一,因此安全风险大大降低
Ansible是分散式的 - 它依赖于您现有的操作系​​统凭据来控制对远程计算机的访问。如果需要,Ansible可以轻松连接Kerberos,LDAP和其他集中式身份验证管理系统

Ansible架构

架构图说明:

public/private cloud:   公有云私有云
Users: 管理用户(使用Ansible的人员)
Ansible: Ansible软件
Host invertory: 被管理的主机清单
Playbooks: Ansible编排工具
Core Modules: Ansbile 核心模块
Custom Modules: Ansible 自定义模块
Plugins: 其他插件(通过插件来记录日志)
Connection Plugins: 连接插件(使用此插件连接被控端)
Host1..HostN: 被控端主机

Ansible工作机制

温馨提示:

Ansible没有客户端,因此底层通信依赖于系统软件,Linux系统下是基于OPenSSH通信,windows系统下是基于PowerShell,管理端必须是Linux,使用者认证通过后在管理节点通过Ansible工具调用各应用模块指令推送到被管理端执行,并在执行完毕后自动删除产生的临时文件

工作机制图说明:

CMDB:                  配置管理数据库(使用Ansible的一种方式)
USERS: 管理用户(使用Ansible的人员)
ANSIBLE PLAYBOOK: Ansible任务剧本(任务集)
INVERTORY: 被管理的主机清单
API: 供第三方程序调用的应用程序编程接口
MODULES: AnsIble使用的模块(内置模块,自定义模块)
PLUGINS: Ansbile使用的插件(模块功能的补充方式,这里包括很多的插件)
HOSTS: 被控端主机
NETWORKING: 被控端网络设备(交换机,路由器等)

Ansbile主要的组成部分:

ANSIBLE PLAYBOOK:      Ansible任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件
INVENTORY: 被管理的主机清单(在/etc/ansbile/hosts文件中)
MODULES: AnsIble使用的模块(内置模块,自定义模块)
PLUGINS: Ansbile使用的插件(模块功能的补充方式,如连接类型插件,循环插件,变量插件,过滤插件等)这个功能很少使用
API: 供第三方程序调用的应用程序编程接口
ANSIBLE: 组合inventory,api,modules,plugins的绿框,可以理解为是ansible命令工具,其为核心的执行工具

Ansible特性

1) 模块化:调用特定的模块,完成特定的任务
2) 有Parmiko,PyYAML,Jinjia2(模板语言)三个关键模块
3) 支持自定义模块
4) 基于Python语言开发(可对其进行二次开发)
5) 部署简单,基于Python和SSH(默认以安装)
6) agentless(被控端无需安装Agent)
7) 安全,基于OPenSSH
8) 支持playbook编排任务
9) 幂等性:一个任务执行一遍和执行N遍效果一样,不会因为重复执行带来意外错误
10) 可以使用任何的编程语言写模块
11) YAML格式,编排任务,支持丰富的数据结构
12) 较强大的多层解决方案(多层概念:多个playbook的集合)

Ansible安装

更加刺激的安装教程请点击:https://www.cnblogs.com/brianzhu/p/10163899.html

Ansible--原理的更多相关文章

  1. ansible 002 连接被控端 inventory ansible.cfg ansible-adhoc ansible原理

    ssh用普通用户连接被控端 配置主机清单 (/etc/hosts域名解析为前提) [root@workstation ansible]# cat hosts servera serverb [root ...

  2. Ansible的原理与配置

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 Ansible原理 Ansible 是一款开源自动化平台.它是一种简单的自动化语言,能够在Ansible Playbook 中完美地描述 IT 应 ...

  3. 使用ansible kubectl插件连接kubernetes pod以及实现原理

    ansible kubectl connection plugin ansible是目前业界非常火热的自动化运维工具.ansible可以通过ssh连接到目标机器上,从而完成指定的命令或者操作. 在ku ...

  4. ansible笔记(一)--架构图以及工作原理

    一.ansible架构图 上图为ansible的基本架构,从上图可以了解到其由以下部分组成: 核心:ansible 核心模块(Core Modules):这些都是ansible自带的模块 扩展模块(C ...

  5. rh358 003 ansible部署双网卡绑定 DNS原理 bind正向解析

    双网卡绑定 绑定多张网卡成为逻辑口,从而实现链路冗余,以及数据流量的负载均衡 1.创建team口 [root@servera ~]# nmcli connection add type team co ...

  6. Ansible工具原理一

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命 ...

  7. Ansible入门笔记(1)之工作架构和使用原理

    目录 Ansible入门笔记(1) 1.Ansible特性 2.ansible架构解析 3.ansible主要组成部分 1)命令执行来源: 2)利用ansible实现管理的方式 3)Ansile-pl ...

  8. Ansible工作架构和原理

    特性 模块块化调用持定的模块,完成持定任务 有Paramiko,PyYAML,Jinja2(模板语言)三个关键模块 支持自定义模块 基于Python语法头现 部署简单,基于python和SSH(默认已 ...

  9. ansible 工作原理以及使用详解

    内容:1.ansible的作用以及工作结构2.ansible的安装以及使用3.ansible的playbook使用 一.ansible的作用以及工作结构        1.ansible简介:     ...

  10. 03: saltstack和ansible的区别和原理

    1.1 SaltStack.Ansible.Puppet比较 1.SaltStack 1. saltStack由Python编写,为server-client模式的系统,自己本身支持多master. ...

随机推荐

  1. kubernetes集群搭建(5):服务发现dns配置

    抱歉,多次尝试,均未成功,后续将通过二进制安装再次尝试

  2. 视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频

      视频下载四大神器—如何下载优酷/爱奇艺/腾讯/B站超清无水印视频  2018-07-11 |  标签»下载, 下载工具, 视频 又是视频下载,老生常谈的话题.阿刚同学已在乐软博客多次与大家分享推荐 ...

  3. Unicode 字符串排序规则(二):如何比较字符串

    一.UCA 简介 Unicode Collation Algorithm (UCA) 是 Unicode 规定的如何比较两个字符串大小的算法,也是事实上的标准.我们先来看下它的几个特征. 1.1 Mu ...

  4. [EXP]Huawei Router HG532e - Command Execution

    #!/bin/python ''' Author : Rebellion Github : @rebe11ion Twitter : @rebellion ''' import urllib2,req ...

  5. Xamarin.Android 无法检索到 Resource 问题

    错误提示:当前上下文中不存在名称"Resource" 解决方法: 1.看是否有其他错误,如果有其他错误优先解决.(其他错误导致无法感知到Resource) 2.重新生成解决方案.( ...

  6. .NET 动态向Word文档添加数据

    本文章主要用于在网页上填写数据动态填入Word模板中使用 首先要准备一个Word模板,然后在需要插入数据的位置插入书签,这样可以确定在网页上填入的数据可以插入到Word文档相应的位置. 在项目中要声明 ...

  7. odoo开发笔记 -- 字段增加唯一约束

    前台违反约束效果: 后台模型中定义代码: name = fields.Char(string="Name", copy=False) # 流水号 _sql_constraints ...

  8. Python中的几种矩阵乘法(转)

    一.  np.dot() 1.同线性代数中矩阵乘法的定义.np.dot(A, B)表示: 对二维矩阵,计算真正意义上的矩阵乘积. 对于一维矩阵,计算两者的内积. 2.代码 [code] import ...

  9. localStorage的存储、获取、删除操作

    var store={ // 保存 save:function(key,value){ localStorage.setItem(key,JSON.stringify(value)); }, // 获 ...

  10. Redis 内存模型

    了解 Redis 的 5 种对象类型(字符串.哈希.列表.集合.有序集合)的用法和特点的基础,了解 Redis 的内存模型,对 Redis 的使用有很大帮助,例如: 估算 Redis 内存使用量.内存 ...