1.Jenkins部署
1 安装JDK
上传jdk安装包,并解压到/usr/local目录,然后在/etc/profile文件追加以下内容。
# java env
export JAVA_HOME="/usr/local/java-1.8.0"
export PATH=${PATH}:${JAVA_HOME}/bin
2 创建工作目录
使用以下命令创建工作目录后,将jenkins.war文件上传到该工作目录。
mkdir -p /data/jenkins
3 启动
在/data/jenkins目录新建一个monitor.sh脚本,并复制以下shell脚本。
#!/bin/bash
CUR_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_FILE="${CUR_PATH}/jenkins_start.log"
source /etc/profile
export JENKINS_HOME=/data/jenkins
function log_info(){
echo -e "\e[32m[INFO] [$(date "+%Y-%m-%d %T")] $1 \e[0m"
echo -e "\e[32m[INFO] [$(date "+%Y-%m-%d %T")] $1 \e[0m" >>${LOG_FILE}
}
function log_warn(){
echo -e "\e[33m[WARN] [$(date "+%Y-%m-%d %T")] $1 \e[0m"
echo -e "\e[33m[WARN] [$(date "+%Y-%m-%d %T")] $1 \e[0m" >>${LOG_FILE}
}
function log_error(){
echo -e "\e[31m[ERROR] [$(date "+%Y-%m-%d %T")] $1 \e[0m"
echo -e "\e[31m[ERROR] [$(date "+%Y-%m-%d %T")] $1 \e[0m">>${LOG_FILE}
exit 1
}
function usage(){
echo -e "\e[31m[ERROR]: Please input right command. Usage: /bin/bash $(basename "$0") start|stop|restart"
exit 1
}
function start_jenkins(){
log_info "${FUNCNAME[0]} begin."
jenkins_pid=$(ps -ef|grep java|grep jenkins.war|awk '{print $2}')
if [[ -n "${jenkins_pid}" ]];then
log_info "cur jenkins pid exist. no need to start again."
exit 0
fi
log_info "cur jenkins pid does no exit. start it now."
nohup java -jar ${CUR_PATH}/jenkins.war --httpPort=8088 >> ${CUR_PATH}/jenkins.log 2>&1 &
sleep 5
jenkins_pid=$(ps -ef|grep java|grep jenkins.war|awk '{print $2}')
if [[ -n "${jenkins_pid}" ]];then
log_info "start jenkins success!."
else
log_error "start jenkins error."
fi
log_info "${FUNCNAME[0]} end."
}
function stop_jenkins(){
log_info "${FUNCNAME[0]} begin."
jenkins_pid=$(ps -ef|grep java|grep jenkins.war|awk '{print $2}')
if [[ -n "${jenkins_pid}" ]];then
log_info "cur pid is ${jenkins_pid},stop it begin."
kill -9 ${jenkins_pid}
else
log_info "cur pid is null.no need to stop it."
fi
log_info "${FUNCNAME[0]} end."
}
function restart_jenkins(){
log_info "${FUNCNAME[0]} begin."
stop_jenkins
sleep 5
start_jenkins
log_info "${FUNCNAME[0]} end."
}
function main(){
log_info "${FUNCNAME[0]} begin."
cmd=$1
[[ -n "$cmd" ]] || usage
if [[ "${cmd}" == "start" ]];then
start_jenkins
elif [[ "${cmd}" == "stop" ]];then
stop_jenkins
elif [[ "${cmd}" == "restart" ]];then
restart_jenkins
else
usage
fi
log_info "${FUNCNAME[0]} end."
}
main "$@"
4 登陆
根据启动脚本定义的端口为8088,然后使用本机的IP再加这个端口进行访问,密码信息会在刚登录的页面提示如何查找。登陆之后只需要安装推荐的插件安装即可,其他不需要任何操作。后面就可以根据自己的项目新建流水线了。