如何在Centos 7上安装和配置Sonarqube
SONARQUBE是一个开源平台,可连续检查代码质量。
它用于通过静态分析来执行自动评论,以检测超过20个编程语言的错误,代码闻到漏洞和安全漏洞。
其中我们将使用Oracle Java 11,PostgreSQL 10.x,nginx,并Let’s Encrypt 证书来安装和配置Sonarqube 7.9.x LTS。
在CentOS中安装和配置Sonarqube
使用root用户执行以下命令。
1.更新系统
yum update
2.禁用selinux.
打开SELinux配置并编辑文件:
vim /etc/sysconfig/selinux
将"selinux =强制执行"更改为"selinux = disabled"。
保存并退出文件。
3.将主机名设置为服务器
vim /etc/hostname
如果VIM不可用,请先安装VIM命令。
yum install vim -y
然后重新启动系统。
reboot
4.准备工作
我们可以查看官方文件以获取完整信息。
- Java(Oracle JRE 11或者OpenJDK 11)
- PostgreSQL 10或者9.3-9.6
硬件要求
- 具有2GB或者Plus 内存的服务器
Linux
的系统设置
vm.max_map_count is greater or equals to 262144 fs.file-max is greater or equals to 65536 the user running SonarQube can open at least 65536 file descriptors the user running SonarQube can open at least 4096 threads
5.添加系统设置
编辑"sysctl.conf"文件:
vim /etc/sysctl.conf
添加以下行:
vm.max_map_count=262144 fs.file-max=65536
保存并退出文件。
6.安装Oracle Java 11
从这里下载Oracle JDK 11.
我们可以将RPM包下载到计算机上并将其上传到Sonarqube服务器。
或者我们可以使用以下步骤:
a)我们可以从Web浏览器下载中复制下载链接。
复制下载链接
b)然后使用"wget"命令转到服务器并下载。
wget https://download.oracle.com/otn/java/jdk/11.0.5+10/e51269e04165492b90fa15af5b4eb1a5/jdk-11.0.5_linux-x64_bin.rpm?AuthParam=1573886978_5511f6acaa0b321333446e8e838c1045
使用wget下载
c)如果系统中不可用"Wget"命令以使用以下命令安装它:
yum install wget -y
重命名下载的文件。
mv jdk-11.0.5_linux-x64_bin.rpm\?AuthParam\=1573886978_5511f6acaa0b321333446e8e838c1045 jdk-11.0.5_linux-x64_bin.rpm
安装Oracle JDK:
yum localinstall jdk-11.0.5_linux-x64_bin.rpm
Java安装在以下位置:
cd /usr/java/
添加Java环境变量:
vim /etc/bashrc
将以下行添加到文件的结尾:
export JAVA_HOME=/usr/java/jdk-11.0.5/ export JRE_HOME=/usr/java/jdk-11.0.5/jre PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
保存并退出文件并检查Java版本。
java -version
7.安装PostgreSQL 10
我们可以在此处看到基于Redhat基于的分布式的下载。
首先安装存储库:
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安装服务器:
yum install postgresql10-server postgresql10-contrib
初始化数据库:
/usr/pgsql-10/bin/postgresql-10-setup initdb
初始化数据库
修改pg_hba.conf文件;将"对等体"更改为"信任"和"IDNet"到"MD5"。
vim /var/lib/pgsql/10/data/pg_hba.conf
更改文件
修改完成后,文件应如下:
修改后
要启动Service并在启动时设置,请在System启动时启用PostgreSQL:
systemctl enable postgresql-10
检查服务状态并启动它。
systemctl status postgresql-10
systemctl start postgresql-10
更改Postgres用户的默认密码:
passwd postgres
切换到Postgres用户。
su - postgres
创建一个新用户。
createuser sonar
切换到PostgreSQL shell。
psql
PostgreSQL shell.
为新创建的用户设置索纳基数据库的密码:
ALTER USER sonar WITH ENCRYPTED password 'd98ffW@123?Q';
为PostgreSQL数据库创建一个新数据库。
CREATE DATABASE sonar OWNER sonar;
退出PSQL shell。
\q
退出"Postgres"用户。
exit
8.下载并配置Sonarqube
我们将下载到"选择"目录中的包。
所以改变目录
cd /opt
其中我们将使用7.9.x LTS版本,可以在此处下载
下载最新LTS版本
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.1.zip
然后解开
unzip sonarqube-7.9.1.zip
如果未放大命令不可用。
安装解压缩。
yum install unzip -y
重命名文件夹
mv sonarqube-7.9.1 sonarqube
修改"sonar.properties文件"。
vim /opt/sonarqube/conf/sonar.properties
找到以下行。
然后取消注释并修改值。
sonar.jdbc.username=sonar sonar.jdbc.password=d98ffW@123?Q sonar.jdbc.url=jdbc:postgresql://localhost/sonar
sonar.web.host=127.0.0.1 sonar.web.port=9000 sonar.web.javaOpts=-server -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError sonar.search.javaOpts=-server -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError
配置Elasticsearch存储路径:
sonar.path.data=/var/sonarqube/data sonar.path.temp=/var/sonarqube/temp
保存并退出文件。
为sonarqube创建一个用户
useradd sonar
设置密码:
passwd sonar
修改文件夹权限
chown -R sonar:sonar /opt/sonarqube
创建以下文件夹并授予权限:
mkdir -p /var/sonarqube/data mkdir -p /var/sonarqube/temp
chown -R sonar:sonar /var/sonarqube
将Sonarqube设置为服务
vim /etc/systemd/system/sonarqube.service
将以下内容添加到文件:
Unit] Description=SonarQube service After=syslog.target network.target [Service] Type=forking ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop LimitNOFILE=65536 LimitNPROC=4096 User=sonar Group=sonar Restart=on-failure [Install] WantedBy=multi-user.target
重新加载"SystemCtl"守护程序并在系统启动时启用Sonar。
systemctl daemon-reload
systemctl enable sonarqube.service
启动服务并检查其状态。
systemctl start sonarqube.service
systemctl status sonarqube.service
logfile位置
cd /opt/sonarqube/logs/
- SONARQUBE服务日志
tail -f /opt/sonarqube/logs/sonar.log
- Web服务器日志
tail -f /opt/sonarqube/logs/web.log
- Elasticsearch日志
tail -f /opt/sonarqube/logs/es.log
- 计算引擎日志
tail -f /opt/sonarqube/logs/ce.log
9.配置反向代理
安装nginx,启动服务,并启用系统启动。
yum install -y nginx
systemctl start nginx systemctl enable nginx
10.配置SSL.
启用EPEL REPO并安装CERTBOT。
yum install – y epel-release
yum install certbot python2-certbot-nginx
运行以下命令以获取证书,并将CERTBOT自动编辑NGINX配置,以便在一步中打开HTTPS访问。
certbot --nginx
命令将提出问题。
然后根据此添加所需的详细信息。
CERTBOT.
Certbot配置
安装完成后,打开nginx.conf。
vim /etc/nginx/nginx.conf
我们应该看到Certbot SSL配置。
SSL配置之后
然后将以下内容添加到位置块。
location/{ proxy_pass "http://127.0.0.1:9000"; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }
保存并退出文件。
修改后的文件如下所示:
nginx配置
检查nginx语法:
nginx -t
重新启动nginx:
systemctl restart nginx
11. DNS.
然后转到DNS Manager并为声明服务器添加记录。
A Domain Name Server IP
12.修改防火墙规则
如果启用了防火墙,请运行以下命令以打开HTTPS流量。
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload
防火墙规则https.
如果我们需要为特定IP打开Sonar,请运行以下命令:
firewall-cmd --permanent --zone=public --add-rich-rule=' rule family="ipv4" source address="122.43.8.188/32" port protocol="tcp" port="443" accept'
firewall-cmd --reload
13.浏览Sonarqube.
转到浏览器并执行域名。
eg:- https://sonar.theitroad.com/
浏览Sonarqube.
然后单击"登录"。
默认用户名和密码是"admin"。
现在我们成功配置了Sonarqube。