sonarqube for jenkins token_DevOPS | 代码静态扫描工具SonarQube的安装和初步使用

DevOPS工具链中,在代码静态扫描这一环,SonarQube的使用算的是比较多的了,功能也比较强大。这篇文章,我们先介绍下基于docker的最新版7.9.1的安装、配置和使用。注意,从7.9版本开始,SonarQube只支持Oracle、SQLServer和PostgreSQL,MySQL不在支持,所以如果大家已经安装了旧版本,需要迁移数据库,迁移的方法,大家可以参见:https://github.com/SonarSource/mysql-migrator。另外PostgreSQL的安装和使用,不在本文的介绍范围,后续咋说,或者大家先自行学习。

基于Docker的安装

  • 使用如下命令拉下最新的docker镜像
docker pull sonarqube:latest
  • 因为我最终会把配置、扩展等存储到宿主机做持续话,所以先在宿主机上创建对应的文件路径
mkdir /sonarmkdir /sonar/datamkdir /sonar/confmkdir /sonar/extensionsmkdir /sonar/logschown -R 999:999 /sonar

注意最后的更改权限必须做,不然会报权限错误

  • 接下来使用如下的脚本创建sonarqube的容器:
docker run -d --name sonarqube -p 9000:9000 -v /sonar/conf:/opt/sonarqube/conf -v /sonar/data:/opt/sonarqube/data -v /sonar/logs:/opt/sonarqube/logs -v /sonar/extensions:/opt/sonarqube/extensions -e sonar.jdbc.username=postgres -e sonar.jdbc.password= -e sonar.jdbc.url="jdbc:postgresql://192.168.10.49/sonar_demo" --restart=on-failure:3 sonarqube

简单说下:sonarqube的默认端口为9000,映射到宿主机的端口也是9000;然后使用-v把刚才创建的文件路径挂载到容器的对应路径;最后的-e传入PostgreSQL的地址、用户名、密码和数据库等信息

  • 如无错误,容器将启动成功,使用docker ps进行查看:
07987ea4-0082-4e77-8da8-7d93a7792898

有错误的话,大家docker logs 查看下什么错误,自行解决下,或者后台发给我,我们一起看看。

整个安装过程还是很简单啊。完成之后,可以访问http://ip:9000,使用默认的管理员账号admin/admin进行登录:

125e3d37-437f-4d74-a625-4a8a0983b4a7

与OpenLdap集成

上篇文章我们介绍了测试运维 | OpenLdap的安装和使用,今天我们先做和SonarQube的集成:

  • 首先我们使用admin账号登录后,在后台的Administration - Security - Groups可以看到如下的Group:
bfd5d900-c243-4826-ad54-bb57dbcb8dc7

望文生义,sonar-administrators就是sonar的管理员组;sonar-users就是一般权限的组。进一步查看组成员,我们发现admin账号的确在sonar-administrators组下:

564a0d2f-63b9-4320-9994-d5389844a56e

从而印证了我们的猜测。

  • 使用ApacheDirectoryStudio连接OpenLdap服务器之后,在ou=Groups下建立两个新组,ou=sonar-administrators,ou=sonar-users
  • 在ou=People下建立一个新用户cn=superadmin,然后加入到ou=sonar-administrators下面;建立一个新用户cn=normaluser,然后加入到ou=sonar-users下面
  • 在SonarQube里面,Administration - Marketplace,搜索并安装LDAP插件:
27f923bc-8936-4fb1-8203-f41ae297c133
  • 在/sonar/conf/sonar.properties文件里(如果没有则创建),加入如下内容:
  • 同时,插件完成安装之后,重启SonarQube
  • 重启完成之后,我们用superadmin账号登录,发现是管理员权限;用normaluser账号登录,发现是普通用户权限。

至此,SonarQube的安装和与OpenLdap的集成配置工作已经完成。

代码扫描

  • 与jenkins的集成,大家可以参考DevOPS | 基于sonarqube、jenkins和gitlab的持续集成代码检查
  • 与Maven项目的集成,修改maven的conf/settings.xml,注意按照如下的节点位置,添加内容:
org.sonarsource.scanner.mavensonartruehttp://192.168.10.49:9000
  • 运行如下命令进行扫描:
mvn clean verify sonar:sonar

如果得到如下错误:

No quality profiles have been found, you probably don't h

ave any language plugin installed.

那么先在SonarQube的Marketplace里面装下SonarJava插件:

04c0af04-646f-4a06-bba3-a4c78fd4e655
  • 扫描完成之后登陆SonarQube即可看到扫描的结果:
fee45fb1-4673-488d-a653-43edcccf4094
  • 针对其他项目类型,比如Gradle、ANT等的支持,大家可以自行参考官方文档:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-gradle/

总结

文章介绍了基于Docker的SonarQube的安装方法及与OpenLdap的集成步骤,并介绍了Maven项目的扫描方法,给大家在DevOPS中开展代码的静态扫描开了个头,大家最好实际动手用起来。后续将进一步介绍SonarQube的配置和深入使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值