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了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM