简介:
SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。同时 SonarQube 还对大量的持续集成工具提供了接口支持,
可以很方便地在持续集成中使用 SonarQube。此外, SonarQube 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持
#SonarQube部署
1、postgresql安装【欧拉系统】
安装必要的依赖
yum install -y readline-devel gcc zlib-devel make
可能需要安装
yum install -y tar
yum -y install libicu-devel
#下载地址:
wget https://ftp.postgresql.org/pub/source/v15.7/postgresql-15.7.tar.gz
2、创建用户并设置密码
groupadd -g 10001 postgres
useradd -g 10001 -u 10001 -m postgres
3、编译安装
mkdir -p /usr/local/pgsql
tar -xvf postgresql-15.7.tar.gz && cd postgresql-15.7 && ./configure --prefix=/usr/local/pgsql && make && make install
4、初始化数据库
#创建数据目录
mkdir -p /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
#切换到postgres操作系统用户
su - postgres
#初始化
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
5、启动数据库
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
#配置开机自启动
在root 用户下/etc/profile.d目录下新增postgresql.sh文件,内容如下
cat postgresql.sh
export PATH=$PATH:/usr/local/pgsql/bin
#创建启动文件
在/usr/lib/systemd/system下创建文件postgresql.service
vim postgresql.service
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
OOMScoreAdjust=-1000
Environment=PGDATA=/usr/local/pgsql/data
Environment=PGPORT=5432
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -l ${PGDATA}/logfile -s -o "-p ${PGPORT}" -w -t 300
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -l ${PGDATA}/logfile -s -m fast
ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -l ${PGDATA}/logfile -s
TimeoutSec=300
[Install]
WantedBy=multi-user.target
#设置自动启动
chmod a+x /usr/lib/systemd/system/postgresql.service
#先停止服务
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile stop
systemctl enable postgresql.service
systemctl start postgresql.service
systemctl status postgresql.service
4、登录postgre账户
su - postgres
5、修改密码
需要再postgres用户下且执行psql才可以
alter user postgres with encrypted password'你的密码';或\password
6、配置远程登录
--配置允许PG远程登录,注意版本:
cat >> /usr/local/pgsql/data/postgresql.conf <<"EOF"
listen_addresses = '*'
port=5432
unix_socket_directories='/usr/local/pgsql/data'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
EOF
cat > /usr/local/pgsql/data/pg_hba.conf << EOF
#TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all ::1/128 trust
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5
host replication all 0.0.0.0/0 md5
EOF
7、重启服务
systemctl daemon-reload && systemctl restart postgresql.service
8、远程测试
psql -U postgres -h 10.103.x.x
9、创建用户与库并授权
CREATE ROLE sonarqube WITH LOGIN PASSWORD '4ZX0iLXdBLTTULpLG0wr';
CREATE DATABASE sonarqube;
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
GRANT ALL ON SCHEMA public TO sonarqube;
\l
9、SonarQube安装
#解压
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.6.92038.zip
unzip -d /opt sonarqube-9.9.6.92038.zip
#修改配置文件
vim /opt/sonarqube-9.9.6.92038/conf/sonar.properties
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:postgresql://10.103..x:5432/sonarqube
sonar.path.data=/data/sonarqube/data
sonar.path.temp=/data/sonarqube/temp
sonar.web.host=10.103.x.x
sonar.web.port=9000
#配置用户与权限
useradd sonarqube
chown sonarqube:sonarqube -R /opt/sonarqube-9.9.6.92038
mkdir -p /data/sonarqube/data
mkdir -p /data/sonarqube/temp
chown sonarqube:sonarqube -R /data/sonarqube
#配置系统参数【启动es需要】
1、修改文件描述符数目
2、修改虚拟内存数大小
3、关闭swap分区
#启动SonarQube
切换用户 su - sonarqube,启动服务,访问9000端口,默认用户密码admin
/opt/sonarqube-9.9.6.92038/bin/linux-x86-64/sonar.sh start
#添加自启动
cat /usr/lib/systemd/system/sonarqube.service
[Unit]
#描述
Description=Sonarube Service
#代表要在其他的某些程序完成之后再执行.这些服务启动后,才允许启动Sonarube服务
After=syslog.target network.target
[Service]
Type=forking
# 绝对地址
ExecStart=/opt/sonarqube-9.9.6.92038/bin/linux-x86-64/sonar.sh start
# 绝对地址
ExecStop=/opt/sonarqube-9.9.6.92038/bin/linux-x86-64/sonar.sh stop
#启动的用户名
User=sonarqube
#启动的用户所在组
Group=sonarqube
Restart=always
#重启时间
RestartSec=120
LimitNOFILE=131072
LimitNPROC=8192
[Install]
WantedBy=multi-user.target
#systemctl daemon-reload && systemctl enable --now sonarqube.service