运维的工作内容

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

程序发布

  • 灰度发布
  • 金丝雀发布

ansible解决的问题:

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

ansible的资源站点

  • https://www.ansible.com/
  • https://github.com/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 退出。

©著作权归作者所有:来自51CTO博客作者互联网老辛的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 痞子衡嵌入式:恩智浦机器视觉模块OpenMV-RT那些事(1)- 初体验
  2. Vite 解决了 Webpack 哪些问题
  3. 读 2020 年 Javascript 趋势报告展望 ES2020
  4. 深入了解Nginx
  5. typing模块
  6. npm 卸载模块
  7. 使用python的tkinter模块实现的GUI版用户登录程序(附源码)
  8. python多线程之threading模块
  9. python创建线程池(threadpool模块和multiprocessing模块)

随机推荐

  1. 如何用python制作动态二维码,来哄女朋友开
  2. MySQL 8 OCP(1Z0-908)认证考试题库原题(第
  3. 肝了一个月的编程导航诞生!轻松发现优质编
  4. mysql 常用命令
  5. 前端框架LayUI介绍及用法
  6. 编程语言之问:何时该借用,何时该创造?
  7. 用python分析1225万条淘宝数据,终于搞清楚
  8. GIL 已经被杀死了么?
  9. AQS之ReentrantReadWriteLock精讲分析上
  10. UNIX系列之AIX克隆系统盘