Skip to content

a1258771/shell

 
 

Repository files navigation

说明

运维自动化脚本,其中

  • 根目录下为公共脚本,具体脚本用途及调用参数说明查看脚本注释(第二行)

    • 注意批量启动(startAll.sh)、批量停止(killAll.sh)仅用于开发、测试环境
    • jenkins构建脚本:jenkins-build.sh
    • 自动发布部署脚本:deploy.sh
    • 局域网ip探测和当前ip获取脚本:ip.sh
    • ssh免密登陆脚本:ssh_login.sh
    • 随机密码及druid数据源密码密文配置脚本:pwd.sh
    • 系统host配置和字体安装脚本:install-hosts-font.sh
    • jdk安装配置脚本:install-jdk.sh
    • docker和docker-compose安装配置脚本:install-docker-compose.sh
  • 子目录为程序中所需的中间件,中间件包装脚本在中间件bin目录下

    • 启动脚本startup.sh,启动前会检查是否已安装,未安装会先安装,安装支持主机安装和docker-compose(需要有互联网)两种方式,其中主机安装支持离线安装(需拷贝离线安装包目录/opt/softs)和在线安装(需要有互联网)两种方式
    • 停止脚本stop.sh 检测进程和安装模式(主机安装模式或docker-compose容器模式),如中间件支持优雅停服,优先优雅停服,否则强制停止

脚本编写规范:

  • 脚本第一行声明命令解释器,默认#!/bin/bash
  • 脚本第二行注释说明 具体用途和调用参数(如有,每个参数的含义、是否可选、是否有默认值)
  • 脚本公共变量统一声明,命名简洁易懂并要有简洁的注释说明,其中可能变更的变量靠前
  • 参数校验(如有)、检查(系统、用户、权限、目录....)
  • 函数或过程 按功能分段实现 ,尽量以函数形式复用
  • 脚本必须在开发或测试环境测试验证后,才能用于正式环境
  • 需充分考虑异常情况,比如不可见字符或变量为空,特别是涉及删除命令中包含变量,变量可能为空的情况,如rm -rf $log_dir/* ,当log_dir为空时,就造成了一级运维事故

TODO

1、编写集成自动化脚本,调用各中间件脚本(自动化安装、配置、启动)

2、部分中间件未编写初始配置自启动服务

3、中间件需支持主机和docker-compose2种模式,其中主机模式需支持在线和离线安装2种模式

About

shell脚本

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 75.4%
  • HTML 17.6%
  • Batchfile 7.0%