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.xmllocalRepository/data/repository/localRepository6. 测试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/jenkinsexportJENKINS_LOGS/data/jenkins/logs[$USER!jenkins]echoPlease use jenkins user run scriptexit1cd$JENKINS_HOME[$#-eq0]actionstart||action$1case$actioninstart)psuax|grep-vgrep|grep-qjenkins.warechojenkins is runningexit2java-jarjenkins.war--logfile${JENKINS_LOGS}/jenkins.log--httpPort8080;;stop)pid$(psuax|grep-vgrep|grepjenkins.war|awk{print $2})[-z$pid]echojenkins not runingexit3kill$pid;;restart)pid$(psuax|grep-vgrep|grepjenkins.war|awk{print $2})[-n$pid]kill$pidjava-jarjenkins.war--logfile${JENKINS_LOGS}/jenkins.log--httpPort8080;;*)echo$0start|stop|restartesac4. 启动服务su- jenkinscd/data/jenkinschmodx 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. 安装Jenkinsyuminstallfontconfig java-11-openjdk yuminstalljenkins3.修改配置文件vim/etc/sysconfig/jenkinsJENKINS_HOME/data/jenkinsJENKINS_USERjenkins4. 启动服务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六、配置jenkins1. 访问地址192.168.9.71:80802. 初始化插件3. 安装插件4. 创建账号5. 完成配置七、系统配置1. 安装插件#系统管理–插件管理#安装如下插件publish-over-sshBlue OceanRole-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.json2. 全局安全配置3. 系统配置4. 全局工具配置1Maven配置2JDK配置5. 邮件配置1使用内置邮件功能【系统管理】–【系统配置】–填写 系统管理员邮件地址【系统管理】–【系统配置】–填写 邮件通知八、用户管理1. 创建用户#系统管理–管理用户–新建用户2. 管理角色#系统管理–Manage and Assign Roles–Manage Roles3. 分配角色#系统管理–Manage and Assign Roles–Assign Roles九、创建项目1. 新建任务2. 配置git地址3. 添加git账号#在上图中点击添加–jenkins4. 添加构建步骤5. 构建后操作6. 发版脚本#!/usr/bin/bashsource/home/qyc/.bash_profileDEPLOY_DIR$1DEPLOY_FILE_PATH$2DEPLOY_PATH/home/qycfunctionusage(){echoUsage: args [-d dir] [-f file name]echoe.g.echo [-d]deploy dir: relative pathecho [-f]deploy file path: relative file pathexit1}functiondie(){echo$1exit255}functionremoveFile(){filesls-t$DEPLOY_DIR|grep$DEPLOY_FILEindex0maxCount5forfilein$filesdoif[$index-gt$maxCount];thenechobackup file count reach:$maxFileCount, delete$filerm-rf$DEPLOY_DIR/$filefiindexexpr$index 1doneechobackup fileCount:$index}functionbackupFile(){sf$DEPLOY_DIR/$DEPLOY_FILEif[-f$sf];thenmtstat-c%y $DEPLOY_DIR/$DEPLOY_FILE|cut-c1-19fix${mt// /.}bkFile$DEPLOY_DIR/$DEPLOY_FILE.$fixechobackup file:$sfwith fix:$mtcp$sf$bkFileremoveFileelseecho$sfnot foundfi}functiondeploy(){echostart deloymv$DEPLOY_FILE_PATH$DEPLOY_DIR/$DEPLOY_FILE||diedie for mv file!!$DEPLOY_DIR/start.sh}whilegetoptsd:f: optiondocase$optionind)DEPLOY_DIR$OPTARG;;f)DEPLOY_FILE_PATH$OPTARG;;\?)usage;;:)echoOption -$OPTARGrequires an argument2usage;;esacdoneif[$DEPLOY_DIR]||[$DEPLOY_FILE_PATH]thenusageelseDEPLOY_DIR$DEPLOY_PATH/$DEPLOY_DIRDEPLOY_FILE_PATH$DEPLOY_PATH/$DEPLOY_FILE_PATHDEPLOY_FILE${DEPLOY_FILE_PATH##*/}echodeploy$DEPLOY_FILE_PATHto$DEPLOY_DIR/$DEPLOY_FILEif[!-f$DEPLOY_DIR/start.sh];thendieMISS START SHELL UNDER PATH$DEPLOY_DIRfibackupFile deployechodonefi#!/usr/bin/bashsource/home/qyc/.bash_profilepidps-ef|grepdaemon|grep-vgrep|awk{print $2}if[$pid!]thenechokill pid:$pidkill$pidfinohupjava-Dapollo.metahttp://127.0.0.1:8080-Dapp.log.dir/home/qyc/logs-jar/home/qyc/daemon/daemon.jar十、监控jenkins1. 安装插件官方文档https://plugins.jenkins.io/prometheus/2. 配置prometheus# vim prometheus.ymlscrape_configs: - job_name:prometheusstatic_configs: - targets:[localhost:9090]- job_name:jenkinsmetrics_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.usernamesonarsonar.jdbc.password123456sonar.jdbc.urljdbc:postgresql://127.0.0.1/sonar?currentSchemapublic# 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_count262144fs.file-max655356. 配置启动脚本# vim /lib/systemd/system/sonar.service[Unit]DescriptionSonarQubeserviceAftersyslog.target network.target[Service]TypeforkingExecStart/usr/local/sonarqube/bin/linux-x86-64/sonar.sh startExecStop/usr/local/sonarqube/bin/linux-x86-64/sonar.sh stopUsersonarGroupsonarRestartalwaysLimitNOFILE131072LimitNPROC8192[Install]WantedBymulti-user.target7. 启动服务systemctlenablesonar systemctl start sonar8. 访问地址192.168.9.100:9000用户admin密码admin9. 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.urlhttp://192.168.9.51:9000sonar.sourceEncodingUTF-8