Ansible-工作架构和原理

常用自动化工具

  • ansible:Python,agentless,适用于中小型应用环境
  • saltstack:python,一般需要部署agent,执行效率更高
  • puppet:ruby,功能强大、配置复杂,重型,适合大型环境
  • Fabic:Python,agentless
  • chef:ruby,国内应用较少

ansible应用举例

场景:公司计划在年代做一次大型的市场促销活动,全面冲刺下交易额,为明年上市做市场准备,公司要求所有业务组对年底大促销做准备,运维部要求所有业务容量进行三倍扩容并搭建出多套环境可以供开发和测试人员做测试。运维老大为了年底表现,要求所有运维部同学尽快实现。

Ansible发展史

  • ansible
    • 创始人,Michael DeHaan(cobbler与Func的作者)
    • 2012-03-09,发布0.0.1版本,红帽收购
    • 2015-10-17,red Hat宣布收购

特性

  • 模块化:调用特定的模块完成特定的任务(ansible模块相当于Linux的一条条命令,现在约有1000多个模块
  • 有paramiko,pyYAML,jinja2(模板语言)三个关键模块
  • 支持自定义模块
  • 基于python语言实现
  • 部署简单、基于python和SSH(默认已经安装)agenlless
  • 安全,基于OpenSSH
  • 支持playbook编排任务(相当于脚本,实现复杂任务的组合,复杂的编写角色
  • 幂等性:一个任务执行1遍和执行N遍效果一样,不会因为重复执行而带来意外(适用于调试
  • 无需代理不依赖PKI(无需ssl)
  • 可以使用任何语言编写模块
  • YAML格式,编排任务,支持丰富的数据结构
  • 较强大的多层解决方案

ansible架构

用户--控制端--被控端三层架构:用户通过控制端管理被控端

  1. 通过用户清单(inventory)获得需要管理的主机
  2. 管理主机可以通过单一命令实现(模块),组合命令(playbook)
  3. 通过ssh协议连接主机

ansible工作原理

ansible主要的组成部分

  • ansible playbook:任务剧本(任务集)编排定义ansible任务集的配置文件,由ansible顺序依次执行,通常是json格式的YML文件
  • inventory:管理主机的清单
  • modules:执行命令的功能模块,多数为内在核心模块,可以自定义
  • plugins:功能模块的补充,如连接插件,循环插件,变量插件,过滤插件等,该功能不常用
  • API:供第三方程序调用的应用程序编程接口
  • ansible:组合inventory、api、modules、plugins,可以理解为是ansible命令工具,其核心是执行工具
  • ansible命令来源
    • user:普通用户,即system、administrator
    • cmdb 的api调用
    • 公有云/私有云调用
    • user->ansible playbook->ansible
  • 利用ansible实现管理的方式
    • ad-hoc,即ansible命令,主要用于临时命令使用场景
    • ansible-playbook主要用于长期规划好的,大型项目场景,需要有前提的规划
  • ansible-playbook(剧本)执行过程
    • 将已有编排好的任务集写入ansible-playbook
    • 通过ansib-playbook命令将命令拆分任务集至逐条ansible命令,按预定规则逐条执行
  • ansible主要操作对象
    • hosts主机
    • networking网络设备
  • 注意事项
    • 执行ansible的主机一般称为主控端,中控,master或堡垒机
    • 主控端Python版本需要2.6或以上
    • 被控股端python版本小于2.4需要安装python-simplejson
    • 被控端如开启selinux需要安装libselinux-python
    • Windows不能作为主控端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值