阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ansible运维自动化平台初识

97次阅读
没有评论

共计 2637 个字符,预计需要花费 7 分钟才能阅读完成。

一、运维自动化平台介绍

1.1、自动化运维平台介绍

运维自动化平台是由管理机器 [S] 和业务机器 [C] 组成的,C/S。

管理机器:任务定制及发布;

业务机器:接收任务并执行任务。

Ansible 运维自动化平台初识

1.2、运维自动化平台的优势:

  • 一次性任务定制:任务一次性发布给所有机器
  • 节省任务执行时间:任务主机并发完成任务,节省部署时间
  • 错误率低:避免重复,保证一次任务定制准确即可

二、常见的自动化运维工具

2.1、常见的运维自动化工具

  • Puppet
  • Ansible
  • SaltStack
puppet:基于 Ruby 开发,有产品线已经在用,优点是历史悠久,比较成熟,在可远程可本地,功能强劲,批量执行需要写专门的配置文件,费力费时。而且有客户端在,和授权系统结合比较麻烦。saltstack: saltstack 和 ansible 都是 python 流的,而且就功能上来讲,两者也极为相似,不同之处是 salt stack 是有客户端的,并且 execution 模块还用0MQ 实现了 pub-sub,命令和执行结果因此可以高效并行传输,不过成也萧何败也萧何,第一个 sub 阶段(将 querystring 下发到所有机器,然后收集机器响应的阶段)太依赖与客户端返回了,如果客户端未能及时返回或未响应的话,playbook 执行阶段可能会直接漏掉这部分机器而没有任何提示,这对于运维来说是不可接受的。ansible: 与前两者比起来,在特性上似乎并不抢眼,配置管理方面(playbook)绝对比不过老大哥 puppet,批量执行方面也只是多线程,不像 saltstack 那么高大上,不过 ansible 搜索热度高出 saltstack 三倍多,显然靠的不是吹牛,至少,ansible 至少不会悄悄的丢机器,这给了我们一个定心丸,而且仅依赖 ssh,与登录授权管理系统天然集成,简单即有效,没有比这更美妙的事情了。

2.2、ansible 介绍

ansible 是一种由 Python 开发的自动化运维工具,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible 是基于模块工作的,本身没有批量部署的能力 真正具有批量部署的是 ansible 所运行的模块,ansible 只是提供一种框架。主要包括:

  1. 连接插件 connection plugins:负责和被监控端实现通信;ansible 管理端和客户端基于 ssh 协议通信
  2. host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;提供主机管理列表,定义管理谁
  3. 各种模块核心模块、command 模块、自定义模块;提供了日常模块
  4. 借助于插件完成记录日志邮件等功能;根据需求后续添加模块,邮件、日志模块
  5. playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。一次发布多条指令给客户端

特性

  1. no agents:不需要在被管控主机上安装任何客户端;
  2. no server:无服务器端,使用时直接运行命令即可;
  3. modules in any languages:基于模块工作,可使用任意语言开发模块;
  4. yaml,not code:使用 yaml 语言定制剧本 playbook;
  5. ssh by default:基于 SSH 工作;
  6. strong multi-tier solution:可实现多级指挥。

优点

  1. 轻量级,无需在客户端安装 agent,更新时,只需在操作机上进行一次更新即可;
  2. 批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
  3. 使用 python 编写,维护更简单,ruby 语法过于复杂;
  4. 支持 sudo

基本架构

Ansible 运维自动化平台初识

· 核心引擎:即 ansible · 核心模块(core modules):这些都是 ansible 自带的模块,ansible 模块资源分发到远程节点使其执行特定任务或匹配一个特定的状态。· 自定义模块(custom modules):如果核心模块不足以完成某种功能,可以添加自定义模块。· 插件(plugins):完成模块功能的补充,借助于插件完成记录日志、邮件等功能 · 剧本(playbook):定义 ansible 任务的配置文件,可以将多个任务定义在一个剧本中,由 ansible 自动执行,剧本执行支持多个任务,可以由控制主机运行多个任务,同时对多台远程主机进行管理。· playbook 是 ansible 的配置、部署和编排语言,可以描述一个你想要的远程系统执行策略,或一组步骤的一般过程。如果 ansible 模块作为你的工作室工具,playbook 就是设计方案。在基本层面上,剧本可以用于管理配置和部署远程机器。在更高级的应用中,可以序列多层应用及滚动更新,并可以把动作委托给其他主机,与监控服务器和负载平衡器交互。· 连接插件(connection plugins):ansible 基于连接插件连接到各个主机上,负责和被管理节点实现通信。虽然 ansible 是使用 ssh 连接到各被管理节点,但它还支持其他的连接方法,所以需要有连接插件。· 主机清单(host inventory):定义 ansible 管理的主机策略,默认是在 ansible 的 hosts 配置文件中定义被管节点,同时也支持自定义动态主机清单和指定配置文件路径。

ansible 采用 paramiko 协议库(Fabric 也使用这个,基于 python 开发,支持 SSHV2),通过 ssh 或者 ZeroMQ 等连接主机。ansible 在控制主机主机将 ansible 模块通过 ssh 协议(或者 Kerberos、LDAP)推送到被管节点执行,执行完之后自动删除。控制主机与被管理节点之间支持 local、SSH、ZeroMQ 三种连接方式,默认使用基于 SSH 的连接。在规模较大的情况下使用 ZeroMQ 连接方式会明显改善执行速度。

三、ansible 运行原理

ansible 是如何工作的呢?我们通过一个图片来说明一下

Ansible 运维自动化平台初识

工作原理:1、用户登录管理机器:通过 ansible 剧本或者单行命令针对业务机器组或者单个机器部署任务 2、管理机器读取用户的部署任务:根据自己 hosts 文件中定义的业务机器组查找对应的机器地址(ip 或者域名) 3、管理机下发任务:管理机通过 ssh 免密连接业务机器,下发任务给业务机器 4、业务机器执行任务 5、业务机器将执行结果发送给 ansible 管理机器 反馈字体颜色 绿色 未发生变化 黄色 更改生效 红色 执行错误

四、学习视频

视频:ansible 课程介绍
视频:自动化运维平台课程介绍
视频:自动化运维平台介绍
视频:ansible 介绍
视频:ansible 工作原理

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-06-09发表,共计2637字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中