From 1b03f5c3a2aa26bf0caf90fd611bc5a6757ae61e Mon Sep 17 00:00:00 2001 From: lizw <1183409807@qq.com> Date: Tue, 1 Nov 2022 14:02:31 +0800 Subject: [PATCH] 08jenkins-agent-install-centos.sh --- 00base/07env-install-centos.sh | 2 +- 00base/08jenkins-agent-install-centos.sh | 59 ++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/00base/07env-install-centos.sh b/00base/07env-install-centos.sh index 65b0361..ccd8aa8 100644 --- a/00base/07env-install-centos.sh +++ b/00base/07env-install-centos.sh @@ -485,7 +485,7 @@ function init:jenkins() { local host="127.0.0.1" local java_path="${BASE_DIR}/jenkins/${JENKINS_JAVA_DIR_NAME}" local jenkins_file="${BASE_DIR}/jenkins/${JENKINS_FILE_NAME}" - local java_mem_opts=" -DappName=jenkins -server -Xmx1g -Xms1g" + local java_mem_opts=" -DappName=jenkins -server -Xmx1g" local database_opts=" -Ddatabase.codeset=ISO-8859-1 -Ddatabase.logging=false" local java_opts_ext=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=UTF-8 -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai" command::exec "${host}" " diff --git a/00base/08jenkins-agent-install-centos.sh b/00base/08jenkins-agent-install-centos.sh index 2a3d86f..d560365 100644 --- a/00base/08jenkins-agent-install-centos.sh +++ b/00base/08jenkins-agent-install-centos.sh @@ -45,6 +45,7 @@ SUDO_PASSWORD="" #--- 指令 INIT_TAG="0" #--- 指令参数 +JENKINS_AGENT="" GIT_TAG="1" JAVA_TAG="1" GRADLE_VERSION="6.8.3" @@ -218,6 +219,57 @@ function init:mkdir() { log::info "[mkdir]" "创建目录成功!" } +# 下载 +function init:jenkins_agent() { + log::info "[jenkins-agent]" "下载jenkins-agent..." + local host="127.0.0.1" + local agent_file="${BASE_DIR}/../agent.jar" + local java_mem_opts=" -DappName=jenkins -server -Xmx1g" + local database_opts=" -Ddatabase.codeset=ISO-8859-1 -Ddatabase.logging=false" + local java_opts_ext=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=UTF-8 -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai" + command::exec "${host}" " + if [ ! -f "$agent_file" ]; then + mkdir -p ${BASE_DIR}/workspace + wget --timeout=10 --no-check-certificate ${JENKINS_AGENT} -O $agent_file + cd ${BASE_DIR} + # 写文件start.sh文件 + cat << EOF > ${BASE_DIR}/start.sh +#!/bin/bash + +java='${BASE_DIR}/env/java/${JDK11_DIR_NAME}/bin/java' +jnlpUrl='' +secret='' +workDir='${BASE_DIR}/workspace' +pid=\\\`ps -ef | grep 'DappName=jenkins-agent' | grep -v 'grep' | awk '{print \\\$2}'\\\` +if [ -z \\\$pid ];then + nohup \$java $java_mem_opts $database_opts $java_opts_ext -jar $agent_file -jnlpUrl '\$jnlpUrl' -secret '\$secret' -workDir '\$workDir' >${BASE_DIR}/agent-logs.log 2>&1 & + echo 'jenkins-agent启动成功!' +else + echo 'jenkins-agent正在运行...' +fi +echo '查看日志: tail -F ${BASE_DIR}/agent-logs.log -n 100' +EOF + # 写文件kill.sh文件 + cat << EOF > ${BASE_DIR}/kill.sh +#!/bin/bash + +pid=\\\`ps -ef | grep 'DappName=jenkins-agent' | grep -v 'grep' | awk '{print \\\$2}'\\\` +if [ -z \\\$pid ];then + echo 'jenkins-agent未运行' +else + ps -ef | grep 'DappName=jenkins-agent' | grep -v 'grep' | awk '{print \\\$2}' | xargs kill + echo 'jenkins-agent已停止!' +fi +EOF + chmod +x ${BASE_DIR}/start.sh + chmod +x ${BASE_DIR}/kill.sh + sudo chown -R \$(id -u):\$(id -g) ${BASE_DIR} + fi + " + check::exit_code "$?" "jenkins-agent" "$host 下载jenkins-agent" "exit" + log::info "[jenkins-agent]" "jenkins-agent下载成功!" +} + # 安装git function init:git() { log::info "[git]" "安装git..." @@ -353,6 +405,7 @@ Available Commands: init 初始化系统 Flag: -base-dir 新增用户名, 默认: '/data/jenkins-agent/env' + -agent jenkins-agent下载地址(${JENKINS_URL}/jnlpJars/agent.jar), 默认: '' -git 是否安装git, 默认: '1' -java 是否安装java(8, 11, 17), 默认: '1' -gradle 安装gradle版本(6.8.3 | 6.9.3 | 7.4.2 | 7.5.1), 默认: '6.8.3' @@ -362,6 +415,7 @@ Flag: Example: jenkins-agent-install-centos.sh init \\ -base-dir '/data/jenkins-agent/env' \\ + -agent '' \\ -git 0 \\ -java 0 \\ -gradle '6.8.3' \\ @@ -383,6 +437,10 @@ while [ "${1:-}" != "" ]; do -base-dir ) shift BASE_DIR=${1:-BASE_DIR} ;; + -agent ) shift + JENKINS_AGENT=${1:-JENKINS_AGENT} + ;; + ;; -git ) shift GIT_TAG=${1:-GIT_TAG} ;; @@ -410,6 +468,7 @@ log::info "[start]" "bash $0 ${SCRIPT_PARAMETER}" if [[ "${INIT_TAG:-}" == "1" ]]; then check::command init:mkdir + [[ -n "${JENKINS_AGENT:-}" ]] && { init:jenkins_agent; } [[ "${GIT_TAG:-}" == "1" ]] && { init:git; } [[ "${JAVA_TAG:-}" == "1" ]] && { init:java; } [[ -n "${GRADLE_VERSION:-}" ]] && { init:gradle; }