运维Ansible自动化工具概述

举报
互联网老辛 发表于 2021/06/09 01:16:44 2021/06/09
【摘要】 运维的工作内容 安装系统:pxe、kickstart、cobbler、image template安装应用、配置应用、启动应用(服务):puppet、saltstack、chef发布程序:puppet、saltstack、chef监控(服务器、系统、应用、程序):zabbix 程序发布 灰度发布金丝雀发布 ansible解决的问题: 批量安装应用、配置应用、启...

运维的工作内容

  • 安装系统:pxe、kickstart、cobbler、image template
  • 安装应用、配置应用、启动应用(服务):puppet、saltstack、chef
  • 发布程序:puppet、saltstack、chef
  • 监控(服务器、系统、应用、程序):zabbix

程序发布

  • 灰度发布
  • 金丝雀发布

ansible解决的问题:

  • 批量安装应用、配置应用、启动应用
  • 批量发布程序

ansible的资源站点

Ansible的综述

ansible是一款无需在被管理主机上安装客户端,基于SSH对多台目标主机进行同时操作的轻量级的管理软件,借助各个内部的功能模块,实现了批量系统配置、批量程序部署、批量运行命令等功能。

Ansible简介

ansible基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,能够实现批量系统配置、批量程序部署、批量运行命令等功能。

ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

  • 连接插件connection plugins:负责和被监控端实现通信;
  • host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
  • 各种模块核心模块、command模块、自定义模块;
  • 借助于插件完成记录日志邮件等功能;
  • playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务

ansible的软件结构:
在这里插入图片描述

  • Host Inventory:主机清单,也就是被管理的主机列表
  • Playbooks:ansible的剧本,可想象为将多个任务放置在一起,一块执行
  • Core Modules:ansible的核心模块
  • Custom Modules:自定义模块
  • Connection Plugins:连接插件,用于与被管控主机之间基于SSH建立连接关系
  • Plugins:其他插件,包括记录日志等

在这里插入图片描述

ansible的特性

  • 模块化:调用特定的模块,完成特定任务
  • 基于python语言实现,由Paramiko(完成基于ssh的连接),PyYAML(对YAML文件的支持),jinja2(python的模板库)三个关键的模块
  • 部署简单:是没有客户端的
  • 支持自定义模块,使用任意编程语言
  • 支持强大的playbook
  • 具有幂等性:一个操作在一个主机上执行一遍和执行N遍的结果是一样的

ansible的执行流程

在这里插入图片描述
1) 加载配置文件,默认/etc/ansible/ansible.cfg
2) 查找对应主机的配置文件,找到要执行的主机和组
3) 加载自己对应的模块文件,如command
4)通过ansible将模块或者命令生成对应的临时py文件,并将该文件传输到远程服务器
5) 对应执行用户家目录的.ansible/tmp/xxx/xxx.py文件
6) 给文件加执行权限
7)执行并返回结果
8)删除临时的py文件,sleep0 退出。

文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。

原文链接:zmedu.blog.csdn.net/article/details/111084562

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。