Sonarqube with PostgreSQL 的安装与配置及其中学到的知识

Sonarqube with PostgreSQL 的安装与配置及其中学到的知识

文章目录

  • Sonarqube with PostgreSQL 的安装与配置及其中学到的知识
    • 安装JDK 11
      • JDK 11安装
      • Maven安装
    • Sonarqube with PostgreSQL 的安装与配置
      • 使用sonarqube
      • 使用sonarpython
    • 遇到的一些其他bug

安装JDK 11

查看本地的Java版本,是否存在JDK11

#查看当前java版本
java -version
# 列出当前系统中所有安装的 Java 版本,并显示其路径
update-alternatives --config java

如果需要更改JDK版本

#编辑 ~/.bashrc 或 ~/.bash_profile 文件中,在末尾添加以下行:将 /path/to/your/jdk 替换为你 JDK 的安装路径
export JAVA_HOME=/path/to/your/jdk
#使用 source ~/.bashrc 或 source ~/.bash_profile 使配置生效,或者重新启动终端。

JDK 11安装

使用 Yum 安装 OpenJDK 11

# 更新 Yum 包管理器:
sudo yum update
# 安装 OpenJDK 11:
sudo yum install java-11-openjdk-devel
# 验证安装:
java -version

Maven安装

下载 Maven

  1. 访问 Apache Maven 官方网站。
  2. 在 “Files” 部分找到 Maven 3.8.x 的稳定版本并下载对应的压缩包(通常是 .tar.gz 或 .zip 格式)。可以通过uname -m来查看操作系统架构。
  3. 在命令行或终端中,使用 wget 或浏览器下载工具下载 Maven。

解压安装 Maven

  1. 在命令行中,导航到您下载 Maven 压缩包的目录。

  2. 执行解压命令:

    对于 .tar.gz 格式:

    tar -xvzf apache-maven-x.x.x-bin.tar.gz
    

    对于 .zip 格式:

    unzip apache-maven-3.8.x-bin.zip
    

配置环境变量

  1. 打开 ~/.bashrc~/.bash_profile 文件(具体文件名可能因系统而异)。

  2. 添加 Maven 的 bin 目录到 PATH 变量中,类似于这样:

    export PATH=/path/to/apache-maven-x.x.x/bin:$PATH
    
  3. 使用 source ~/.bashrcsource ~/.bash_profile 来使更改生效,或者关闭并重新打开终端。

验证安装

在命令行中输入 mvn -version,您应该能够看到 Maven 的版本信息,表明安装已成功。which mvn:查找 Maven 的可执行文件的路径

Sonarqube with PostgreSQL 的安装与配置

Sonarqube运行需要配置数据库,mysql在sonarqube-7.9.4下不支持,故使用PostgreSQL

安装工作

# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Install PostgreSQL:
sudo yum install -y postgresql12-server

# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12

一些有必要的配置工作

# 编辑 /var/lib/pgsql/data/pg_hba.conf 文件,将认证 ident 改为 md5.
sudo vi /var/lib/pgsql/10/data/pg_hba.conf

可以直接将相应内容换成如下:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident
#host    replication     sonar           127.0.0.1/32            ident

# 重启应用
sudo systemctl restart postgresql-12

设置database 与 user

# 修改用户 postgres 的默认密码. 所有的数据库命令行必须通过这个用户执行.
sudo passwd postgres
# 使用新的密码登陆用户 postgres.
su - postgres
# 创建新用户 sonar.
createuser sonar
# 进入 PostgreSQL 的命令行 CLI.
psql
# 为 sonar 用户设置密码.
ALTER USER sonar WITH ENCRYPTED password 'sonar';
# 创建数据库 sonar.
CREATE DATABASE sonar WITH ENCODING 'UTF8' OWNER sonar TEMPLATE=template0;
# 退出 PostgreSQL 命令行.
\q
# 退出用户登陆.
exit

为sonarqube配置数据库

# 编辑sonarqube配置文件
vim /home/autoarmor/delivery/java-javascript-python/sonar/sonarqube-7.9.4/conf/sonar.properties

添加如下内容

# DATABASE
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
# WEB SERVER
sonar.web.host=0.0.0.0
sonar.web.port=9000

使用sonarqube

sonarqube 不能通过 root 用户执行因为elasticsearch,所以新建用户.

  1. 创建用户 sonar

    sudo useradd sonar
    
  2. 将 sonar 设置为 /sonarqube-7.9.4 文件夹的 owner.

    # 查看当前文件夹的权限和所属用户
    ll
    # 将文件夹所属改为sonar
    sudo chown -R sonar:sonar sonarqube-7.9.4
    # 将权限提升至可读可写可执行
    sudo chmod -R 755 sonarqube-7.9.4
    
  3. 启动sonarqube

    # 登陆用户 sonar.
    su - sonar
    # 进入sonarqube执行文件目录下
    cd /home/autoarmor/delivery/java-javascript-python/sonar/sonarqube-7.9.4/bin/linux-x86-64
    # sonarqube以控制台方式,启动!启动!
    ./sonar.sh console
    

    可以在localhost:9000这个url访问到控制台

    如果失败可以在查看 /sonarqube-7。9.4/logs 下 web.log、es.log、sonar.log.

使用sonarpython

在启动了sonarqube后,可以到相应Python语言下服务目录下直接启动./scan.sh,可以在同一目录下找到生成的相应的json文件

# 如果显示权限不够就执行这个
sudo chmod -R 777 /home/autoarmor/delivery/java-javascript-python/sonar/bookinfo/productpage/

遇到的一些其他bug

问题

------------------------------------------------------------------
总计                                 1.6 MB/s | 4.5 MB  00:02     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 检索密钥


源 "MySQL 5.7 Community Server" 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。


 失败的软件包是:mysql-community-libs-compat-5.7.44-1.el7.x86_64
 GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

解决

# 使用了远程 URL 直接导入密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 查看mysql安装位置
whereis mysql
# 查看 CentOS 上的用户列表
cat /etc/passwd
# 删除用户
sudo userdel username
# 如果被进程占用
sudo kill -9 pid
# 如果一直重新启动服务,先查看,后取消重新启动
watch -n 1 'ps aux | grep mysql'
systemctl disable servicename

你可能感兴趣的:(一直拥有的BUG,postgresql,数据库)