DevOps系列(2)-SonarQube之PostgreSQL

上一篇从整体上讲了下DevOps大概涉及到了哪些内容,以及主要工作流程,接下来我们将分步详细介绍各个部分的使用。

概览

首先从 SonarQube 开始说起,SonarQube 是一个可用于检测重复代码、潜在bug、代码规范、安全性漏洞以及单元测试等,并能够持续分析和评测项目源代码质量的代码质量管理平台。SonarQube由4个部件组成:一个SonarQube Server,一个SonarQube Database,若干SonarQube Plugin,若干SonarScanner。下图取自官方文档.

目前最新版本已经到了8.3,但是本文使用的是SonarQube 7.9 LTS版,因为该版本为最新的长期支持版。这部分先介绍SonarQube Database,因为数据库是基础。

数据库选择

SonarQube目前支持的数据库有PostgreSQL,Microsoft SQL Server,Oracle,说是选择,其实也没什么可选的,早期还支持MySql,但是从7.9开始就已经不再提供支持了(其实依然可以用),开源免费的基本就剩下PostgreSQL了,并且官方也推荐使用PostgreSQL,这也算是释放了一个小小的信号,新的项目可以多考虑考虑用PostgreSQL替代MySql,近几年PostgreSQL发展非常迅速,有兴趣的可以去db-engines看一下数据库排名及趋势。

PostgreSQL排名第四,并且无论同比还是环比都有较高的增长率,而其他排名靠前的数据库环比均有所下滑。说这么多,其实就是一句话,选PostgreSQL就对了。

安装

目前PostgreSQL版本已经到12了,但是SonarQube 7.9 LTS支持的最新版是10,那我们也直接用10,其实PostgreSQL 9就已经够用了,数据库的稳定性往往远大于功能性,通常也不需要最新的版本,新功能通常情况下也用不上。

官网页面,选择对应的版本及系统(我的是CentOS 7),如下图所示:

拷贝如下脚本,逐个执行安装并启动服务。

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86\_64/pgdg-redhat-repo-latest.noarch.rpm  
yum install postgresql10-server -y
/usr/pgsql-10/bin/postgresql-10-setup initdb  
systemctl enable postgresql-10  
systemctl start postgresql-10

安装完成后,可通过如下命令查看下当前版本:

[root@Node01 ~]# psql --version
psql (PostgreSQL) 10.13

修改密码

PostgreSQL安装成功后,会在Linux系统中默认创建一个postgres用户,必须切换到postgres才可以访问PostgreSQL数据库,root用户无权访问,如下所示:

[root@Node01 ~]# cat /etc/passwd | grep postgres
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
[root@Node01 ~]# psql postgres
psql: FATAL:  role "root" does not exist
[root@Node01 ~]# su postgres
bash-4.2$ psql postgres
could not change directory to "/root": Permission denied
psql (10.13)
Type "help" for help.

postgres=# 

注意,切换postgres用户后可能会提示could not change directory to "/root": Permission denied,这是因为postgres用户没有访问/root目录的权限,可以登录root用户提升postgres用户的权限。当然其实也不需要那么麻烦,直接无视就可以了,因为我们只需要用过postgres用户对PostgreSQL数据库进行操作而已,不需要访问其他资源。
PostgreSQL默认账号也是postgres,没有密码,可以通过下面脚本修改密码(也可以新建一个用户,会更安全,但实际上,数据库外网应该是不能访问的,所以我直接使用默认用户):

alter user postgres with password '123456';

远程访问设置

进入/var/lib/pgsql/10/data目录,修改postgresql.conf配置文件,修改为监听所有IP:

listen_addresses = '*'

修改pg_hba.conf配置文件,添加验证方式,并只接收来自192.168.0.0/16网段的请求:

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
host    all        	all     	192.168.0.0/16        	md5

基本操作

系统命令

下面操作需要切换到postgres用户执行。

操作 说明
psql -l 查看数据库列表
createdb testdb 创建testdb数据库
psql testdb 切换到testdb数据库
dropdb testdb 删除testdb数据库
createuser dbuser 创建dbuser用户
dropuser dbuser 删除dbuser用户

数据库命令

下面操作需要切换到具体的数据库执行。

操作 说明
\h 查看SQL命令帮助
? 查看psql命令帮助
\l 查看数据库列表
\q 退出客户端程序psql
\c 从一个数据库中切换到另一个数据库
\dt 查看表
\d 查看表结构

管理工具

为了操作方便,也可以安装一个可视化的管理工具---pgAdmin,进入yum仓库页面,按步骤安装即可。我只装了web版,并且跟数据库安装在了同一台服务器上,用到的脚本如下:

# 设置仓库
rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-1-1.noarch.rpm
# 仅安装WEB模式
yum install pgadmin4-web -y

# 执行脚本完成配置
/usr/pgadmin4/bin/setup-web.sh

到这里,数据库准备好了,下一步我们可以安装SonarQube Server了。

posted @ 2020-07-01 14:40  煮诗君  阅读(1413)  评论(1编辑  收藏  举报