1.SonarQube 是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测
2.7.9.3是一个长期支持版本,数据库不再支持MySQL,
# 环境
CentOS 7
JDK 11
PostgreSQL 11
3.安装JDK11,yum安装
# 查找软件包
[root@sonarqube ]# yum list |grep java-11
java-11-openjdk.i686 1:11.0.7.10-4.el7_8 updates
java-11-openjdk.x86_64 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-demo.i686 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-demo.x86_64 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-devel.i686 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-devel.x86_64 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-headless.i686 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-headless.x86_64 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-javadoc.i686 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-javadoc.x86_64 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-javadoc-zip.i686 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-javadoc-zip.x86_64 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-jmods.i686 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-jmods.x86_64 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-src.i686 1:11.0.7.10-4.el7_8 updates
java-11-openjdk-src.x86_64 1:11.0.7.10-4.el7_8 updates
pljava-11.x86_64 1.5.2-2.rhel7 pgdg11
# 安装JDK11
[root@sonarqube l]# yum install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64 java-11-openjdk-headless.x86_64
# 验证
[root@sonarqube ]# java -version
openjdk version "11.0.7" 2020-04-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.7+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.7+10-LTS, mixed mode, sharing)
4.安装PostgreSQL数据库
# 安装存储库包
wget https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-42.0-11.noarch.rpm
# 安装客户端
yum install postgresql11
# 安装服务器端
yum install postgresql11-server
# 初始数据库并自启动
/usr/pgsql-11/bin/postgresql-11-setup initdb
systemctl enable postgresql-11
systemctl start postgresql-11
# 开启远程访问
vim /var/lib/pgsql/11/data/postgresql.conf
listen_addresses='*'
# 信任远程连接,修改如下内容,信任指定服务器连接,ident修改为MD5
vim /var/lib/pgsql/11/data/pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 10.1.8.0/24 md5
5.配置postgresql
安装完后会自动创建postgres用户
su - postgres切换进去
psql 进入命令行模式
create database sonar; 创建sonar数据库
create user sonar; 创建sonar用户
atler user sonar with password 'postgres'; 设置sonar用户密码(否则会导致连不上数据库)
alter role sonar createdb;
alter role sonar superuser;
alter role sonar createrole; 给sonar授权
alter database sonar owner to sonar; 更改sonar数据库拥有者(这一步是必须的,否则会sonarqube会连接失败)
# 查看数据库
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
sonar | sonar | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
# 查看用户
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
sonar | Superuser, Create role, Create DB | {}
# 重启数据库
systemctl start postgresql-11
6.配置下载安装sonarqube
cd /usr/local/src
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.3.zip
unzip sonarqube-7.9.3.zip -d /usr/local
ln -sv /usr/local/sonarqube-7.9.3 /usr/local/sonarqube
# 配置sonar
vim /usr/local/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=postgres
......
#sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
7.sonar需要非root启动,不然会报错,且安装目录需要sonar启动
# 建立用户
useradd sonar
# 授权文件
chown -R sonar.sonar /usr/local/sonarqube-7.9.3
chown -R sonar.sonar /usr/local/sonarqube
# 启动
su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start"
# 停止
su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh stop"
# 重启
su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh restart"
8.访问:ip:9000