Centos 环境一键部署脚本(shell脚本)
谨以此文纪念吊炸天的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脚本)的更多相关文章
- Centos 6.4上面用Shell脚本一键安装vsftpd
Centos 6.4上面用Shell脚本一键安装vsftpd install.sh #!/bin/bash if [ `uname -m` == "x86_64" ];then m ...
- 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 ...
- CentOS 下运维自动化 Shell 脚本之 expect
CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与pri ...
- Centos下使用php调用shell脚本
我们在实际项目中或许会遇到php调用shell脚本的需求.下面就用简单案例在Centos环境下实践 准备 查看php.ini中配置是否打开安全模式 //php.ini safe_mode = //这个 ...
- 自动化软件部署的shell脚本
在实际项目中,我们经常用到需要自动化部署软件的情况,这种情况下,我们就不能人为地在命令行下敲击命令了,一切都需要通过shell脚本自动化完成.所谓自动化完成,其实也就是通过写shell程序,模拟人为敲 ...
- Linux部署项目 shell脚本启动 及 Centos7开放指定端口
我们首先要在linux上安装好jdk tomcat mysql 这些基本环境,这些可以在楼主的 Linux入门 里面找到. linux部署spring项目 1. 右击项目,maven ...
- kettle文件自动化部署(shell脚本执行):命令行参数传入
shell脚本中调用kitchen 和 pan去执行,job和transformation文件.分 windows和 dos系统两种. 举个简单的小例子 shell脚本: export JAVA_HO ...
- Centos环境下部署游戏服务器-软件安装
这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个n ...
- Jenkins实现测试环境到生产环境一键部署(Windows)
前言: 因为dotnet在发布站点后,然后再上传服务时,会因为各种的网速问题,导致站点瞬间挂掉!那么通过一键部署,先在测试站点测试好的文件,复制到正式站点上的一个缓冲区,进行预热配置,之后再本机进行文 ...
随机推荐
- python——网络编程
Socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. sock ...
- add,update,list.jsp源码
add:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncod ...
- 学习Spark——环境搭建(Mac版)
大数据情结 还记得上次跳槽期间,与很多猎头都有聊过,其中有一个猎头告诉我,整个IT跳槽都比较频繁,但是相对来说,做大数据的比较"懒"一些,不太愿意动.后来在一篇文中中也证实了这一观 ...
- (原创)如何在性能测试中自动生成并获取Oracle AWR报告
版权声明:本文为原创文章,转载请先联系并标明出处 由于日常使用最多的数据库为Oracle,因此,最近又打起了Oracle的AWR报告的主意. 过去我们执行测试,都是执行开始和结束分别手动建立一个快照, ...
- 介绍几个python的音频处理库
一.eyeD3 直接在google上搜索python mp3 process ,推荐比较多的就是这个第三方库了.先来看看官方介绍吧. About eyeD3 is a Python tool for ...
- 区划代码 node 版爬虫尝试
前言 对于区划代码数据,很多人都不会陌生,大多公司数据库都会维护一份区划代码,包含省市区等数据.区划信息跟用户信息息息相关,往往由于历史原因很多数据都是比较老的数据,且不会轻易更改.网上也有很多人提供 ...
- 1.Tsung介绍(翻译)
1.介绍 1.1什么是Tsung? Tsung(以前是IDX-Tsunami)是一种分布式负载测试工具.它是基于协议的,并且通常被用于压测HTTP, WebDAV, SOAP, PostgreSQL, ...
- pod lib lint 遇到的问题
在pod lib lint(Xcode 8.3.2)校验组件是否有效的时候报了如下错误: - ERROR | [iOS] unknown: Encountered an unknown error ( ...
- python selenium 环境搭建(一)
elenium 虽然过了这么多年,但是到目前为止依然是比较流行的自动化框架了,还有很多的初学者在学习,所以根据自己的时间将把相关的资料汇总一下,下面首先我们需要搭建一下基础环境. 首先自己本身比较笨, ...
- GO的初始简书(二)环境变量设置与说明
安装GO后你应该做的一些事~ 将自己需要开发的项目加入环境变量中的gopath中 GOPATH其实就一个工作目录 -----正在开发的项目 1首先在本地新建目录 go_work 2 vi ~/.b ...