diff --git a/00base/07env-install-centos.sh b/00base/07env-install-centos.sh new file mode 100644 index 0000000..a44f3c1 --- /dev/null +++ b/00base/07env-install-centos.sh @@ -0,0 +1,242 @@ +#!/usr/bin/env bash + +#----------------------------------------------------------------------------------------------------- +# OracleJDK 下载地址 +# 镜像1: https://www.injdk.cn/ (https://d6.injdk.cn/oraclejdk/11/jdk-11.0.16.1_linux-x64_bin.tar.gz) +# 镜像2: http://www.codebaoku.com/jdk/jdk-index.html (https://114-233-56-217.d.cjjd09.com:30443/123-511/85b2a0b8/1661483-0/85b2a0b8c16863b3ad55e742ac2ba9ff?v=3&t=1667188559&s=f2df45083bb69864446f801bf25b725c&i=dde8a980&filename=jdk-11.0.15.1_linux-x64_bin.tar.gz&d=6ee52da1) +# +# +# +#----------------------------------------------------------------------------------------------------- + +# 配置 +ADD_USER_NAME="www" +ADD_USER_PASSWORD="MoXF2Zi6u7f7lqZu" +BASE_DIR="/opt" + +# 软件 +#--- nodejs + +#--- jdk +JDK_URL="https://d6.injdk.cn/oraclejdk/11/jdk-11.0.16.1_linux-x64_bin.tar.gz" +JDK_FILE_NAME="jdk-11.0.16.1_linux-x64_bin.tar.gz" +JDK_DIR_NAME="jdk-11.0.16.1" +#--- gradle + +#--- maven + +#--- jenkins + + +# 安装标识 +#--- 指令 +INIT_TAG="0" +#--- 指令参数 +ADD_USER_TAG="1" +GIT_TAG="1" +DSTAT_TAG="1" +HTOP_TAG="1" +NODEJS_TAG="1" +JAVA_TAG="1" +GRADLE_TAG="1" +MAVEN_TAG="1" +JENKINS_TAG="1" + +# 脚本设置 +TMP_DIR="$(rm -rf /tmp/env-install* && mktemp -d -t env-install.XXXXXXXXXX)" +LOG_FILE="${TMP_DIR}/env-install.log" +ERROR_INFO="\n\033[31mERROR Summary: \033[0m\n " +ACCESS_INFO="\n\033[32mACCESS Summary: \033[0m\n " +SCRIPT_PARAMETER="$*" + +###################################################################################################### +# 通用函数 +###################################################################################################### +# 信号处理 +function trap::info() { + [[ ${#ERROR_INFO} -gt 37 ]] && echo -e "$ERROR_INFO" + [[ ${#ACCESS_INFO} -gt 38 ]] && echo -e "$ACCESS_INFO" + [ -f "$LOG_FILE" ] && echo -e "\n\n See detailed log >>> $LOG_FILE \n\n" + trap '' EXIT + exit +} + +# 错误日志 +function log::error() { + local item; item="[$(date +'%Y-%m-%dT%H:%M:%S.%N%z')]: \033[31mERROR: \033[0m$*" + ERROR_INFO="${ERROR_INFO}${item}\n " + echo -e "${item}" | tee -a "$LOG_FILE" +} + +# 基础日志 +function log::info() { + printf "[%s]: \033[32mINFO: \033[0m%s\n" "$(date +'%Y-%m-%dT%H:%M:%S.%N%z')" "$*" | tee -a "$LOG_FILE" +} + +# 警告日志 +function log::warning() { + printf "[%s]: \033[33mWARNING: \033[0m%s\n" "$(date +'%Y-%m-%dT%H:%M:%S.%N%z')" "$*" | tee -a "$LOG_FILE" +} + +# 访问信息 +function log::access() { + ACCESS_INFO="${ACCESS_INFO}$*\n " + printf "[%s]: \033[32mINFO: \033[0m%s\n" "$(date +'%Y-%m-%dT%H:%M:%S.%N%z')" "$*" | tee -a "$LOG_FILE" +} + +# 执行日志 +function log::exec() { + printf "[%s]: \033[34mEXEC: \033[0m%s\n" "$(date +'%Y-%m-%dT%H:%M:%S.%N%z')" "$*" >> "$LOG_FILE" +} + +###################################################################################################### +# 安装函数 +###################################################################################################### +# 新增用户 +function init:add_user() { + log::info "[add-user]" "新增用户" +} + +# 安装git环境 +function init:git() { + log::info "[git]" "安装git环境" +} + +# 安装dstat +function init:dstat() { + log::info "[dstat]" "安装dstat" +} + +# 安装htop +function init:htop() { + log::info "[htop]" "安装htop" +} + +# 安装nodejs环境 +function init:nodejs() { + log::info "[nodejs]" "安装nodejs环境" +} + +# 安装java环境 +function init:java() { + log::info "[java]" "安装java环境" +} + +# 安装gradle环境 +function init:gradle() { + log::info "[gradle]" "安装gradle环境" +} + +# 安装maven环境 +function init:maven() { + log::info "[maven]" "安装maven环境" +} + +# 安装jenkins环境 +function init:jenkins() { + log::info "[jenkins]" "安装jenkins环境" +} + +###################################################################################################### +# 主调用逻辑 +###################################################################################################### +trap trap::info 1 2 3 15 EXIT + +# 使用帮助 +function help::usage() { + cat << EOF +Usage: + $(basename "$0") [command] + +Available Commands: + init 初始化系统 +Flag: + -add-user 是否新增用户, 默认: '1' + -user-name 新增用户名, 默认: 'www' + -base-dir 新增用户名, 默认: '/opt' + -git 是否安装git环境, 默认: '1' + -dstat 是否安装dstat, 默认: '1' + -htop 是否安装htop, 默认: '1' + -nodejs 是否安装nodejs环境, 默认: '1' + -java 是否安装java环境, 默认: '1' + -gradle 是否安装gradle环境, 默认: '1' + -maven 是否安装maven环境, 默认: '1' + -jenkins 是否安装jenkins环境, 默认: '1' + +Example: + $0 init \\ + -add-user \\ + -nodejs \\ + -java \\ + -gradle 0 \\ + -maven + +EOF + exit 1 +} + +# 参数处理 +[ "$#" == "0" ] && help::usage +while [ "${1:-}" != "" ]; do + case $1 in + # -------------------------------------------------------------- 指令 + init ) INIT_TAG="1" + ;; + # -------------------------------------------------------------- 指令参数 + -add-user ) shift + ADD_USER_TAG=${1:-ADD_USER_TAG} + ;; + -user-name ) shift + ADD_USER_NAME=${1:-ADD_USER_NAME} + ;; + -base-dir ) shift + BASE_DIR=${1:-BASE_DIR} + ;; + -git ) shift + GIT_TAG=${1:-GIT_TAG} + ;; + -dstat ) shift + DSTAT_TAG=${1:-DSTAT_TAG} + ;; + -htop ) shift + HTOP_TAG=${1:-HTOP_TAG} + ;; + -nodejs ) shift + NODEJS_TAG=${1:-NODEJS_TAG} + ;; + -java ) shift + JAVA_TAG=${1:-JAVA_TAG} + ;; + -gradle ) shift + GRADLE_TAG=${1:-GRADLE_TAG} + ;; + -maven ) shift + MAVEN_TAG=${1:-MAVEN_TAG} + ;; + -jenkins ) shift + JENKINS_TAG=${1:-JENKINS_TAG} + ;; + * ) help::usage + exit 1 + esac + shift +done + +# 开始 +log::info "[start]" "bash $0 ${SCRIPT_PARAMETER}" +# 动作 +if [[ "${INIT_TAG:-}" == "1" ]]; then + [[ "${ADD_USER_TAG:-}" == "1" ]] && { init:add_user; } + [[ "${GIT_TAG:-}" == "1" ]] && { init:git; } + [[ "${DSTAT_TAG:-}" == "1" ]] && { init:dstat; } + [[ "${HTOP_TAG:-}" == "1" ]] && { init:htop; } + [[ "${NODEJS_TAG:-}" == "1" ]] && { init:nodejs; } + [[ "${JAVA_TAG:-}" == "1" ]] && { init:java; } + [[ "${GRADLE_TAG:-}" == "1" ]] && { init:gradle; } + [[ "${MAVEN_TAG:-}" == "1" ]] && { init:maven; } + [[ "${JENKINS_TAG:-}" == "1" ]] && { init:jenkins; } +else + help::usage +fi + +# bash <(curl -s http://git.yvanui.com/lizhiwei/jztd-deploy/raw/master/00base/07env-install-centos.sh) [cmd]