比Ansible更吊的自动化运维工具,自动化统一安装部署_自动化部署udeploy 1.0
新增功能:
2015-03-11
除pass(备份与更新)与start(启动服务)外,实现一切自动化。
注:pass与start设为业务类,由于各类业务不同,所以无法实现自动化。同类业务除外,如更新的都是tomcat的war包等...
新增“list”快捷键,快速操作list规则文件。
简化代码冗余,合拼原有exec工具类到tools。
修复上一轮版本配置文件乱码问题。
新增部署成功后系统版本监控功能。
2015-01-28
逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用。
并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新、部署、启动。
提高list规则文件DIY程度,减少新增服务带来的修改代码,实现扫描list自动化安装部署。
完善回滚机制,可根据时间段进行回滚,实现即时回滚即时使用。
1 引言
自动化部署与统一安装升级,适用于多资源型分布/分离式部署项目。
随着服务/业务的越来越多,配置文件更是眼花缭乱,每次不知道因为部署/安装问题浪费多少时间,更不知道因为配置问题出过多少问题。多台服务器来回切换,如果服务需要依赖,启动更是问题。
怎么实现自动化安装升级,一键执行统一安装。
适用于多资源型分布式部署项目,随着服务的越来越多,配置文件更是眼花缭乱,每次不知道因为部署问题浪费多少时间,更不知道因为配置问题出过多少问题。多台服务器来回切换,如果服务需要依赖,启动更是问题。
1.1 目的
统一安装、批量部署、统一监控。
1.2 范围
本项目使用范围包括:
- 基于多资源型开发项目
- 项目相关服务繁多
- 服务多依赖关系
1.3 读者
本需求规格说明书的阅读者或其他文档干系人有平台总监、产品经理、项目总监、项目经理、开发人员、测试人员、运维人员、用户体验设计人员等。
2 项目总体描述
2.1 系统总体功能框架
执行统一安装前,首先备份上一轮项目并提取涉及配置文件,再是检查SVN更新版本,确认无误后执行统一安装。
实现一键执行统一安装,执行完毕展示服务进程及相关版本。
2.2 系统功能列表
编号 |
模块 |
功能 |
说明 |
udeploy 1.0_0.1 |
Exec |
建立信任、初始命令 |
初始 |
udeploy 1.0_0.2 |
Tools |
服务介入List规则 |
扫描提供服务列表,获取配置信息 |
udeploy 1.0_0.3 |
Conf |
配置文件处理优化展示 |
自动生成 |
udeploy 1.0_0.4 |
Bin |
执行工具 |
提供总执行与单一执行 |
udeploy 1.0_0.5 |
New |
存放修改后配置文件 |
与bak保留文件成反比 |
unifyDeploy_0.6 |
Bak |
存放原始配置文件 |
便于问题分析 |
unifyDeploy_0.7 |
Temp |
存放临时文件 |
临时文件将及时删除无任何冗积 |
udeploy 1.0_0.8 |
Workapp |
存放安装包 |
上传安装包 |
unifyDeploy_0.9 |
Workbak |
备份安装包 |
统一回滚 |
3 功能描述
3.1 获取配置文件
通过本系统统一安装部署非常简单,只需用户根据list模版提供服务列表,其他无需操作。服务列表如下:
名词解释:
server :服务名称 ip :服务器ip指向 path :部署路径指向 config :配置项 cfpath:配置路径
执行脚本,“conf”目录自动生成用户所需修改配置文件,配置文件是通过处理筛选后生成,所以一个服务不管需要配置多少文件,这里只生成一个,方便修改与管理。配置文件沿用上一轮版本配置文件,在新一轮版本没有新增配置项情况,无需修改跳过此步。
3.2 自动化统一安装部署
自动化统一安装部署,包括:主机信任、SVN安装包下载、上传解压安装包、同步配置、上一轮安装备份、启动服务、监控服务等。
list.sh init.sh pass.war startup.sh syn.sh exec.sh thread.py
部署支持统一安装于分布式安装,每个脚本可以拆分开任意组合使用,比如:
1) 一套新环境中还未部署服务,只需调整上传安装包脚本顺序,先上传安装包后,后续操作正常执行。
2) 迭代更新,功能稍作修改,原配置项无需修改,也只需调整上传安装包包脚本顺序,先获取原有配置,再上传更新安装包包,后续操作正常执行。
3.3 与Ansible优缺点对比
优点:
1) 框架开源,业务脚本基于shell开发,不像Ansible封装的那么严重,只能按照他的格式去写
2)将一个服务下的多个配置文件处理成一个配置模板,与Ansible相比更加的方便修改与检查
3)支持更多的DIY功能,更好的实现监控进程、检查版本等
4)可根据时间段进行回滚,实现即时回滚即时使用
5)不仅适用于更新部署同样适用于第一次部署
缺点:
1)Ansible商业化要久,更多人在用
自动化部署与统一安装升级 - 类ansible工具 udeploy 1.0版本发布 (更新时间2014-12-24)
udeploy 1.0下载
比Ansible更吊的自动化运维工具,自动化统一安装部署_自动化部署udeploy 1.0的更多相关文章
- 轻量级自动化运维工具Fabric的安装与实践
一.背景环境 在运维工作中,经常会遇到重复性的劳动,这个时候为了效率就必须要使用自动化运维工具. 这里我给大家介绍轻量级自动化运维工具Fabric,Fabric是基于Python语言开发的,是开发同事 ...
- Python自动化运维工具fabric的安装
使用shell命令进行复杂的运维时,代码往往变得复杂难懂,而使用python脚本语言来编写运维程序,就相当于开发普通的应用一样,所以维护和扩展都比较简单,更重要的是python运维工具fabric能自 ...
- 自动化运维工具Ansible详细部署 (转载)
自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog. ...
- 自动化运维工具——ansible详解(一)
ansible 简介 ansible 是什么? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统 ...
- 企业级自动化运维工具应用实战-ansible
背景 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试,运 ...
- 项目实战10.1—企业级自动化运维工具应用实战-ansible
实战环境: 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测 ...
- CentOS7Linux中自动化运维工具Ansible的安装,以及通过模块批量管理多台主机
使用自动化运维工具Ansible集中化管理服务器 Ansible概述 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于saltstack和Puppet ...
- 自动化运维工具Ansible介绍
一个由 Python 编写的强大的配置管理解决方案.尽管市面上已经有很多可供选择的配置管理解决方案,但他们各有优劣,而 ansible 的特点就在于它的简洁. 让 ansible 在主流的配置管理系统 ...
- 自动化运维工具Ansible的部署步骤详解
本文来源于http://sofar.blog.51cto.com/353572/1579894,主要是看到这样一篇好文章,想留下来供各位同僚一起分享. 一.基础介绍 ================= ...
- Ansible自动化运维工具使用
概述本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装主机配置Ad-Hoc command(命令行执行)Playbook (任务剧本)Ansible 和 Sa ...
随机推荐
- 用scikit-learn和pandas学习Ridge回归
本文将用一个例子来讲述怎么用scikit-learn和pandas来学习Ridge回归. 1. Ridge回归的损失函数 在我的另外一遍讲线性回归的文章中,对Ridge回归做了一些介绍,以及什么时候适 ...
- iOS开发之抽屉效果实现
说道抽屉效果在iOS中比较有名的第三方类库就是PPRevealSideViewController.一说到第三方类库就自然而然的想到我们的CocoaPods,今天的博客中用CocoaPods引入PPR ...
- 构建自己的PHP框架--构建缓存组件(2)
上一篇博客中使用文件实现了缓存组件,这一篇我们就使用Redis来实现一下,剩下的如何使用memcache.mysql等去实现缓存我就不一一去做了. 首先我们需要安装一下 redis 和 phpredi ...
- iOS 如何自定义UISearchBar 中textField的高度
iOS 如何自定义UISearchBar 中textField的高度 只需设置下边的方法就可以 [_searchBar setSearchFieldBackgroundImage:[UIImage i ...
- 当Azure里的虚拟机网卡被禁用了之后……
这样的想法来自于一个假设,如果网卡被禁用之后,用户该如何处理,Azure又该如何处理,对于设置在虚拟机中的禁用网卡选项是否还有存在的意义?通常情况下,点选了禁用网卡对于你和虚拟机来说就一下之抓瞎了,瞬 ...
- jQuery-1.9.1源码分析系列(十) 事件系统——事件体系结构
又是一个重磅功能点. 在分析源码之前分析一下体系结构,有助于源码理解.实际上在jQuery出现之前,Dean Edwards的跨浏览器AddEvent()设计做的已经比较优秀了:而且jQuery事件系 ...
- QTableWidget行选中/删除/添加行
1 均分各列 tableWidget->horizontalHeader()->setStretchLastSection(true); //就是这个地方 tableWidget-> ...
- VS2015+cordova+ionic安装配置
VS2015已经出了正式版,想用来试一下cordova方面的开发.最近在看ionic这个框架,于是想能在VS2015里编辑js就好了. 下面说一下蛋疼的安装配置过程. 一.安装VS2015及Andro ...
- 简析.NET Core 以及与 .NET Framework的关系
简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...
- C++中关于[]静态数组和new分配的动态数组的区别分析
这篇文章主要介绍了C++中关于[]静态数组和new分配的动态数组的区别分析,很重要的概念,需要的朋友可以参考下 本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加 ...