Browse Source

08jenkins-agent-install-centos.sh

master
lizw 3 years ago
parent
commit
1b03f5c3a2
  1. 2
      00base/07env-install-centos.sh
  2. 59
      00base/08jenkins-agent-install-centos.sh

2
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}" "

59
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; }

Loading…
Cancel
Save