1.介绍

ansible是一种自动化运维工具,基于paramiko开发的,并且基于模块化工作,Ansible是一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台。

它是基于python语言,由Paramiko和PyYAML两个关键模块构建。集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。

ansible被定义为配置管理工具,配置管理工具通常具有以下功能:

  • 确保所依赖的软件包已经被安装
  • 配置文件包含正确的内容和正确的权限
  • 相关服务被正确运行

常用的自动化运维工具技术特性比较:

项目 Puppet SaltStack Ansible
开发语言 Ruby Python Python
是否有客户端
是否支持二次开发 不支持 支持 支持
服务器与远程机器是否相互验证
服务器与远程机器的通信是否加密 是,标准的SSL协议 是,使用AES加密 是,使用OpenSSH
平台支持 AIX , BSD, HP-UX, Linux , Mac OSX , Solaris, Windows BSD, Linux , Mac OS X , Solaris, Windows AIX , BSD , HP-UX , Linux , Mac OS X , Solaris
是否提供Web UI 提供 提供 提供,但是是商业版本
配置文件格式 Ruby 语法格式 YAML YAML
命令行执行 不支持,大师可以通过配置模块实现 支持 支持

一、ansible基本架构

ansible系统由控制主机和被管理主机组成,控制主机不支持windows平台

  • 核心: ansible
  • Core Modules: ansible自带的模块
  • Custom Modules: 核心模块功能不足时,用户可以添加扩展模块
  • Plugins: 通过插件来实现记录日志,发送邮件或其他功能
  • Playbooks: 剧本,YAML格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能
  • Connectior Plugins: ansible基于连接插件连接到各个主机上,默认是使用ssh
  • Host Inventory: 记录由Ansible管理的主机信息,包括端口、密码、ip等

1.ansible特点

部署简单, 只需要在控制主机上部署ansible环境,被控制端上只要求安装ssh和python 2.5以上版本,这个对于类unix系统来说相当与无需配置.

  • no angents: 被管控节点无需安装agent
  • no server: 无服务端,使用是直接调用命名
  • modules in any languages: 基于模块工作, 可以使用任意语言开发模块
  • 易读的语法: 基于yaml语法编写playbook
  • 基于推送模式: 不同于puppet的拉取模式,直接由调用者控制变更在服务器上发生的时间
  • 模块是幂等性的:定义的任务已存在则不会做任何事情,意味着在同一台服务器上多次执行同一个playbook是安全的

2.ansible程序目录结构:

配置文件: /etc/ansible/
执行文件目录: /usr/bin/
lib依赖库: /usr/lib/python2.7/site-packages/ansible/
help文件: /usr/lib/python2.7/site-packages/ansible

二、ansible任务执行

1.ansible工作原理:

2.ansible主要组成部分功能说明:

  • PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件
  • INVENTORY:Ansible管理主机的清单/etc/anaible/hosts
  • MODULES:Ansible执行命令的功能模块,多数为内置的核心模块,也可自定义,ansible-doc –l 可查看模块
  • PLUGINS:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用
  • API: 供第三方程序调用的应用程序编程接口
  • ANSIBLE:组合INVENTORY、 API、 MODULES、PLUGINS的绿框,可以理解为是ansible命令工具,其为核心执行工具

3.ansible注意事项:

  • 执行ansible的主机一般称为主控端,中控,master或堡垒机
  • 主控端Python版本需要2.6或以上
  • 被控端Python版本小于2.4需要安装python-simplejson
  • 被控端如开启SELinux需要安装libselinux-python
  • windows不能做为主控端

4.ansible任务执行模式

Ansible任务执行模式分为以下两种:

  • ad-hoc模式(点对点模块)
    使用单个模块,支持批量执行单条命令,相当与在bash中执行一句shell命令
  • playbook模式(剧本模式)
    ansible主要的管理方式,通过多个task的集合完成一类功能,可以理解为多个ad-hoc的配置文件

5.ansible执行流程:

ansible自动化运维(一)——基本架构简介相关推荐

  1. @ansible自动化运维详解(总述)

    ansible [自动化运维应用场景] "运维的未来是,让研发人员能够借助工具.自动化和流程,并且让他们能够在运维干预极少的情况下部署和运营服务,从而实现自助服务.每个角色都应该努力使工作实 ...

  2. ansible自动化运维详解(一)ansible的安装部署、参数使用、清单管理、配置文件参数及用户级ansible操作环境构建

    文章目录 ansible自动化运维详解(一)ansible的安装部署.参数使用.清单管理.配置文件参数及用户级ansible操作环境构建 一.ansible的安装部署 1.1.ansible简介 1. ...

  3. 【Ansible自动化运维工具】Ansible变量之lookup生成变量方法

    [Ansible自动化运维工具]Ansible变量之lookup生成变量方法 一.lookup插件介绍 1.lookup简介 2.lookup使用场景 3.lookup获取的数据源 4.lookup的 ...

  4. ansible自动化运维从入门到精通

    ansible自动化运维 Ansible介绍 Ansible是一个同时管理多个远程主机的软件(任何可以通过SSH协议登录的机器),因此Ansible可以管理远程虚拟机.物理机,也可以是本地主机. An ...

  5. 大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]

    文章目录 ansible 自动化运维工具 详解 关于作者 作者介绍 一.ansible 概述 1.1 ansible 概述 1.2 是什么要使用 ansible 1.3 ansible 功能 1.4 ...

  6. Ansible自动化运维工具介绍与部署

    ansible自动化运维工具介绍与部署 文章目录 一.什么是自动化运维? 二.常用的自动化运维工具 2.1 Ansible 2.2 SaltStack 2.3 Puppet 2.4 三种自动化工具特点 ...

  7. 【Ansible自动化运维工具】Ansible变量之Facts变量

    [Ansible自动化运维工具]Ansible变量之Facts变量 一.Ansible facts介绍 1.facts组件简介 2.facts组件的使用场景 二.Ansible facts的基本使用 ...

  8. Ansible自动化运维_超详细

    Ansible自动化运维 自动化运维工具简介 Puppet 自动运维工具特点: Saltstack 自动运维工具特点: Ansible 自动运维工具特点: Ansible 运维工具原理 Ansible ...

  9. Ansible自动化运维工具介绍

    介绍 Ansible自动化运维工具,是基于Python开发的,可以实现批量系统配置,批量程序部署.批量运行命令等等. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ans ...

  10. ansible自动化运维工具

    ansible自动化运维工具 ansible自动化运维脚本工具 ansible自动化运维工具 一.ssh工作原理和基本命令 1.ssh原理 2.ssh的基本命令 二.anible 自动化运维工具 1. ...

最新文章

  1. java.sql.SQLException: Data truncation: Truncated incorrect DOUBLE value
  2. 如何判断两物体加速度相等_高中物理:速度和加速度知识点
  3. SpringCloud配置中心高可用搭建
  4. 第八篇——Struts2的处理结果类型
  5. YBROJ洛谷P3211:XOR和路径(线性基,期望dp)
  6. 工作391-选择Hbuilder x作为开发工具
  7. 西班牙语dele等级_西班牙语DELE不同等级是什么水平?
  8. POJ1734无向图求最小环
  9. RabbitMQ获取队列的消息数目
  10. 全新三维成像技术:我们离科幻故事里的立体投影又近了一步
  11. 28. Vision-Language Pre-Training for Multimodal Aspect-Based Sentiment Analysis
  12. less日常容易忘记的知识记录
  13. js中的json和ascii转换
  14. 男生总会误解女生的14个地方。【爱她就停下两分钟看看吧!】
  15. 一元购抽奖号码 thinkphp php
  16. PTA7-4一帮一 结构体解决
  17. JAVA oa 系统模块设计方案
  18. 计算机网络--自顶向下方法学习笔记
  19. 【数学建模】基于matlab模拟疫情SEIRS模型【含Matlab源码 2214期】
  20. 基于视频评论数据分析+数可视化 附完整教程

热门文章

  1. R语言构建xgboost模型:基于稀疏数据(dgCMatrix which is a sparse matrix)、稠密数据(dense matrix)、xgb.DMatrix数据聚合
  2. R语言使用magick包的image_border函数和image_background函数自定义图像的边界和背景(Change image border and background)
  3. R语言使用subset函数基于组合逻辑筛选dataframe符合条件的数据行(select observations)、并指定需要保留的dataframe数据列或者字段
  4. R语言ggplot2可视化强制设置x轴、y轴坐标的起始点为0或者其他实战
  5. linux怎么安装java环境变量_如何简单的在linux上安装jdk并配置环境变量
  6. matlab怎么求残余误差,误差理论与数据处理实验报告.doc
  7. 新版IntelliJ IDEA Web项目配置完整流程
  8. 右键点“工作空间”窗口内空白部分,在弹出的菜单上勾选“Docking View / 停靠式”。然后双击程序窗口的窗棱,就是最上面那条蓝色边框
  9. LBS 基于位置的服务
  10. numpy 滑动窗口取数据