什么是 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. 使用Docker快速搭建Nginx+PHP-FPM+MySQL+phpMyAdmin环境

    一.概述 环境介绍 操作系统:centos 7.6 docker版本:19.03.8 ip地址:192.168.31.34 本文将介绍如何使用单机部署Nginx+PHP-FPM环境 二.Nginx+P ...

  2. GetQueuedCompletionStatus客户端前端和server之间的通信

    项目中遇到了这个东西,怎么都调试不到.记录下. 一.完成端口IOCP https://www.cnblogs.com/yuanchenhui/p/iocp_windows.html

  3. jar下载慢,maven配置国内仓库

    使用 maven 下载 jar 包速度会很慢,原因是 maven 默认的仓库地址是国外的,所以速度很慢,解决这个问题我们只需要修改 maven 仓库地址即可 maven 下载 jar 包时会优先去 ~ ...

  4. 力扣208. 实现 Trie (前缀树)

    原题 以下是我的代码,就是简单的字符串操作,可以ac但背离了题意,我之前没接触过Trie 1 class Trie: 2 3 def __init__(self): 4 ""&qu ...

  5. 一文了解Python的迭代器的实现

    本文对迭代器的解释参考自:https://www.programiz.com/python-programming/iterator 最后自己使用迭代器实现一个公平洗牌类. 博主认为,理论来自实践,假 ...

  6. PAT-1140(Look-and-say Sequence)字符串处理

    Look-and-say Sequence PAT-1140 #include<iostream> #include<cstring> #include<string&g ...

  7. 【译】Visual Studio 的 Razor 编辑器的改进

    自从我们在一个通用的 Razor 语言服务器上发布了 Visual Studio 的一个新的实验性 Razor 编辑器的第一个预览版以来,已经过去了6个月,现在是时候更新一下我们的进展了.团队一直在努 ...

  8. 选择 FreeBSD 而不是 Linux 的技术性原因4

    Linux 二进制兼容性 FreeBSD 提供了与 Linux 的二进制兼容.这使得用户可以在 FreeBSD 系统上安装和运行许多 Linux 二进制文件, 而无需首先修改二进制文件.在某些特定情况 ...

  9. FreeBSD 入门 哲学与玄学

    『哲学与玄学』 FreeBSD 是一种 UNIX 哲学(如模块化,一切皆文件等,见< UNIX 编程艺术>❩的发展,也是学院派的代表作品.她是一套工具集,她存在目的是为了让人们更好的生活. ...

  10. 【java框架】MyBatis-Plus(1)--MyBatis-Plus快速上手开发及核心功能体验

    1.MyBatis-Plus入门开发及配置 1.1.MyBatis-Plus简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变, ...