0
点赞
收藏
分享

微信扫一扫

10.Jenkins集成代码扫描与Jenkins参数使用、Jenkins脚本调用基础

楚木巽 2021-09-30 阅读 60

在web2服务器上,创建一个python代码,

root@web2:/data# git clone -b develop git@192.168.200.147:linux37/web1.git
克隆分支
创建一个python代码,
root@web2:~# vim linux37.py 
#!/usr/bin/env python
#coding:utf-8
#Author:Wangyanhu
print "hello word"

root@web2:~/web1# mv /root/linux37.py .
root@web2:~/web1# git add ./*
root@web2:~/web1# git commit -m "add python file"
root@web2:~/web1# git push
上传python代码
root@web2:~# vim sonar-project.properties
# Required metadata
sonar.projectKey=linux37-web1-python:v1
sonar.projectName=linux37-web1-python:v1
sonar.projectVersion=1.0:v1
# Comma-separated paths to directories with sources (required)
sonar.sources=./
# Language
sonar.language=py
# Encoding of the source files
sonar.sourceEncoding=UTF-8


root@web2:/data# mv /root/web1/sonar-project.properties /data/web1/
root@web2:/data/web1# git push
上传代码扫描需要的文本

添加检测代码


cd /var/lib/jenkins/workspace/linux37-web1
/usr/local/sonar-scanner/bin/sonar-scanner

tar czvf app.tar.gz ./*
#scp app.tar.gz tomcat@192.168.200.153:/data/tomcat/tomcat_appdir
scp app.tar.gz tomcat@192.168.200.154:/data/tomcat/tomcat_appdir

ssh tomcat@192.168.200.154 "/etc/init.d/tomcat stop"
#ssh tomcat@192.168.200.153 "/etc/init.d/tomcat stop"
ssh tomcat@192.168.200.154 "rm -rf /data/tomcat/tomcat_webdir/app && rm -rf /data/tomcat/tomcat_webapps/myapp && cd /data/tomcat/tomcat_appdir/ && mkdir /data/tomcat/tomcat_webdir/app &&  tar xvf app.tar.gz -C /data/tomcat/tomcat_webdir/app"
#ssh tomcat@192.168.200.153 "rm -rf /data/tomcat/tomcat_webdir/app && rm -rf /data/tomcat/tomcat_webapps/myapp && cd /data/tomcat/tomcat_appdir/ && mkdir /data/tomcat/tomcat_webdir/app &&  tar xvf app.tar.gz -C /data/tomcat/tomcat_webdir/app"

#ssh tomcat@192.168.200.153 "ln -sv /data/tomcat/tomcat_webdir/app /data/tomcat/tomcat_webapps/myapp"

ssh tomcat@192.168.200.154 "ln -sv /data/tomcat/tomcat_webdir/app /data/tomcat/tomcat_webapps/myapp"
ssh tomcat@192.168.200.154 "/etc/init.d/tomcat start"
#ssh tomcat@192.168.200.153 "/etc/init.d/tomcat start"

部署 sonar-scanner:

sonarqube 通过调用扫描器 sonar-scanner 进行代码质量分析,即扫描器的具体工作就
是扫描代码:

安装插件 SonarQube Scanner

下载SonarQube Scanner 插件的网站

[https://updates.jenkins.io/download/plugins/sonar/](https://updates.jenkins.io/download/plugins/sonar/)

让 jenkins 添加 Sonarscanner 扫描器:
添加扫描器:
Jenkins--系统管理-全局工具配置:
手动指定绝对路径:
/usr/local/src/sonar-scanner-4.0.0.1744-linux


配置扫描:
选择自己的项目( linuxNN-job1-develop) -构建-execute sonarqube scanner,将配置文件的
内容修改成如下格式填写完成后点保存:
sonar.projectKey=job1-develop
sonar.projectName=job1-developsonar.projectVersion=1.0
sonar.sources=./
sonar.language=php
sonar.sourceEncoding=UTF-8

只执行扫描代码,查看下



修复代码的bug
root@web1:~/web1# cat linux37.py 
#!/usr/bin/env python
#coding:utf-8
#Author:Wangyanhu
print ("hello word")
root@web1:~/web1# git add  ./*
root@web1:~/web1# git commit -m "add python file"
root@web1:~/web1# git push
上传代码



修改权限
sonarqube@wang:/usr/local/sonarqube/extensions/plugins$ chown sonarqube.sonarqube ./*
sonarqube@wang:/usr/local/sonarqube/extensions/plugins$ ll sonar-go-plugin-1.1.1.2000.jar
把插件拖过来
sonarqube@wang:/usr/local/sonarqube$ ./bin/linux-x86-64/sonar.sh restart
然后重启服务


创建一个代码回滚的,自由风格的项目


增加一个代码回滚的操作

修改代码
root@web1:~/web1# vim index.html
v10
root@web1:~/web1# git add ./*
root@web1:~/web1# git commit -m "v10"
root@web1:~/web1# git push
上传代码



回滚shell

cd /var/lib/jenkins/workspace/linux37-web1
git reset --hard HEAD^
tar czvf app.tar.gz ./*
#scp app.tar.gz tomcat@192.168.200.153:/data/tomcat/tomcat_appdir
scp app.tar.gz tomcat@192.168.200.154:/data/tomcat/tomcat_appdir

ssh tomcat@192.168.200.154 "/etc/init.d/tomcat stop"
#ssh tomcat@192.168.200.153 "/etc/init.d/tomcat stop"
ssh tomcat@192.168.200.154 "rm -rf /data/tomcat/tomcat_webdir/app && rm -rf /data/tomcat/tomcat_webapps/myapp && cd /data/tomcat/tomcat_appdir/ && mkdir /data/tomcat/tomcat_webdir/app &&  tar xvf app.tar.gz -C /data/tomcat/tomcat_webdir/app"
#ssh tomcat@192.168.200.153 "rm -rf /data/tomcat/tomcat_webdir/app && rm -rf /data/tomcat/tomcat_webapps/myapp && cd /data/tomcat/tomcat_appdir/ && mkdir /data/tomcat/tomcat_webdir/app &&  tar xvf app.tar.gz -C /data/tomcat/tomcat_webdir/app"

#ssh tomcat@192.168.200.153 "ln -sv /data/tomcat/tomcat_webdir/app /data/tomcat/tomcat_webapps/myapp"

ssh tomcat@192.168.200.154 "ln -sv /data/tomcat/tomcat_webdir/app /data/tomcat/tomcat_webapps/myapp"
ssh tomcat@192.168.200.154 "/etc/init.d/tomcat start"
#ssh tomcat@192.168.200.153 "/etc/init.d/tomcat start"

丢弃旧的构建,只保留三个


测试脚本变量


root@jenkins-master:~# mkdir /root/scripts/linux37 -p
root@jenkins-master:~# vim /root/scripts/linux37/web1_deploy.sh
#!/bin/bash
xxx=$1
echo ${xxx}
echo "-----------------"
创建脚本
root@jenkins-master:~# chmod +x /root/scripts/linux37/web1_deploy.sh


root@jenkins-master:~/scripts/linux37# vim /root/scripts/linux37/web1_deploy.sh
#!/bin/bash
METHOD=$1
BRANCH=$2
echo ${METHOD}
echo "-----------------"
echo ${BRANCH}
编辑脚本
root@jenkins-master:~/scripts/linux37# bash web1_deploy.sh master deveolp
master
-----------------
deveolp
传入参数,


添加一个组,然后根据组升级到组

编辑列出服务器ip地址

root@jenkins-master:~/scripts/linux37# vim /root/scripts/linux37/web1_deploy.sh
#!/bin/bash
METHOD=$1
BRANCH=$2
GROUP=$3
if [ ${GROUP} == "GROUP1" ];then
   HOST_IP="192.168.200.153"
elif [ ${GROUP} == "GROUP2" ];then
   HOST_IP="192.168.200.154"
elif [ ${GROUP} == "GROUP3" ];then
   HOST_IP="192.168.200.153 192.168.200.154"
fi
echo ${HOST_IP}




查看传递的变量

取出所有ip地址

root@jenkins-master:~/scripts/linux37# vim /root/scripts/linux37/web1_deploy.sh
#!/bin/bash
METHOD=$1
BRANCH=$2
GROUP=$3
if [ ${GROUP} == "GROUP1" ];then
   HOST_IP="192.168.200.153"
elif [ ${GROUP} == "GROUP2" ];then
   HOST_IP="192.168.200.154"
elif [ ${GROUP} == "GROUP3" ];then
   HOST_IP="192.168.200.153 192.168.200.154"
fi
for node in ${HOST_IP};do
  echo $node."------>"
done

root@jenkins-master:~/scripts/linux37# mkdir /data/git/linux37 -p
创建文件夹
root@jenkins-master:~/scripts/linux37# vim /root/scripts/linux37/web1_deploy.sh

#!/bin/bash
METHOD=$1
BRANCH=$2
GROUP=$3
if [ ${GROUP} == "GROUP1" ];then
   HOST_IP="192.168.200.153"
elif [ ${GROUP} == "GROUP2" ];then
   HOST_IP="192.168.200.154"
elif [ ${GROUP} == "GROUP3" ];then
   HOST_IP="192.168.200.153 192.168.200.154"
fi

cd /data/git/linux37 && rm -rf web1  && git clone -b ${BRANCH} git@192.168.200.147:linux37/web1.git
for node in ${HOST_IP};do
  echo $node."------>"
done
编辑克隆脚本

root@jenkins-master:~/scripts/linux37# ll /data/git/linux37/web1/
查看已经克隆到master节点上了


举报

相关推荐

0 条评论