什么是 Ansible

  • 开源部署工具,也是一个自动化运维工具
  • 开发语言:Python

Ansible 的特性

  • 模块化部署管理:调用特定的模块,完成特定任务
  • 三个关键模块:Paramiko(python 对 ssh 的实现),PyYAML,Jinja2(模板语言)
  • 安全:基于 OpenSSH 协议通讯
  • 跨平台:支持 Linux、Win、UNIX、物理机、虚拟机、云平台、网络
  • 部署简单,无需编译:基于 Python 和 SSH(默认已装),agentless(免代理),无需代理不依赖 PKI(无需 SSL)
  • 支持自定义模块:支持任何编程语言编写模块(二次开发)
  • 幂等性:一个任务执行一遍和执行 n 遍的结果是一样的,不因重复执行而带来意外情况
  • 支持 playbook 编排任务,YAML 语法格式,编排任务,支持丰富的数据结构
  • 强大的多层解决方案 role
  • 支持异构 IT 架构

Ansible 的应用场景

  • 批量修改系统配置
  • 批量程序部署
  • 批量运行命令

Ansible、Cherf、Saltstack 的不同

Saltstack

  • Ruby 语言编写
  • C/S架构
  • 配置需要 Git 依赖
  • Recipe 脚本编写规范,需要 Ruby 编程经验

Saltstack

  • Python 语言编写
  • C/S架构
  • 模块化配置管理
  • YAML 脚本编写规范
  • 适合大规模集群部署

Ansible

  • Python 语言编写
  • 无 Client
  • 模块化配置管理
  • Playbook 脚本编写规范
  • 易于上手,适合中小规模快速部署

Ansible 最大的优势

  • 符合最近几年流行的敏捷开发流程,快速开发快速部署交付
  • 我们需要有高效、敏捷的部署工具,加快产品交付
  • 兼容主流云计算下所有用到的基础工具

Ansible 的架构

  • ANSIBLE PLAYBOOKS :任务剧本,编排定义 Ansible 任务集的配置文件,由 Ansible 顺序执行,通常为 json 格式的 YAML 文件
  • INBENTORY:需要 Ansible 管理主机的清单列表  /etc/anaible/hosts
  • MODULES:Ansible 的执行命令的功能模块,多数为内置核心模块,也可以自定义
  • PLUGINS:模块功能补充,比如链接类型插件、循环插件、变量插件、过滤插件等,不常用
  • API:供第三方程序调用的应用程序编程接口
  • HOSTS:待 Ansible 管理的主机集
  • NETWORKING:网络

它们互相之间都是通过 SSH 互相调用

Ansible 命令执行来源

  • USERS:普通用户
  • PLAYBOOKS:任务剧本
  • CMDB:配置管理数据库,通过 API 调用
  • PUBLIC/PRIVATE CLOUD:公有云、私有云,通过 API 调用

Ansible 的概念

Control node

控制节点

  • 可以是任何安装了 Ansible 的计算机,但不能是 Window 系统
  • 可以从任意控制节点运行命令和 playbook,然后调用  /usr/bin/ansible 或  /usr/bin/ansible-playbook
  • 可以将任何安装了 Python 的计算机作为控制节点,比如笔记本电脑、台式机、服务器

Managed nodes

受管节点

  • 受管节点不需要安装 Ansible
  • 它可以是通过 Ansible 管理的网络设备或服务器
  • 它也可以称为 hosts(主机)

Inventory

清单

  • 需要 Ansible 管理的主机清单
  • 它也可以称为 hostfile(主机文件)
  • 它有多种方式去管理组织主机的信息

Modules

模块

  • 执行代码单元
  • 在 python 中,一个模块是一个 .py 文件,这里也可以这样理解,每个模块都会有特定的功能
  • 可以通过 task 调用单个模块,也可以通过 playbook 调用多个不同的模块
  • Ansible 目前有 3000+ 个模块

Tasks

任务 

  • 行动单元
  • 可以使用临时命令(ad-hoc)每次执行一个任务

Playbooks

剧本(直译)

  • 保存任务的有序列表,方便可以按顺序重复运行这些任务(复用性)
  • playbook 可以包括变量、任务
  • 采用 YAML 语法格式

Ansible(1)- 简单介绍的更多相关文章

  1. Ansible简单介绍(一)

    一 :ansible简单介绍 此名取自 Ansible 作者最喜爱的<安德的游戏> 小说,而这部小说更被后人改编成电影 -<战争游戏>. 官网地址:https://www.an ...

  2. Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...

  3. python paramiko 模块简单介绍

    背景,公司的很多服务包括数据库访问都需要通过跳板机访问,为日常工作及使用带来了麻烦,特别数python直接操作数据更是麻烦了,所以一直想实现python 通过跳板机访问数据库的操作. 首先了解到了 p ...

  4. Python常用的库简单介绍一下

    Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable ...

  5. Ansible常用模块介绍及使用(2)

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)–技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几个 ...

  6. [原创]关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

  7. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  8. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  9. yii2的权限管理系统RBAC简单介绍

    这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...

  10. angular1.x的简单介绍(二)

    首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...

随机推荐

  1. HTTP/1.1 有点慢,我想优化下!

    问你一句:「你知道 HTTP/1.1 该如何优化吗?」 我想你第一时间想到的是,使用 KeepAlive 将 HTTP/1.1 从短连接改成长链接. 这个确实是一个优化的手段,它是从底层的传输层这一方 ...

  2. RocketMQ同一个消费者唯一Topic多个tag踩坑经历

    最近做的项目的一个版本需求中,需要用到MQ,对数据记录进行异步落库,这样可以减轻数据库的压力,同时可以抗住大量的数据落库.这里需要说明一下本人用到的MQ是公司自己在阿里的RokectMQ的基础上进行封 ...

  3. BigDecimalUtil:对double类型的数据进行处理(加减乘除、四舍五入、类型转换、比较两个值的大小)

    该工具类所在的包:import java.math.BigDecimal; 项目中使用该工具类的相关代码: // 如果Output表中已经存在该节点(插入数据的节点)的信息,则修改Output表中的这 ...

  4. SpringCloud之服务调用

    1.Ribbon 1.1负载均衡LB 全称Load Balance,将用户的请求平摊到多个服务器上,从而达到系统的HA.集中式LB:在服务消费者和服务提供者之间使用独立的LB设施,如硬件,由该设施负责 ...

  5. Go中的if-else判断

    目录 go中的if-else判断 一.语法 go中的if-else判断 一.语法 if 条件 { //符合上面条件的执行 } else if 条件{ //符合上面条件的执行 } else { // 不 ...

  6. MarkDown简单语法回顾

    写在前面: 本文是我的第一篇博客文章,希望与大家共同交流.分享我们热爱的技术,努力成为一名优秀的软件工程师! 进入正文 使用MarkDown记笔记已经有些时候了,编辑器是使用的sublime text ...

  7. pytorch(05)计算图

    张量的一系列操作,增多,导致可能出现多个操作之间的串行并行,协同不同的底层之间的协作,避免操作的冗余.计算图就是为了解决这些问题产生的. 计算图与动态图机制 1. 计算图 计算图用来描述运算的有向无环 ...

  8. pandas函数的使用

    一.Pandas的数据结构 1.Series Series是一种类似与一维数组的对象,由下面两个部分组成: values:一组数据(ndarray类型) index:相关的数据索引标签 1)Serie ...

  9. VirtualBOX 虚拟机 FreeBSD配置

    pkg装virtualbox-ose-additions, 再将 Section "Device"Identifier "Card0"Driver " ...

  10. C# 基础 - Json 之间的转换

    这里举例两种方式. 1. Newtonsoft.Json.JsonConvert 需要引用外部的 Newtonsoft.Json.dll /// <summary> /// 将json字符 ...