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、比较

        01: ansible基础_第1张图片

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. 如果是单一性的操作可以直接使用单一命令进行操作也是可以的

            01: ansible基础_第2张图片

 

 

 

 

 

 

 

 

    

 

 

 

 

 

 

 

 

1111

你可能感兴趣的:(01: ansible基础)