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在发布站点后,然后再上传服务时,会因为各种的网速问题,导致站点瞬间挂掉!那么通过一键部署,先在测试站点测试好的文件,复制到正式站点上的一个缓冲区,进行预热配置,之后再本机进行文 ...
随机推荐
- Centos7完全分布式搭建Hadoop2.7.3
(一)软件准备 1,hadoop-2.7.3.tar.gz(包) 2,三台机器装有cetos7的机子 (二)安装步骤 1,给每台机子配相同的用户 进入root : su root ---------& ...
- 在jquery中each循环中,要用return false代替break,return true代替continue。
在jquery中each循环中,要用return false代替break,return true代替continue. $.each(data, function (n, value) { if(v ...
- python基本数据类型——int
一.int的范围 python2: 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1: 在64位系统上,整数的位数为64位,取值范围为-2**63-2**63-1: pyth ...
- 八种创建等高列布局【出自w3c】
高度相等列在Web页面设计中永远是一个网页设计师的需求.如果所有列都有相同的背景色,高度相等还是不相等都无关紧要,因为你只要在这些列的父元素中设置一个背景色就可以了.但是,如果一个或多个列需要单独设置 ...
- 用Redis存储Tomcat集群的Session
作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 前段时间,我花了不少时间来寻求一种方法,把新开发的代码推送到到生产系统中部署,生产系统要能够零宕机.对使用 ...
- java.util.prefs.Preferences
java.util.prefs.Preferences Preferences类是在JDK1.4中首次提供的,可以用它来存放应用程序的配置数据,这里对Preferences类做点介绍. 1.Prefe ...
- Web常见约定规范(精选)
常见的约定规范 (一)HTML约定规范 1,html属性顺序:id class name data-xxx (src for type href)(title alt)(aria-xxx role) ...
- Git详细教程---多人协作开发
Git可以完成两件事情: 1. 版本控制 2.多人协作开发 如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发. 如果有多个开发人员共同开发一个项目,如何进行协作的呢. Git提供了一个非 ...
- OOP 三大特点:继承性,封装性,多态性
1.继承性:代码重用 2.封装性: 使相似数据和操作进行封装,保持代码安全 3.多态性: PHP不支持多态
- TDE: Transparent Data Encryption brief introduction
1. What is TDE? Briefly speaking, TDE is used to encrypted data. 2. The benifits: Belows are come fr ...