美文网首页
关于Ansible选型思考

关于Ansible选型思考

作者: 小餐包 | 来源:发表于2020-03-18 13:35 被阅读0次

这是一篇纯安利文章, 不会涉及任何的教程。关于教程, 官方已经有非常系统的文档了. 不过这里我推荐有条件的话可以看一下Ansible: Up and Running, 2nd Edition这本书作为起步教程, 对于日常的使用,你可以只看第1-9章基础知识和最佳实践相关内容,如果希望开发相关插件或者希望跟虚拟化技术结合起来, 再看剩下的相关章节即可。

What:

首先简单一下Ansible是什么, 可以用来做什么:

  1. 配置管理工具, 他们的特点但是基于状态的操作,是幂等操作。举个例子,很多时候我们会需要保证某个配置始终是最新版本,当然我可以暴力覆盖的方式每次都重新拉取,但这样带了一个问题就是如果文件很大或者很多这种操作非常低效。如果用Ansible来做的话它会检查当前文件是否与目标文件相同, 如果相同, 那么直接跳过该文件。如果不是, 那么就拉取最新的版本。
  2. 部署工具,举个例子:我希望为我新申请的100台Linux目前安装了MySQL, 我肯定不想一台台的去操作。 其实这个操作用Ansible实现非常简单, 你只需要把希望操作的机器信息全部写到inventory文件里面(就是被管理的机器的hostname或者IP),然后再定义一下具体的task(task定义非常简单,如果是Redhat可以直接用yum模块来操作)
  3. 编排工具,比如你希望你的测试在数据库,web服务器起来之后再运行的, 这时你就可以预定义一个task去探测服务器和数据库的状态, 等一切ok以后再开始做测试工作。
  4. 使用Yaml格式定义具体的工作,支持基于Jinja2的template引擎。

Why:

市面上类似的Chef, Puppet等工具很多, 而Ansible的优势主要体现在如下方面:

  • 简洁易读的语法, 使用yaml定义任务形成playbook; 一个playbook定义了需要配置的主机以及一系列顺序的任务.

  • 被控主机几乎无需安装, 基于ssh和python2.5+版本, 大部分Linux系统已经默认安装.

  • 基于推送的配置管理, 无需agent进程, 方便控制变更生效时机.

  • 生态丰富, 我特地去官方的modules目录下面差了一下模块数量, 截止写作时已有3387个, 而且这个数字还在持续增长, 可见社区的活跃度非常高; 同时拓展模块也很容易.

  • 使用Jinja2作为模板引擎, 提供灵活的模板化配置功能.

  • 支持基于条件和状态的幂等操作, 不会执行无效操作.

  • 天然支持规模化管理, 包括新增主机, 批量操作等;

  • 更轻量级的抽象层, 方便用户快速上手;

How:

最后大致说明一下Ansible是如何完成这些工作的. 假定我们需要在主机A、 B、 C上执行任务1、2、3,那么大致的流程如下:

  1. 控制主机基于playbook中各模块生成对应的python脚本;
  2. 将脚本拷贝到主机A, B, C上;
  3. 主机A,B,C执行脚本依次完成任务1,2,3;
  4. 待所有主机完成所有任务(任务失败则也视为完成)后退出

相关文章

  • 关于Ansible选型思考

    这是一篇纯安利文章, 不会涉及任何的教程。关于教程, 官方已经有非常系统的文档了. 不过这里我推荐有条件的话可以看...

  • 2021-Ansible学习

    一.关于什么是Ansible? 1.Ansible即:自动化部署工具. 2.Ansible 介绍和架构; 公司计划...

  • Jenkins持续集成介绍及插件安装版本更新演示(一)

    前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客《Git+Gitlab+Ansible剧本...

  • Ansible

    使用Ansible有一段时间,有所思考,感谢<<奔跑吧,Ansible>>这本书, 寥寥记录,权作学习。 Ansi...

  • Metal基础入门

    一、背景和技术选型 关于技术方案的选型,最权威的肯定是Metal for OpenGL Developers[ht...

  • Docker容器化网络和日志的选型和落地

    [TOC] Docker容器化网络和日志的选型和落地 网络选型(k8s和mesos) 思考 && 痛点 可否跨机...

  • 关于技术选型

    由于我28岁决定转行当前端工程师,起点很低,为了能尽可能弥补与他人差距,我对技术选型的定位就是实用、成本低和通用性...

  • 【Ansible学习】- Ansible初探

    安装 Ansible基础 Ansible架构图 Ansible核心组件说明 Ansible:Ansible的核心程...

  • 快速上手 Ansible

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • Ansible 命令

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

网友评论

      本文标题:关于Ansible选型思考

      本文链接:https://www.haomeiwen.com/subject/uibqyhtx.html