美文网首页开发辅助技术
10.Jenkins集成代码扫描与Jenkins参数使用、Jen

10.Jenkins集成代码扫描与Jenkins参数使用、Jen

作者: 哆啦A梦_ca52 | 来源:发表于2019-11-15 21:35 被阅读0次

在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

image.png

下载SonarQube Scanner 插件的网站

[https://updates.jenkins.io/download/plugins/sonar/](https://updates.jenkins.io/download/plugins/sonar/)
添加扫描 系统设置 image.png image.png

让 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

保存 点击这里可以查看扫描结果

只执行扫描代码,查看下


image.png
查看有一个bug
修复代码的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
上传代码


扫描之后再次查看bug,都没有了

点击发布日志 下载这个jar包 点击安装
修改权限
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
然后重启服务

修改密码

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


增加一个代码回滚的操作

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



查看是v10了 克隆的shell放到里头 回滚代码 查看页面已经回滚到上一个版本了

回滚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"
创建一个正式的回滚代码的操作

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

image.png
只留这三个

测试脚本变量

测试脚本变量 image.png
选择这个构建 那个值已经成功了,
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
传递参数到脚本里 image.png
查看参数传递过来了
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
传入参数,

添加字符参数,作为第二个变量 image.png
image.png 把参数传过去了,

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

添加一个字符

编辑列出服务器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}


image.png
image.png

查看传递的变量

取出所有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

image.png
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
编辑克隆脚本
这回克隆master分支
root@jenkins-master:~/scripts/linux37# ll /data/git/linux37/web1/
查看已经克隆到master节点上了

这次只构建develop的
发现代码已经更替了

相关文章

网友评论

    本文标题:10.Jenkins集成代码扫描与Jenkins参数使用、Jen

    本文链接:https://www.haomeiwen.com/subject/siqkictx.html