安装jdk 参考
step1:下载jdk
64位系统安装包
wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz
step2:解压安装包
mkdir /usr/local/jdk
tar -zxf openjdk-11.0.1_linux-x64_bin.tar.gz -C /usr/local/jdk
step3:配置环境变量
1.配置JAVA_HOME
echo "JAVA_HOME=/usr/local/jdk/jdk-11.0.1" | sudo tee -a ~/.bash_profile
&&echo "export JAVA_HOME" | sudo tee -a ~/.bash_profile
2.配置Path环境变量
echo "PATH=$PATH:$JAVA_HOME/bin" | sudo tee -a ~/.bash_profile
echo "export PATH" | sudo tee -a ~/.bash_profile
source ~/.bash_profile
step4:验证是否安装成功
java -version
如果仍显示java是command not found, 可以尝试重启服务器,再验证(环境变量生效)
安装及配置sonar 参考
step1:下载sonar
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.5.1.38104.zip
step2:解压安装包
step3:创建用户
不可以用root用户去启动sonar服务,会报错, 查看es.log文件
java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) [elasticsearch-5.6.2.jar:5.6.2]
1.创建用户sonar
adduser sonar
- 为sonar用户设置密码
passwd sonar
3.修改sonarqube的目录和用户组为sonar
chown -R sonar:sonar sonarqube-8.5.1.38104
启动sonar
./sonar.sh start
./sonar.sh stop 停止服务
./sonar.sh restart 重启服务
遇到的问题
ERROR: [1] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max number of threads [1024] for user [sonar] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
使用root用户启动sonar服务后,报错,此时再切换到非root用户启动sonar,仍会报错,原因:使用root用户启动后,生成temp文件,temp文件所属为root,后使用非root用户启动时,没有temp文件权限,需要将temp文件的权限给到需要启动sonar的用户参考
chown -R sonar:sonar temp
2020.12.10 10:24:11 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /root/sonar/sonarqube-8.5.1.38104/temp
2020.12.10 10:24:11 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /root/sonar/sonarqube-8.5.1.38104/temp
安装PostgreSQL并配置
初次安装后,默认生成一个名为postgres的数据库和一个名为postgres的数据库用户。这里需要注意的是,同时还生成了一个名为postgres的Linux系统用户。参考
step1:创建一个新的linux用户
sudo adduser dbuser
step2:切换到postgres用户
sudo su - postgres
step3:创建数据库用户 dbuser
CREATE USER dbuser WITH PASSWORD 'password';
step4:创建sonarqube数据库
CREATE DATABASE sonarqube OWNER dbuser;
GRANT ALL PRIVILEGES ON DATABASE sonarqube to dbuser;
step5:创建my_schema
create schema my_schema;
配置sonar的配置文件
启动sonar
step1:切换到sonar用户
su sonar
step2:进入到sonar安装目录
step3:启动sonar
汉化,下载中文插件,不成功的情况 参考
可以自己下载jar包安装到sonar目录下,再重启sonar服务即可生效
使用sonar时候遇到的一些问题
Jenkins不同分支的分析
step1:下载插件
注意:不同版本的适配,保证插件与sonarqube版本适配
step2:将插件导入到sonar的安装目录
需要导入到两个位置:
-
/extensions/plugins
-
/lib/commons (这个目录可能不存在,创建即可)
step3:在配置文件中添加
配置文件目录:/sonarqube/conf/sonar.properties
sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.1.jar=web
sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.1.jar=ce
step4:重启sonarqube
step5:在Jenkins中进行配置
原配置中增加 sonar.branch.name属性