谨以此文纪念吊炸天的Centos环境一键部署方案的新鲜出炉

  辛苦大半年,产品准备上线了,BOSS亲自体验安装部署,看着超过200+页的安装文档直接崩溃了(需要部署23个基础服务),经历了超过3个小时的安装包下载过程,责令整合、优化安装部署过程,简化安装流程,BOSS原话“你们是想玩s现场的运维兄弟吗?统统去出差…”小弟不才,有幸领到这一艰巨的任务,开始了一键部署的艰苦旅程…

一键部署的目的

1、简化产品的安装

能够自动部署相关服务(支持卸载、重复安装)

提供自动修改配置文件的能力,不需要手工修改配置文件(现场的运维都是大神,我遇到过修改配置文件将服务搞坏的情况)

2、 服务运维

能够进行服务运行状态监控

提供服务启动、停止、查看日志的能力

方案

采用shell脚本完成

具体的流程

1、系统设置,关闭防火墙、设置主机名之类的

2、提取公共的部分,例如JDK、多台服务器之间的ssh访问

3、服务的安装,包括解压、修改配置文件、添加开机自启、服务启动

4、服务的卸载(文件目录、数据文件、启动项)、重复安装

5、状态监控

Shell脚本

关闭防火墙

修改主机名

安装JDK

安装服务,以ActiveMQ为例

卸载服务,仍然以ActiveMQ为例

至此安装、部署大体完毕

使用shell脚本进行控制即可

服务状态监控比较有意思,写了个grace脚本,用法如下:

grace 接收两个参数:

第一个参数:接收服务名称,例如 mq

第二个参数:接收操作内容,包括status、stop、start

ActiveMQ脚本

至此,完成全部功能的,输出shell脚本超过30个,经过2周的编写、调试,圆满完成BOSS交代的任务

安装部署的流程简化:

上传安装包->启动安装脚本->等待安装完成(可以进行喝茶、抽烟之类的活动)->检查安装服务状态->成功->安装结束

安装耗时大概20分钟,之前手工部署需要1天时间,极大的缩短了安装部署的时间、难度、成本,规范了公司安装部署的流程,经BOSS推广,在整个研发中心,各产品线之间进行推广

解决了centos环境的安装部署,稍后还有windows环境的安装部署,呵呵

Centos 环境一键部署脚本(shell脚本)的更多相关文章

  1. Centos 6.4上面用Shell脚本一键安装vsftpd

    Centos 6.4上面用Shell脚本一键安装vsftpd install.sh #!/bin/bash if [ `uname -m` == "x86_64" ];then m ...

  2. Centos 6.4上面用Shell脚本一键安装mysql 5.6.15

    Centos 6.4上面用Shell脚本一键安装mysql 5.6.15  #!/bin/bash if [ `uname -m` == "x86_64" ];then machi ...

  3. CentOS 下运维自动化 Shell 脚本之 expect

    CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与pri ...

  4. Centos下使用php调用shell脚本

    我们在实际项目中或许会遇到php调用shell脚本的需求.下面就用简单案例在Centos环境下实践 准备 查看php.ini中配置是否打开安全模式 //php.ini safe_mode = //这个 ...

  5. 自动化软件部署的shell脚本

    在实际项目中,我们经常用到需要自动化部署软件的情况,这种情况下,我们就不能人为地在命令行下敲击命令了,一切都需要通过shell脚本自动化完成.所谓自动化完成,其实也就是通过写shell程序,模拟人为敲 ...

  6. Linux部署项目 shell脚本启动 及 Centos7开放指定端口

    我们首先要在linux上安装好jdk   tomcat   mysql  这些基本环境,这些可以在楼主的  Linux入门   里面找到. linux部署spring项目 1. 右击项目,maven ...

  7. kettle文件自动化部署(shell脚本执行):命令行参数传入

    shell脚本中调用kitchen 和 pan去执行,job和transformation文件.分 windows和 dos系统两种. 举个简单的小例子 shell脚本: export JAVA_HO ...

  8. Centos环境下部署游戏服务器-软件安装

    这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个n ...

  9. Jenkins实现测试环境到生产环境一键部署(Windows)

    前言: 因为dotnet在发布站点后,然后再上传服务时,会因为各种的网速问题,导致站点瞬间挂掉!那么通过一键部署,先在测试站点测试好的文件,复制到正式站点上的一个缓冲区,进行预热配置,之后再本机进行文 ...

随机推荐

  1. JS中的几种函数

    函数可以说是js中最具特色的地方,在这里我将分享一下有关函数的相关知识: 包装函数:        (function foo(){...})作为函数表达式意味着foo只能在...所代表的位置中被访问 ...

  2. Python全栈之路-Day32

    1 类的__slots__ #!/usr/bin/env python # __Author__: "wanyongzhen" # Date: 2017/4/25 # 只能定义__ ...

  3. 磁盘IO:缓存IO与直接IO

    文件系统IO分为DirectIO和BufferIO,其中BufferIO也叫Normal IO. 1. 缓存IO 缓存I/O又被称作标准I/O,大多数文件系统的默认I/O操作都是缓存I/O.在Linu ...

  4. JS基础——入门必备

    ·首先,来简单的说一下,JS是啥,JS是JavaScript的简写,是 基于浏览器的 基于对象的 事件驱动 脚本语言 ·那么JS有什么用呢?ta可以实现: 表单验证 添加动画效果 动态更改页面内容 A ...

  5. 结束C#2的讲解:最后的一些特性

    分部类型 可以在多个源文件中为一个类型编写代码.特别适合用于部分代码是自动生成,而其他部分的代码为手动类型. 多个源代码文件组成的类型为分部类型 #region 7-1演示分部类型的混合声明 part ...

  6. mui开发app之webview是什么

    WebView(网络视图)能加载显示网页,可以将其视为一个浏览器,webview被封装在html5+,plus对象中,底层由java,OC实现. 先来谈谈我对webview的理解: 使用mui开发的a ...

  7. 分针网—每日分享:HTML解析原理

    标准的web前端工程师需要知道 ◎浏览器(或者相应播放器)的渲染/重绘原理   这我得加把劲了.我还真的说的不是很清楚,我就G下,结果不是很多,找到了有一个,就记下来了...   以下部分来自hand ...

  8. 让Unity的Inspector面板支持字符限制(restrict)功能

    今天在优化红点组件,笔者打算将红点id由10进制改为16进制处理,就打算将红点id字段由uint类型改成string类型,用于填写16进制的字符(因为在Inspector面板里,uint/int类型字 ...

  9. CAS单点登录服务器搭建

    关于cas单点登录的原理及介绍这里不做说明了,直接开始: 1.war包下载 去官网(https://www.apereo.org/projects/cas/download-cas)下载cas_ser ...

  10. OOP 三大特点:继承性,封装性,多态性

    1.继承性:代码重用 2.封装性:  使相似数据和操作进行封装,保持代码安全 3.多态性:  PHP不支持多态