以下是部署Sonarqube的示例代码,包括下载、解压、配置和启动Sonarqube服务的步骤:
#!/bin/bash
# 定义SonarQube版本
SONARQUBE_VERSION="8.9.1.36509"
# 下载SonarQube
wget "https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-${SONARQUBE_VERSION}.zip" -O /tmp/sonarqube.zip
# 解压SonarQube
unzip /tmp/sonarqube.zip -d /opt
# 配置SonarQube
sudo ln -s /opt/sonarqube-${SONARQUBE_VERSION} /opt/sonarqube
# 创建SonarQube用户
sudo useradd sonar
# 更新SonarQube权限
sudo chown -R sonar:sonar /opt/sonarqube-${SONARQUBE_VERSION}
# 创建数据目录并更改所有者
sudo mkdir /opt/sonarqube-${SONARQUBE_VERSION}/data
sudo chown -R sonar:sonar /opt/sonarqube-${SONARQUBE_VERSION}/data
# 配置内存和用户
echo "sonar_web_java_opts_Xms=-Xms512m" | sudo tee -a /opt/sonarqube/conf/sonar.properties
echo "sonar_web_java_opts_Xmx=-Xmx512m" | sudo tee -a /opt/sonarqube/conf/sonar.properties
echo "sonar_web_context=/sonarqube" | sudo tee -a /opt/sonarqube/conf/sonar.properties
echo "sonar_log_dir=/opt/sonarqube/logs" | sudo tee -a /opt/sonarqube/conf/sonar.properties
# 配置SonarQube作为服务启动
echo "[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/opt/sonarqube/sonar.pid
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
[Install]
WantedBy=multi-user.target" | sudo tee /etc/systemd/system/sonarqube.service
# 重新加载systemd以识别新服务
sudo systemctl daemon-reload
# 启动SonarQube服务
sudo systemctl start sonarqube.service
# 设置SonarQube服务开机自启
sudo systemctl enable sonarqube.service
这段脚本首先定义了SonarQube的版本,然后使用wget下载SonarQube的压缩包到/tmp目录,接着使用unzip命令解压到/opt目录。之后,创建了SonarQube用户,并更新了相关目录的权限。配置内存和用户设置,并将SonarQube配置为系统服务。最后,重新加载systemd以识别新服务,并启动和设置开机自启SonarQube服务。