运维Ansible自动化工具概述
【摘要】 运维的工作内容
安装系统: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)