ubuntu18.04 安装soanarqube
一、介绍
-
PostgreSQL 版本 9.3 或更高版本
-
具有 sudo 权限的 SSH 访问
-
防火墙端口:9000
在这里,我们正在安装SonarQube 8.9版本,并且在安装SonarQube之前必须安装Oracle JAVA / Open JDK,Postgres / MS-SQL作为数据库和最新浏览器。要了解先决条件,请访问
二、增加内核:在运行时增加当前会话的 vm.max_map_count 内核、文件描述符和 ulimit。
sudo sysctl -w vm.max_map_count=262144
sudo sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 4096
三、安装步骤
1.安装OpenJDK
sudo apt-get install openjdk-11-jdk -y
sudo apt-get install openjdk-11-jre -y
2.设置默认 JDK
要设置默认 JDK 或切换到 OpenJDK,请输入以下命令:
sudo update-alternatives --config java
您将看到以下替代java的选择(提供/usr/bin/java)。
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
* 3 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
键入1以切换 OpenJDK 11。
3.检查 JAVA 版本:
java -version
javac --version
输出:
java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
4.安装和安装程序 PostgreSQL 10 数据库 SonarQube
添加并下载 PostgreSQL 存储库
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
使用以下命令安装 PostgreSQL 数据库服务器,
sudo apt-get -y install postgresql postgresql-contrib
启动 PostgreSQL 数据库服务器
sudo systemctl start postgresql
启用它在启动时自动启动。
sudo systemctl enable postgresql
更改默认 PostgreSQL 用户的密码。
sudo passwd postgres
切换到 postgres 用户。
su - postgres
通过键入以下内容创建新用户:
createuser sonar
切换到 PostgreSQL shell。
psql
为 SonarQube 数据库新创建的用户设置密码。
ALTER USER sonar WITH ENCRYPTED password 'sonar';
通过运行以下命令为 PostgreSQL 数据库创建新数据库:
CREATE DATABASE sonarqube OWNER sonar;
授予sonar用户对sonar数据库的所有权限。
grant all privileges on DATABASE sonarqube to sonar;
退出 psql 外壳:
\q
通过运行 exit 命令切换回 sudo 用户。
exit
5.如何在Ubuntu 18.04 LTS上安装SonarQube
下载 sonaqube 安装程序文件存档 要下载最新版本,请访问 SonarQube
cd /tmp
sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.1.44547.zip
将 archeve 安装程序解压缩到/opt目录
sudo unzip sonarqube-8.9.1.44547.zip -d /opt
将提取的安装程序移动到/opt/sonarqube目录
sudo mv /opt/sonarqube-8.9.1.44547 /opt/sonarqube
6.配置sonar
我们无法以 root 用户身份运行 Sonarqube,如果使用 root 用户运行,它会自动停止。我们已经找到了解决此问题的方法,以创建saparate组和用户来运行sonarqube。
创建组和用户:
创建一个组作为sonar
sudo groupadd sonar
现在添加具有目录访问权限的用户
sudo useradd -c "user to run SonarQube" -d /opt/sonarqube -g sonar sonar
sudo chown sonar:sonar /opt/sonarqube -R
使用您喜欢的文本编辑器打开SonarQube配置文件。
sudo vim /opt/sonarqube/conf/sonar.properties
找到以下行。
#sonar.jdbc.username=
#sonar.jdbc.password=
取消注释并键入我们在上述步骤中创建的PostgreSQL数据库用户名和密码,并添加postgres连接字符串。
#--------------------------------------------------------------------------------------------------
# DATABASE
#
# IMPORTANT:
# - The embedded H2 database is used by default. It is recommended for tests but not for
# production use. Supported databases are Oracle, PostgreSQL and Microsoft SQLServer.
# - Changes to database connection URL (sonar.jdbc.url) can affect SonarSource licensed products.
# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
编辑sonar脚本文件并设置RUN_AS_USER
sudo vim /opt/sonarqube/bin/linux-x86-64/sonar.sh
# If specified, the Wrapper will be run as the specified user.
# IMPORTANT - Make sure that the user has the required privileges to write
# the PID file and wrapper.log files. Failure to be able to write the log
# file will cause the Wrapper to exit without any way to write out an error
# message.
# NOTE - This will set the user which is used to run the Wrapper as well as
# the JVM and is not useful in situations where a privileged resource or
# port needs to be allocated prior to the user being changed.
RUN_AS_USER=sonar
启动sonar:
现在要启动SonarQube,我们需要执行以下操作:切换到sonar用户
sudo su sonar
移动到脚本目录
cd /opt/sonarqube/bin/linux-x86-64/
运行脚本以启动 SonarQube
./sonar.sh start
输出:
Starting SonarQube...
Started SonarQube
我们也可以将其添加到服务中,并且可以作为服务运行。
检查sonar运行状态
要检查sonaqube是否正在运行,请输入以下命令,
./sonar.sh status
sonar日志
要检查sonar声日志,请导航到/opt/sonarqube/logs/sonar.log目录
tail /opt/sonarqube/logs/sonar.log
输出:
INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='ce', ipcIndex=3, logFilenamePrefix=ce]] from [/opt/sonarqube]: /usr/lib/jvm/java-11-openjdk-amd64/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp --add-opens=java.base/java.util=ALL-UNNAMED -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/common/*:/opt/sonarqube/lib/jdbc/h2/h2-1.3.176.jar org.sonar.ce.app.CeServer /opt/sonarqube/temp/sq-process15059956114837198848properties
INFO app[][o.s.a.SchedulerImpl] Process[ce] is up
INFO app[][o.s.a.SchedulerImpl] SonarQube is up
使用关于输出,您将看到sonaqube已成功启动并运行。
配置 Systemd 服务
首先停止SonarQube服务,因为我们开始使用上述步骤手动导航到SonarQube安装路径
cd /opt/sonarqube/bin/linux-x86-64/
运行脚本以关闭 SonarQube
./sonar.sh stop
为 SonarQube 创建一个 systemd 服务文件,以作为系统启动运行。
sudo vim /etc/systemd/system/sonar.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
User=sonar
Group=sonar
Restart=always
LimitNOFILE=65536
LimitNPROC=4096
[Install]
WantedBy=multi-user.target
保存并关闭该文件。现在停止sonar脚本,我们之前开始使用守护程序运行。通过运行以下命令启动 Sonarqube 守护程序
sudo systemctl start sonar
启用 SonarQube 服务以在启动时自动启动系统。
sudo systemctl enable sonar
检查sonar服务是否正在运行,
sudo systemctl status sonar
浙公网安备 33010602011771号