上一篇從整體上講了下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了。