DevOps实战之部署SonarQube

目标

  1. 搭建PostgreSQL数据库
  2. 搭建SonarQube
  3. 配置LDAP登录

环境及镜像版本说明

基础环境

  • CentOS 7.6
  • Kubernetes 1.18.15
  • Docker 19.03.9

    Docker Image版本

  • postgres 13.2
  • sonarqube 8.9.0-community

部署

创建NFS Provisioner

创建PostgreSQL 和 SonarQube资源清单

资源清单

启动

1
2
cd ~/sonar
kubectl apply -f .

访问web页面

访问 http://[nodeIp]:30003

默认用户名: admin

默认密码: admin

首次登录后会要求修改密码

配置ldap

在挂载卷路径下的conf文件夹中,新建或修改SonarQube的配置文件sonar.properties

根据官方示例及相关配置项说明将其修改为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# General Configuration
sonar.security.realm=LDAP
# 这里使用了svc的名称,可以换成ip
ldap.url=ldap://ldap-service:389
# 管理员的账号密码
ldap.bindDn=cn=admin,dc=example,dc=org
ldap.bindPassword=admin

# User Configuration
# 用户的搜索路径,LDAP中用户的根节点
ldap.user.baseDn=cn=ldap,dc=example,dc=org
# 制定搜索规则
#ldap.user.request=(&(objectClass=inetOrgPerson)(uid=${login}))

# Group Configuration
# 用户组的搜索路径,LDAP中组的根节点
ldap.group.baseDn=dc=example,dc=org
# 制定搜索规则
#ldap.group.request=(&(objectClass=posixGroup)(gid={dn}))

修改后,使用kubectl delete pod 删除sonarqube的Pod,重启sonarqube服务。使用ldap中的用户和密码测试登录是否成功。