什么是 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. io流+网络+线程池 实现简单的多客户端与服务器端通信

    1 import java.io.IOException; 2 import java.io.InputStream; 3 import java.io.OutputStream; 4 import ...

  2. 微信小程序:删除时提示是否删除

    代码如下: wx.showModal({ title: '提示', content: '确定要删除吗?', success: function (sm) { if (sm.confirm) { // ...

  3. websocket断网消息补发

    注册irealtime 首先去irealtime网站注册一个账号,然后创建一个应用,注册过程请参考获取开发者账号和 appkey 创建页面 <!DOCTYPE html> <html ...

  4. 【HTB系列】靶机Vault的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Kali: 10.10.14.213 靶机地址:10.10.10.109 先用nmap探 ...

  5. Django批量插入数据和分页器

    目录 一.ajax结合sweetalert实现删除按钮动态效果 二.bulk_create批量插入数据 1. 一条一条插入 2. 批量插入 三.自定义分页器 一.ajax结合sweetalert实现删 ...

  6. Dubbo之高级特性

    Dubbo 注意当启动服务时,该服务会占用本机一个端口号,故在一台电脑启动多个服务时需要在配置文件中更占用本机的端口号 <!--服务占用本机的端口-当本机启动多个服务时须保持不同--> & ...

  7. 公钥基础设施PKI利用SRAM物理不可克隆函数PUF实现芯片标识唯一性

    下面给出PKI利用SRAM PUF实现芯片标识唯一性的方法思路: PKI利用SRAM PUF实现芯片标识唯一性的方式 (1)使用PUF原因 物理上不可克隆函数利用硅制造的自然变化来产生每个芯片统计上唯 ...

  8. java 入门环境搭建

    Java帝国的诞生 1972年C诞生 1982年C++诞生 1995年JAVA诞生,为了实现真正的跨平台,在操作系统之上又加了抽象层,叫做JAVA的虚拟机,统称JVM 三高问题: 高可用 高性能 高并 ...

  9. 在Asp.Net Core 5 中使用EF Core连接MariaDB

    升级到Asp.Net Core 5,使用EF Core连接MariaDB,使用的Nuget包Pomelo.EntityFrameworkCore.MySql也升级到了5.0.0-alpha.2,然后发 ...

  10. Ubuntu pip版本的安装,卸载,查看,更新

    pip版本的安装: sudo apt-get install python3-pip pip版本的查看: pip3 --version pip3 -V pip更新: sudo pip3 install ...