• 常用自动化运维工具简介和Ansible安装


    自动化运维工具

    Puppet

    Puppet是历史悠久的运维⼯具之⼀。它是⼀种基础架构即代码(IaC)⼯具,使⽤户可以定 义其
    基础架构所需的状态,并使系统⾃动化以实现相同状态。
    Puppet可监视⽤户的所有系统,并防⽌任何偏离已定义状态的情况。从简单的⼯作流程⾃ 动化到
    基础架构配置和合规性,Puppet都能做到。
    Puppet通过让客户端检查主站的更新清单来更新节点的配置,然后从主站服务器拉下新的 配置。
    由于这个特点,Puppet⽐这⾥提到的许多其他⼯具更倾向于系统管理员。
    特点:
    (1)通过PuppetLabs建⽴良好的⽀持社区
    (2)它有最成熟的接⼝,⼏乎在每个操作系统上运⾏
    (3)简单的安装和初始设置
    (4)在这个空间中最完整的Web UI (5)强⼤的报告功能

    特点:
    Puppet是早期的Linux自动化运维工具,是一种LINUX、WINDOWS、UNIX平台的集中配置管理系
    统,到现在已经非常成熟,可以批量管理远程服务器,模块丰富,配置复杂,基于Ruby语言编写。
    是最典型的C/S结构,需要安装服务端和客户端 。

    Puppet采用C/S星状的结构,所有的客户端和一个或者多个服务器交互,每个客户端周期地(默认
    半个小时)向服务器发送请求,获得最新的配置信息,保证和配置信息同步。

    每个Puppet客户端周期地连接一次服务器,下载最新的配置文件,并且严格按照配置文件来配置客
    户端。配置完成后,Puppet客户端可以反馈给服务器端一个消息,如果出错也会给服务器端反馈一
    个消息。

    Puppet适用于服务器管理的整个过程,比如初始安装、配置、更新等
    优缺点:

    • 优点

    模块由Ruby或Ruby子集编写
    push命令可以即可触发变更
    Web界面生成处理报表、资源清单、实时节点管理
    代理运行端进行详细、深入的报告和对节点进行配置

    • 缺点

    相对其他工具较复杂,需学习Puppet的DSL或Ruby
    安装过程缺少错误校验和产生错误报表

    SaltStack

    Salt由Salt Master和被称为Salt Minions的客户端组成,后者作为代理在每个节点机器上运⾏。
    Puppet的⼯作⽅式是由节点请求更新,⽽Salt的⼯作⽅式与此相反,SaltMaster将所有配置推送
    给所有客户机。

    Salt还可以在多主机配置中运⾏。如果⼀个Salt主服务器发⽣故障,代理将连接到配置中列 出的另
    ⼀个主服务器。这⼀功能提⾼了整个系统的整体可⽤性和冗余度。
    Salt的另⼀个好处是,它允许⼀次并⾏执⾏多个命令。这些命令通过AES(⾼级加密标准) 进⾏加
    密,并通过SSH协议推送给客户端节点。
    特点:
    (1) 实时交互 所有的minion机器同时执⾏命令

    (2)no freeloader
    每⼀台salt minion上都装有执⾏master传来的命令所需要的程序,saltmaster发送命令的时 候,
    只需要指明哪台机器做什么,所有的saltminion都会收到这条命令,然后判断⾃⼰是否符 合执⾏条
    件,然后再将执⾏结果返回给saltmaster。 ⽂档中,freeloader的意思是没有揩油/吃⽩⻝的⼈,
    所有的saltminion机器都会完成⾃⼰ 的指令,⽆需saltmaster帮助,saltminion⾃⼰完成,往往⽐
    saltmaster帮忙去做,做的更好。

    (3)可测量性 salt为⾼性能和可测量性⽽⽣。
    salt的master和minion的信息传输,是由基于ZeroMQ 或者raw TCP在saltmaster和saltminion之
    间建⽴的⼀个持久性的数据管道来实现的。这相对于其它传输机制,有更好的性 能优势。使⽤
    MessagePack使得消息⾮常⾼效地被序列化。 salt内部使⽤python Tornado作为异步⽹络库,
    并发和多线程也都采⽤了先进的技术。

    (4)salt可以在任意python能够运⾏的环境下运⾏ 只要⽀持任何⽹络协议的就⾏。 salt 命令被发送
    到 代理minion机器,将协议转换为本地写协议,再发送给salt minion机 器,返回的数据经转以后
    存储在数据设备中,再返回

    (5)⾃动化管理
    (6)可扩展性强

    特点:
    SaltStack和Puppet一样,也是C/S模式,需要安装服务端和客户端,基于Python编写,加入了MQ
    消息同步,可以使执行命令和执行结果高效返回,但其执行过程需要等待客户端全部返回,如果客
    户端没有及时返回或者没有响应的话,可能会导致部分机器没有执行结果。

    优缺点:

    • 优点

    状态文件可用简单YAML配置模块或复杂的Python/PyDSL脚本
    与客户端可以基于SSH或在被管节点安装代理
    Web界面可看到运行的工作、minion状态、事件日志、可在客户端执行命令
    扩展能力极强

    • 缺点

    Web界面像毒药竞争产品不稳定与相对不完善
    缺乏生成深度报告的能力

    Ansible

    Ansible是当下⽕热的⾃动化运维⼯具,它基于模块⼯作的,本身没有批量部署的能⼒。真 正具有
    批量部署的是ansible所运⾏的模块,通过集成⾮常丰富的模块,它可以实现各种管 理任务,如批
    量系统配置、批量程序部署、批量运⾏命令

  • 相关阅读:
    计算机毕业设计springboot家庭支出网页管理系统668mf源码+系统+程序+lw文档+部署
    使用RFC跳过权限校验的方法
    Python--文件和异常
    使用idea如何打开python项目
    MFC与Qt常见窗体、控件对比
    AWD常见防御加固手段
    Javaweb之Vue指令的详细解析
    mysql学习笔记1:mysql字符集和字符集编码
    MyBatis高级
    Python爬虫实战系列4:天眼查公司工商信息采集
  • 原文地址:https://blog.csdn.net/m0_52091913/article/details/127420422