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


    自动化运维工具

    Puppet

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

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

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

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

    优缺点:

    • 优点
      • 模块由Ruby或Ruby子集编写
      • push命令可以即可触发变更
      • Web界面生成处理报表、资源清单、实时节点管理
      • 代理运行端进行详细、深入的报告和对节点进行配置
    • 缺点
      • 相对其他工具较复杂,需学习Puppet的DSL或Ruby
      • 安装过程缺少错误校验和产生错误报表

    SaltStack

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

    优缺点:

    • 优点
      • 状态文件可用简单YAML配置模块或复杂的Python/PyDSL脚本
      • 与客户端可以基于SSH或在被管节点安装代理
      • Web界面可看到运行的工作、minion状态、事件日志、可在客户端执行命令
      • 扩展能力极强
    • 缺点
      • Web界面像毒药竞争产品不稳定与相对不完善
      • 缺乏生成深度报告的能力

    Ansible

    特点:
    Ansible和SaltStack一样是基于Python开发,Ansible只需要在一台普通的服务器上运行即可,不需要在客户端服务器上安装客户端。因为Ansible基于SSH远程管理,而Linux服务器大部分都离不开SSH,所以Ansible不需要为配置添加额外的支持。

    Ansible安装使用都很简单,而且基于上千个插件和模块,实现各种软件、平台、版本的管理,支持虚拟容器多层级的部署。

    有时候会觉得Ansible比SaltStack执行效率慢,其实并不是软件本身的问题,二是由于SSH服务慢,可以通过优化SSH连接速度和使用Ansible加速模块提高效率.

    优缺点:

    • 优点
      • 模块可以用任何语言开发
      • 备管节点不需要安装代理软件
      • 有Web管理界面、可配置用户、组、资源清单和执行Playbook
      • 安装、运行极其简单
    • 缺点
      • 对备管理节点为Windows有待加强
      • Web管理界面是内置的Ansible的一部分
      • 需导入资源清单
      • 执行效率较低

    技术特点对比:

    名称PuppetSaltStackAnsible
    开发语言RubyPythonPython
    客户端
    二次开发不支持支持支持
    通信验证
    通信加密标准SSL协议AES加密OpenSSH
    配置文件格式Ruby语法格式YAMLYAML

    安装Ansible

    //配置yum源
    [root@localhost ~]# cat /etc/yum.repos.d/base.repo 
    
    [BaseOS]
    name=BaseOS
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/BaseOS/x86_64/os/ 
    enabled=1
    gpgcheck=0
     
    [AppStream]
    name=AppStream
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/AppStream/x86_64/os/
    enabled=1
    gpgcheck=0
     
    [epel]
    name=epel
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/8/Everything/x86_64/
    enabled=1
    gpgcheck=0
    //安装ansible
    [root@localhost ~]# yum -y install ansible
    [root@localhost ~]# ansible --version
    ansible [core 2.12.7]
      config file = /etc/ansible/ansible.cfg
      configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
      ansible python module location = /usr/lib/python3.8/site-packages/ansible
      ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
      executable location = /usr/bin/ansible
      python version = 3.8.13 (default, Jun 24 2022, 15:27:57) [GCC 8.5.0 20210514 (Red Hat 8.5.0-13)]
      jinja version = 2.11.3
      libyaml = True
    //通过使用setup模块验证localhost上的ansible_python_version
    [root@localhost ~]# ansible -m setup localhost|grep ansible_python_version
            "ansible_python_version": "3.8.13",
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
  • 相关阅读:
    .Net/C#分库分表高性能O(1)瀑布流分页
    运动控制:音圈电机
    云桥通+跨境电商:SDWAN企业组网优化跨境网络案例
    Android全屏显示和屏幕旋转的处理
    QGIS数据分析入门——Qgis打开各种存储里的文件(二)
    Java自学第6课:电商项目(2)
    mellanox在vmware中的切割
    java计算机毕业设计高校教学资源库设计与实现---MyBatis+系统+LW文档+源码+调试部署
    Wordpress模板主题中functions.php常用功能代码与常用插件(持续收集整理)
    虚拟机联网 | 虚拟机连接Xshell
  • 原文地址:https://blog.csdn.net/weixin_56774628/article/details/127410012