• 01: ansible基础


    1.1 SaltStack、Ansible、Puppet比较

      1、SaltStack

          1. saltStack由Python编写,为server-client模式的系统,自己本身支持多master。

          2. 运行模式为master端下发指令,客户端接收指令执行。

          3. saltstack依赖于zeromq消息队列,采用yaml格式编写配置文件,比较简单。

          4. 支持api及自定义python模块,能轻松实现功能扩展。

      2、Ansible

          1. 类似与saltstack,基于python开发,关注的重点是精简和快速。

          2. 不需要在节点安装代理软件,通过ssh执行所有功能,安装运行简单。

          3. 其模块可以用任何语言开发,采用yaml格式编写配置文件。

          4. 没有客户端,较难扩展。

      3、Puppet

          1. puppet由Ruby编写,为server-client模式的系统。

          2. 运行时由客户端定时去获取自己的配置文件进而应用更改。

          3. 也可以通过master的push命令即可触发变更。

          4. 将命令,文件,服务等抽象成资源,概念比较统一,时间悠久,文档较多。

          5. 就可用操作,模块,用户界面等等功能而言,是三者之中最全面的。

          6. 安装部署难度一般,配置清单相对于其他工具较复杂。

      4、比较

            

    1.2 ansible简介

      1、ansible是什么

          1. Ansible是一个配置管理系统configuration management system,

          2. 你只需要可以使用ssh访问你的服务器或设备就行。

      2、Ansible能做什么

          注:ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作。

          1)比如:同时在100台服务器上安装nfs服务,并在安装后启动服务。

          2)比如:将某个文件一次性拷贝到100台服务器上。

          3)比如:每当有新服务器加入工作环境时,你都要为新服务器部署某个服务,也就是说你需要经常重复的完成相同的工作。

          普通方式流程:购买机器->2.配置环境->3.部署代码->4测试->5.加入集群

      3、Ansible软件特点

          1.ansible不需要单独安装客户端,SSH相当于ansible客户端。

          2.ansible不需要启动任何服务,仅需安装对应工具即可。

          3.ansible依赖大量的python模块来实现批量管理。

          4.ansible配置文件/etc/ansible/ansible.cfg

          5.有paramiko(Python开发出来基于SSH服务的远程通讯模块), pyYAML(playbook基于此模块实现的), jinja2(模板语言)三个关键模块

          6. 可使用任何编程语言写模块,YAML格式,编排任务,支持丰富的数据结构

     1.3 ansible基本架构

      1、ansible架构说明

          1. 可以大致分为三层结构: 用户、主控端、被控端

          2. 用户要通过ansible(主控端)来控制其他机器(被控端)

      2、ansible主要组成部分

          1. ansible playbook : 任务剧本(任务集),编排定义ansible任务集的配置文件,由ansible顺序依次执行,通常是json格式的YML文件

          2. inventory : ansible管理主机的清单/etc/ansible/hosts

          3. modules : ansible执行命令的功能模块,多数为内置核心模块,也可以自定义

          4. plugins : 模块功能的补充,如连接类型插件,循环插件,变量插件,锅炉插件等,该功能不常使用

          5. API : 供第三方程序调用的应用程序编程接口

          6. ansible : 组合inventor/API/modules/plugins,可以理解为是ansible命令工具,其为核心执行工具

      3、ansible架构图

        1)host inventory(主机清单)-配置文件

            1. 在控制多台主机环境的时候,ansible如何知道控制那几台机器的?
            2. 就用到了host inventory(主机清单)-文件 ,把需要控制的机器IP写入到主机清单中

        2)playbook(剧本)

            1. 如果做的一些是例行性的工作,大量重复可以使用playbook(剧本),playbook是通过各种命令和模块进行组合,然后进行任务操作
            2. 如果是单一性的操作可以直接使用单一命令进行操作也是可以的

                

        

    1111

  • 相关阅读:
    作业1-四则运算题目生成程序
    实验四 决策树算法及应用
    实验三朴素贝叶斯算法及应用
    自定义博客园背景
    机器学习 实验二 K-近邻算法及应用
    机器学习 实验一 感知器及其运用
    实验三 面向对象分析与设计
    实验二 结构化分析与设计
    实验一:软件开发文档与工具的安装与使用
    朴素贝叶斯学习日志——简单案例python计算过程
  • 原文地址:https://www.cnblogs.com/xiaonq/p/12102188.html
Copyright © 2020-2023  润新知