jenkins部署
Jenkins部署
一、JDK安装
1. 解压
tarfx jdk-8u301-linux-x64.tar.gz-C/usr/local2. 配置环境变量
vim/etc/profileJAVA_HOME=/usr/local/jdk1.8.0_301PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHCLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar3. 重新加载环境变量
source/etc/proflie4. 测试
二、Maven安装
1. 下载软件包
wgethttps://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz2. 解压
tarfx apache-maven-3.8.4-bin.tar.gz-C/usr/local/3. 配置环境变量
vim/etc/profileMAVEN_HOME=/usr/local/apache-maven-3.8.4PATH=${PATH}:${MAVEN_HOME}/bin4. 重新加载环境变量
source/etc/profile5. 修改创建路径
vim/usr/local/apache-maven-3.8.4/conf/settings.xml<localRepository>/data/repository</localRepository>6. 测试
mvn-v三、Jenkins安装
1. 下载软件包
cd/data/jenkins/wgethttps://get.jenkins.io/war-stable/latest/jenkins.war2. 创建用户
useraddjenkinschown-Rjenkins.jenkins /data/jenkins3. 创建启动脚本
#!/bin/bashexportJENKINS_HOME="/data/jenkins"exportJENKINS_LOGS="/data/jenkins/logs"[$USER!="jenkins"]&&echo"Please use jenkins user run script"&&exit1cd$JENKINS_HOME[$#-eq0]&&action=start||action=$1case$actioninstart)psuax|grep-vgrep|grep-q"jenkins.war"&&echo"jenkins is running"&&exit2java-jarjenkins.war--logfile=${JENKINS_LOGS}/jenkins.log--httpPort=8080;;stop)pid=$(psuax|grep-vgrep|grep"jenkins.war"|awk'{print $2}')[-z$pid]&&echo"jenkins not runing"&&exit3kill$pid;;restart)pid=$(psuax|grep-vgrep|grep"jenkins.war"|awk'{print $2}')[-n$pid]&&kill$pidjava-jarjenkins.war--logfile=${JENKINS_LOGS}/jenkins.log--httpPort=8080;;*)echo"$0start|stop|restart"esac4. 启动服务
su- jenkinscd/data/jenkinschmod+x jenkins.sh jenkins.sh start四、Jenkins安装(yum版)
1. 配置yum源
wget-O/etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reporpm--importhttps://pkg.jenkins.io/redhat-stable/jenkins.io.key2. 安装Jenkins
yuminstallfontconfig java-11-openjdk yuminstalljenkins3.修改配置文件
vim/etc/sysconfig/jenkinsJENKINS_HOME="/data/jenkins"JENKINS_USER="jenkins"4. 启动服务
systemctl start jenkins systemctlenablejenkins五、Jenkins安装(docker版)
1. 下载镜像
dockerpull jenkins/jenkins:latest2. 启动服务
dockerrun-d--namejenkins-p8080:8080-p50000:50000\-v/data/jenkins:/var/jenkins_home-v/data/repository:/data/repository\jenkins/jenkins:latest六、配置jenkins
1. 访问
地址:192.168.9.71:80802. 初始化插件
3. 安装插件
4. 创建账号
5. 完成配置
七、系统配置
1. 安装插件
#系统管理–>插件管理
#安装如下插件
publish-over-ssh
Blue Ocean
Role-based Authorization Strategy
- 修改Jenkins插件源(可选)
在当前实验中,Jenkins 插件下在速度较快,因此没有修改该参数。如果需要修改,可以如下操作:
在 /data/jenkins/hudson.model.UpdateCenter.xml 中修改 为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json ,然后重启Jenkins服务 - 默认插件源:https://updates.jenkins.io/update-center.json
2. 全局安全配置
3. 系统配置
4. 全局工具配置
1)Maven配置
2)JDK配置
5. 邮件配置
1)使用内置邮件功能
【系统管理】–>【系统配置】–>填写 系统管理员邮件地址
【系统管理】–>【系统配置】–>填写 邮件通知
八、用户管理
1. 创建用户
#系统管理–>管理用户–>新建用户
2. 管理角色
#系统管理–>Manage and Assign Roles–>Manage Roles
3. 分配角色
#系统管理–>Manage and Assign Roles–>Assign Roles
九、创建项目
1. 新建任务
2. 配置git地址
3. 添加git账号
#在上图中点击添加–>jenkins
4. 添加构建步骤
5. 构建后操作
6. 发版脚本
#!/usr/bin/bashsource/home/qyc/.bash_profileDEPLOY_DIR=$1DEPLOY_FILE_PATH=$2DEPLOY_PATH='/home/qyc'functionusage(){echo"Usage: args [-d dir] [-f file name]"echo"e.g."echo" [-d]deploy dir: relative path"echo" [-f]deploy file path: relative file path"exit1}functiondie(){echo$1exit255}functionremoveFile(){files=`ls-t$DEPLOY_DIR|grep"$DEPLOY_FILE"`index=0maxCount=5forfilein$filesdoif[$index-gt$maxCount];thenecho"=>backup file count reach:$maxFileCount, delete$file"rm-rf$DEPLOY_DIR/$filefiindex=`expr$index +1`doneecho"=>backup fileCount:$index"}functionbackupFile(){sf=$DEPLOY_DIR/$DEPLOY_FILEif[-f$sf];thenmt=`stat-c%y $DEPLOY_DIR/$DEPLOY_FILE|cut-c1-19`fix=${mt//" "/"."}bkFile="$DEPLOY_DIR/$DEPLOY_FILE.$fix"echo"=>backup file:$sfwith fix:$mt"cp$sf$bkFileremoveFileelseecho"=>$sfnot found"fi}functiondeploy(){echo"=>start deloy"mv$DEPLOY_FILE_PATH$DEPLOY_DIR/$DEPLOY_FILE||die"die for mv file!!"$DEPLOY_DIR/start.sh}whilegetoptsd:f: optiondocase"$option"ind)DEPLOY_DIR=$OPTARG;;f)DEPLOY_FILE_PATH=$OPTARG;;\?)usage;;:)echo"Option -$OPTARGrequires an argument">&2usage;;esacdoneif["$DEPLOY_DIR"=""]||["$DEPLOY_FILE_PATH"=""]thenusageelseDEPLOY_DIR=$DEPLOY_PATH/$DEPLOY_DIRDEPLOY_FILE_PATH=$DEPLOY_PATH/$DEPLOY_FILE_PATHDEPLOY_FILE=${DEPLOY_FILE_PATH##*/}echo"=>deploy$DEPLOY_FILE_PATHto$DEPLOY_DIR/$DEPLOY_FILE"if[!-f"$DEPLOY_DIR/start.sh"];thendie"MISS START SHELL UNDER PATH$DEPLOY_DIR"fibackupFile deployecho"done"fi#!/usr/bin/bashsource/home/qyc/.bash_profilepid=`ps-ef|grepdaemon|grep-vgrep|awk'{print $2}'`if["$pid"!=""]thenecho"kill pid:$pid"kill$pidfinohupjava-Dapollo.meta=http://127.0.0.1:8080-Dapp.log.dir=/home/qyc/logs-jar/home/qyc/daemon/daemon.jar&十、监控jenkins
1. 安装插件
官方文档:https://plugins.jenkins.io/prometheus/
2. 配置prometheus
# vim prometheus.ymlscrape_configs: - job_name:'prometheus'static_configs: - targets:['localhost:9090']- job_name:'jenkins'metrics_path:'/prometheus/'file_sd_configs: - files: -'conf.d/jenkins.yml'# vim conf.d/jenkins.yml- targets: -192.168.9.51:80803. 查看
- 配置grafana面板
此处仅作演示,生产中应当根据需求配置面板:
https://grafana.com/grafana/dashboards/9524/revisions
十一、代码提交自动触发
1. 安装插件
在Jenkins上安装Generic Webhook Trigger插件
2. 项目仓库中配置勾子
3. 在jenkins上配置触发
十二、Sonarqube代码检测
1. 下载
# https://www.sonarsource.com/products/sonarqube/downloads/historical-downloads/wgethttps://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.8.100196.zip2. 解压
unzipsonarqube-9.9.8.100196.zip-d/usr/local/ln-s/usr/local/sonarqube-9.9.8.100196/ /usr/local/sonarqube3. 修改配置
# vim /usr/local/sonarqube/conf/sonar.propertiessonar.jdbc.username=sonarsonar.jdbc.password=123456sonar.jdbc.url=jdbc:postgresql://127.0.0.1/sonar?currentSchema=public# vim /usr/local/sonarqube/bin/linux-x86-64/sonar.shSONAR_JAVA_PATH=/usr/local/jdk-17.0.12/bin/java4. 创建用户
useraddsonarchown-Rsonar:sonar /usr/local/sonarqube5. 修改内核参数
# vim /etc/sysct.confvm.max_map_count=262144fs.file-max=655356. 配置启动脚本
# vim /lib/systemd/system/sonar.service[Unit]Description=SonarQubeserviceAfter=syslog.target network.target[Service]Type=forkingExecStart=/usr/local/sonarqube/bin/linux-x86-64/sonar.sh startExecStop=/usr/local/sonarqube/bin/linux-x86-64/sonar.sh stopUser=sonarGroup=sonarRestart=alwaysLimitNOFILE=131072LimitNPROC=8192[Install]WantedBy=multi-user.target7. 启动服务
systemctlenablesonar systemctl start sonar8. 访问
地址:192.168.9.100:9000
用户:admin
密码:admin
9. sonar-scanner安装
1)下载
# https://docs.sonarsource.com/sonarqube-server/analyzing-source-code/scanners/sonarscanner# 在jenkins服务器wgethttps://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.0.2966-linux.zip2)解压
unzipsonar-scanner-cli-5.0.0.2966-linux.zip-d/usr/local/ln-s/usr/local/sonar-scanner-5.0.0.2966-linux/ /usr/local/sonar-scanner3)修改配置
# vim /usr/local/sonar-scanner/conf/sonar-scanner.propertiessonar.host.url=http://192.168.9.51:9000sonar.sourceEncoding=UTF-8