• Ansible简单介绍(一)


    一 :ansible简单介绍

    此名取自 Ansible 作者最喜爱的《安德的游戏》 小说,而这部小说更被后人改编成电影 -《战争游戏》。

    官网地址:https://www.ansible.com/

      Ansible是一个部署一群远程主机的工具,服务端被称作为主控制端,通过SSH协议实现被控制端之间的通信。我认为只要管理员能通过ssh登录到另外一台任何远程主机上能做的操作,Ansible都可以轻松基于模块化做到你想做的任务,例如 copy,file,shell,等等众多模块,目前支持的模块大概2千左右,后续可能会更多,它也是python开发的一款软件,需要依赖一些python库和组件,如:paramiko,PyYaml和jinja三个关键组件,目前已经被Redhat收购,(可喜可贺)!

    二:常用的运维自动化工具

    Ansible:基于python研发,中小型应用环境,我实际环境大约2000台左右,执行的时候会比较慢,后续有优化的方法。

    Saltstack:python,一般需部署agent,执行效率更高,大型环境几千台的云主机还是很不错,因为有anget,所以它的效率会更高,由于ansible的简单盛行,现在的我基本很少用了。

    Puppet:ruby开发,功能强大,配置复杂,重型,觉得一般都是大公司都在用吧,很牛的一款工具

    其他的也有但是没怎么用过,就不做探讨了。

    三:为什么要用ansible

    1. 既然找到这里就说明你已经知道这个工具的重要性。
    2. 简单,批量,易学,操作方便,不需要C/s架构,同时 ansible是新出现的自动化运维工具,基于Python开发。
    3. 集合了众多运维工具的优点,实现了批量系统配置、批量程序部署。
    4. 最主要的我认为是基于SSH认证,省去了agent比较方便。 那为什么不用Saltstack ?哈哈,我是觉得烦琐,需要部署agent。

    四:优点的特性

    1. 模块化:使用特定的模块,完成模块任务,有Paramiko,PyYAML,Jinja2(模板语言)三个关键组件
    2. 支持自定义模块
    3. 基于Python语言实现
    4. 部署简单,基于python和SSH(默认已安装),agentless
    5. 安全,基于OpenSSH
    6. 支持playbook编排任务
    7. 幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况
    8. 无需代理不依赖PKI(无需ssl)
    9. 可使用任何编程语言写模块
    10. YAML格式,编排任务,支持丰富的数据结构
    11. 较强大的多层解决方案

    五:重要组成部分

    • API:供第三方程序调用的应用程序编程接口
    • Inventory:Ansible管理主机清单,存放在/etc/ansible/hosts(默认)
    • Modules:模块,Ansible执行命令的功能的模块,多个命令的组合,每个命令都是一个模块
    • Playbook:剧本,多个模块的组合,编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件,如遇到任务失败,可回滚
    • Plugins:模块功能的补充,如连接类型的插件、循环插件、变量插件、过滤插件等,该功能不常用
    • Ansible:组合Inventory、API、Modules、Plugins的绿框,可以理解为是ansible命令工具,其为核心执行工具
  • 相关阅读:
    实现Android ListView 自动加载更多内容
    Android中通过GPS或NetWork获取当前位置的经纬度
    android检测当前网络是否可用
    怎么样获得泛型T的Class对象?
    slidemenu
    linux mysql 操作命令
    解决Skyline 6.5版本中3DML模型单体化后外部网页挂接问题
    解决Skyline6.5多球对比时,自动运行TerraExplorer软件的问题
    OSGeo.OGR.Geometry
    TerraExplorer Add-ons 和TEZ使用说明
  • 原文地址:https://www.cnblogs.com/liych/p/11509213.html
Copyright © 2020-2023  润新知