部署SonarQube服务器

嗨,habrozhiteli!


在本指南中,我想提出一个逐步的设置,以部署一个平台来持续分析和衡量代码质量。 网络上有很多类似的文章,但是我只想强调主要内容,以便所有新手都可以在第一时间处理它。 我们将在PostgreSQL 10 SonarQube 7.9


您已经学习了维基,对吗?


在开始之前


我希望您决定实施哪个版本,因为每次更新都会支付越来越多的插件,这当然会影响财务成本或功能。


通常,请点击此链接,然后亲自查看: 插件版本列表


根据文档: 建议将服务器和数据库保留在不同的机器上 。 但是,您也可以在沙箱中进行训练。


如果您有Ubuntu和2个服务器


如果您决定遵循建议的方法,并且为了不打扰创建两个虚拟机,那么您就创建了一个虚拟机-您可以使用以下命令轻松轻松地更改第二台服务器的名称和IP:


:::更改主机名:::


 $ hostnamectl set-hostname sonarapp sudo nano /etc/hostname sudo nano /etc/hosts 

:::更改ip ubuntu :::


 sudo nano /etc/netplan/01-eth0.yaml 

在此处找到熟悉的行,并更改计算机名称和IP地址的参数。


并且应该发生什么


声纳应用服务器[SonarApp]:8核,16GB RAM,20Gb + 50Gb(/ opt)磁盘空间


使用者密码知识产权平台平台
管理员密码123192.168.0.15Ubuntu Linux

声纳数据库[SonarDB]:8核,16GB RAM,20Gb + 50Gb(/ opt)磁盘空间


使用者密码知识产权平台平台
管理员密码123192.168.0.16Debian Linux

1.我建议从数据库开始


以我们的管理员身份登录192.168.0.16(SonarDB)。 不要以超级用户身份运行非常重要。


确保系统上已安装PostgreSQL。 有很多选择,但尝试最简单的选择:


 $ which psql $ psql -V $ find / -name 'postgres' 

查看哪些软件包已下载到系统:


 $ dpkg -l | grep postgres 

如果未找到任何内容,请检查PostgreSQL 10是否在存储库中:


 $ sudo apt-cache search postgresql-10 

官方PostgreSQL安装文档: link 。 但是如果按顺序:


 $ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add - $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list' $ sudo apt-get update $ sudo apt-get install postgresql-10 pgadmin4 

  • 将postgres添加到系统后,语言环境出现问题。 解决方法(在/etc/default/locale解决方案):
     $ sudo locale-gen en_US.UTF-8 $ sudo localedef -i en_US -f UTF-8 en_US.UTF-8 $ export LANGUAGE=en_US.UTF-8 $ export LANG=en_US.UTF-8 $ export LC_ALL=en_US.UTF-8 $ sudo locale-gen en_US.UTF-8 $ sudo dpkg-reconfigure locales 

dpkg-reconfigure locales命令将在Debian下打开一个对话框,以选择所需的语言环境。 选择en_US.UTF-8


发射!


 $ sudo systemctl start postgresql $ sudo systemctl status postgresql $ sudo nano /etc/postgresql/10/main/postgresql.conf ### CTRL + W ### -> listen_addresses = '*' $ sudo systemctl restart postgresql 

检查安装是否成功:


 $ sudo apt-get install -y net-tools $ sudo netstat -antup | grep 5432 $ dpkg --get-selections |grep postgres $ pg_lsclusters 

恭喜你! 继续。 :)


 sudo su -l postgres psql ### CTRL + Z ### -> exit from psql ### exit ### 

更改默认PostgreSQL用户的密码


 $ sudo passwd postgres 

切换到postgres用户。


 $ su - postgres 

切换到PostgreSQL shell。


 $ psql 

PostgreSQL基本配置


为新创建的SonarQube数据库用户设置密码。


 CREATE ROLE sonar WITH PASSWORD 'sonar'; SELECT rolname FROM pg_roles; alter role sonar login; SELECT pg_reload_conf(); Create a new database for PostgreSQL database by running: create database sonar owner sonar; 

从psql shell退出:


 '\q' 

PostgreSQL数据库迁移


停止PostgreSQL服务


 $ service postgresql stop # or $ /usr/lib/postgresql/10/bin/pg_ctl stop -D /var/lib/postgresql/10/main 

更改数据目录。


 $ psql 

 # show data_directory; /var/lib/postgresql/10/main 

 $ sudo rsync -av /var/lib/postgresql /opt/sonardb $ sudo mv /var/lib/postgresql/*/main /var/lib/postgresql/*/main.bak $ sudo nano /etc/postgresql/*/main/postgresql.conf # change location for new data_directory. data_directory = '/opt/sonardb/postgresql/10/main' listen_addresses = '*' 

变更支票


 $ sudo -u postgres psql 

 # show data_directory; ______________________ /opt/sonardb/postgresql/10/main # \q 

并且还需要检查系统参数。 可以将它们添加到/etc/sysctl.conf文件(或/etc/sysctl.d/99-sonarqube.conf )中或在终端中输入:


 sysctl -w vm.max_map_count=262144 sysctl -w fs.file-max=65536 ulimit -n 65536 ulimit -u 4096 

2.现在我们将从事SonarQube应用服务器


以我们的管理员身份登录192.168.0.15(SonarApp)。 root用户也很重要。


那些以$字符开头的行是终端输入,其余是我们在文件中要纠正的内容或应该在输出中接收的内容(信息输出)


SonarQube需要JAVA才能工作。 拿OpenJDK


安装open-jdk11


 $ sudo apt-get install openjdk-11-jdk 

更改java路径


 $ nano ~/.bash_profile export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java export PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH 

验证JAVA已成功添加到系统中


 $ java -version 

下载并配置SonarQube


下载SonarQube安装程序文件档案。


 $ wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.1.zip 

通过运行以下命令安装解压缩:


 # apt-get -y install unzip 

使用以下命令解压缩存档


 $ sudo unzip sonarqube-7.9.1.zip -d /opt 

重命名目录


 $ sudo mv /opt/sonarqube-7.9.1 /opt/sonarqube 

添加声纳用户和权限


了解有关Unix上用户管理的更多信息


创建一个名为sonar的用户,并使其成为/opt/sonarqubedirectory


 $ sudo adduser sonar $ sudo passwd sonar $ sudo chown -R sonar:sonar /opt/sonarqube 

获取系统中的列表用户:


 $ cut -d: -f1 /etc/passwd 

您的新用户属于哪些组:


 $ groups sonar 

继续配置SonarQube


 $ sudo nano /opt/sonarqube/conf/sonar.properties 

 sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.web.host=192.168.0.15 # sonar.jdbc.url=jdbc:postgresql://localhost/username sonar.jdbc.url=jdbc:postgresql://192.168.0.16/sonar sonar.web.javaAdditionalOpts=-server 

创建文件/etc/systemd/system/sonarqube.service并将以下内容/etc/systemd/system/sonarqube.service到该文件上


 [Unit] Description=SonarQube service After=syslog.target network.target [Service] Type=simple User=sonar Group=sonar PermissionsStartOnly=true ExecStart=/bin/nohup java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/lib/sonar-application-7.9.1.jar StandardOutput=syslog LimitNOFILE=65536 LimitNPROC=8192 TimeoutStartSec=5 Restart=always [Install] WantedBy=multi-user.target 

启动并启用声纳


 $ sudo systemctl start sonarqube $ sudo systemctl enable sonarqube 

要检查服务是否正在运行,请运行:


 $ sudo systemctl status sonarqube 

日志:


 tail -f /opt/sonarqube/logs/sonar.log 



要检查数据库的可用性,请连接到192.168.0.15并键入:


 $ psql -h 192.168.0.16 -p 5432 -U sonar 

仅此而已。 为确保一切正常,请转到浏览器(确保您可以访问192.168.XX网络或使用链接)。


我们将拨打192.168.0.15:9000,授权窗口将欢迎您。


SonarQube标准主要管理员用户数据:


使用者密码
管理员管理员

Source: https://habr.com/ru/post/zh-CN474140/


All Articles