在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
上传代码扫描需要的文本
![](https://img.haomeiwen.com/i17333398/4b1621ba326b9577.png)
![](https://img.haomeiwen.com/i17333398/698d079d7b92d5f7.png)
![](https://img.haomeiwen.com/i17333398/fcd534f9c49e29e4.png)
![](https://img.haomeiwen.com/i17333398/a69670e351020221.png)
添加检测代码
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"
![](https://img.haomeiwen.com/i17333398/9e75b23d34562539.png)
部署 sonar-scanner:
sonarqube 通过调用扫描器 sonar-scanner 进行代码质量分析,即扫描器的具体工作就
是扫描代码:
安装插件 SonarQube Scanner
![](https://img.haomeiwen.com/i17333398/4dcb186852f87ece.png)
下载SonarQube Scanner 插件的网站
[https://updates.jenkins.io/download/plugins/sonar/](https://updates.jenkins.io/download/plugins/sonar/)
![](https://img.haomeiwen.com/i17333398/d00667b042c295b0.png)
![](https://img.haomeiwen.com/i17333398/ec53e03bf06403e5.png)
![](https://img.haomeiwen.com/i17333398/432603037a897a28.png)
![](https://img.haomeiwen.com/i17333398/2da463ed55357bb0.png)
让 jenkins 添加 Sonarscanner 扫描器:
添加扫描器:
Jenkins--系统管理-全局工具配置:
手动指定绝对路径:
/usr/local/src/sonar-scanner-4.0.0.1744-linux
![](https://img.haomeiwen.com/i17333398/74c4e5532b51c310.png)
配置扫描:
选择自己的项目( 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
![](https://img.haomeiwen.com/i17333398/f65c34216bf04cee.png)
![](https://img.haomeiwen.com/i17333398/1e698cfe0e02e4cf.png)
只执行扫描代码,查看下
![](https://img.haomeiwen.com/i17333398/e955998c8d305fe8.png)
![](https://img.haomeiwen.com/i17333398/07cf42c899fc7fe8.png)
修复代码的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
上传代码
![](https://img.haomeiwen.com/i17333398/f4a193a45c9f4fb4.png)
![](https://img.haomeiwen.com/i17333398/8f7340d39bfbacac.png)
![](https://img.haomeiwen.com/i17333398/01f1fa54772d3e32.png)
![](https://img.haomeiwen.com/i17333398/2ee03e9261378f5b.png)
修改权限
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
然后重启服务
![](https://img.haomeiwen.com/i17333398/9290e989e9b1d975.png)
创建一个代码回滚的,自由风格的项目
![](https://img.haomeiwen.com/i17333398/d2e3c3ed43718c18.png)
增加一个代码回滚的操作
![](https://img.haomeiwen.com/i17333398/e667978b9d51fe71.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
上传代码
![](https://img.haomeiwen.com/i17333398/7fbfae7a239c69d7.png)
![](https://img.haomeiwen.com/i17333398/c5a782c9e84db781.png)
![](https://img.haomeiwen.com/i17333398/b52d08e996b38155.png)
![](https://img.haomeiwen.com/i17333398/16036d3052b29438.png)
回滚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"
![](https://img.haomeiwen.com/i17333398/ac0f9ef798a38cb0.png)
丢弃旧的构建,只保留三个
![](https://img.haomeiwen.com/i17333398/ea668c3a10ab9057.png)
![](https://img.haomeiwen.com/i17333398/63bf6a6603ee3294.png)
测试脚本变量
![](https://img.haomeiwen.com/i17333398/22d22e4de08076ff.png)
![](https://img.haomeiwen.com/i17333398/23a26b7331ca4de0.png)
![](https://img.haomeiwen.com/i17333398/272903b228b61fc4.png)
![](https://img.haomeiwen.com/i17333398/06d63e0eee18174e.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
![](https://img.haomeiwen.com/i17333398/d9c98a78e6ce55cc.png)
![](https://img.haomeiwen.com/i17333398/5a6c8b3e9eb0b8e9.png)
![](https://img.haomeiwen.com/i17333398/27682f803192a95e.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
传入参数,
![](https://img.haomeiwen.com/i17333398/1de011d57a574ffb.png)
![](https://img.haomeiwen.com/i17333398/6d2b87689b8542d8.png)
![](https://img.haomeiwen.com/i17333398/bdb3477623b8143d.png)
![](https://img.haomeiwen.com/i17333398/058f67ff04bc4953.png)
添加一个组,然后根据组升级到组
![](https://img.haomeiwen.com/i17333398/6fdec3077039b591.png)
![](https://img.haomeiwen.com/i17333398/d39213d81c8648db.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}
![](https://img.haomeiwen.com/i17333398/650221c8c8e0f7d8.png)
![](https://img.haomeiwen.com/i17333398/e58a80bff88f5eb4.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
![](https://img.haomeiwen.com/i17333398/66890ccb6c825238.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
编辑克隆脚本
![](https://img.haomeiwen.com/i17333398/00152d66baa18d0b.png)
root@jenkins-master:~/scripts/linux37# ll /data/git/linux37/web1/
查看已经克隆到master节点上了
![](https://img.haomeiwen.com/i17333398/3bbb8d63171eab91.png)
![](https://img.haomeiwen.com/i17333398/4d8fa4f1b8c55e7d.png)
网友评论