一、Linux下安装SonarQube
1、安装sonarQube
前置条件:sonarQube不能使用root账号进行启动,所以需要创建普通用户及
其用户组
1)创建组
2)添加用户、组名、密码
3)CMD上传qube文件-不能传到home路径下哦
4)检查并解压上传的包
解压到当前目录
解压完就可以看到了
5) 移动文件夹到非~下,并设置⽤户组可操作权限(-R 后面跟的是组名)
# chown -R sonarqube sonar安装包解压后的路径;命令意义:用于更改文件或目录的所有者
chown -R sonarqube sonarqube-9.7.0.61563/# chgrp -R sonarqube sonar安装包解压后的路径;用于更改文件或目录的所属组
chgrp -R sonarqube sonarqube-9.7.0.61563/# chown -R sonarqube JAVA_HOME路径;用于更改文件或目录的所有者
chown -R sonarqube /usr/java(这个java是老师的文件名,存放jdk的那个)# chgrp -R sonarqube JAVA_HOME路径;用于更改文件或目录的所属组
chgrp -R sonarqube /usr/java(这个java是老师的文件名,存放jdk的那个)
上面命令的执行
6)启动sonar,先切换到组的权限下面再运⾏
切换用户命令 -su 后面的是组名
然后打开 安装sonar的文件
启动一定要注意,我们sonar本身就是后台启动(脚本),直接通过脚本启动即可。
windows启动脚本文件后缀: .bat
linux启动脚本文件后缀:.sh
下面是先打开sonarqube文件,然后找到文件下的bin目录,查找bin目录下的Linux系统,打开这个linux系统
找到了linux系统里的启动脚本的文件名
执行下面这个命令,就看也执行这个启动脚本
./sonarqube-9.7.0.61563/bin/linux-x86-64/sonar.sh start
7)访问Sonar
访问:http://192.168.1.39:9000/ (汉化同win操作一样,这里就不说了,可以自己去试。)
默认账号密码是admin /admin
2、安装SonarScan插件
复用的话,需要删除原先配置的sonar(3个配置),重新添加,比较保险
1)然后选择版本重新添加
2)还有这里需要配置新的Ip
3)还需要修改凭证
新增凭证
4)配置已经完成,需要设置在构建前的执行扫描
配置
常见小问题:、
1)没有权限
提示对下面这个目录没有权限
给权限即可:
chmod 755 -R 路径()上面那2个目录
2)课上小问题:
原因:因为sonar占用log的这个目录,所以你的框架尽量不要有这种命名。删除重新提交即可。
首先,需要先改pytest.ini
修改log_file的文件路径和名
现在需要把代码拉下来,然后修改文件
然后需要删掉log文件
新建一个logdata文件用于吧存放日志文件
给换个名字
然后提交改动的代码
二、扩展知识:部署开发项目
1、持续集成的流程
测试关注的流程
开发项目部署到测试环境,能被自动执行,是需要设置关注这个开发项目
开发关注的
通过git提交到Gogs仓库,开发项目才需要Sonar扫描
2、 部署开发项目
1)第一步:开发提交到gogs --- 名字:加密项目
2)第二步:jenkins拉取这个研发项目--- 构建 (发布到测试环境)--- 文档
2.1)用Shell去进行执行即可
# 不用纠结python3 -m venv venvsource venv/bin/activatepip install -r requirements.txt -i https://pypi.douban.com/simple/
在Jenkins如下配置
2.2)启动命令:(需要SSH 进行命令操作)
需要下载插件-- Publish over SSH(SSH权限更高,比shell高)
cd "$WORKSPACE"&& ./venv/bin/gunicorn -c gunicorn.conf.py app:app -D
上面的命令解析说明:
cd "$WORKSPACE" ---是打开工作空间./venv/bin/ --找到bin目录gunicorn -c gunicorn.conf.py app:app -D --执行启动命令
下载Publish over SSH插件
配置
1)
2)
3)配置启动命令
4)研发服务部署成功,通过ip+去访问
部署服务,是运维关注的,需要依赖部署说明文档去部署
5)如果开发有代码修改,一修改就触发持续部署,
需要在Jenkins中添加触发器,在Gogs中创建钩子。关联使触发
6)研发项目发布成功,测试脚本自动执行
在Jenkins中的测试自动化项目中,关注研发项目