1. 程式人生 > 實用技巧 >Postgres 10.11安裝教程

Postgres 10.11安裝教程

Postgres搭建

考慮到Drone和Sonarqube等都需要藉助Postgres儲存,為了保證CI服務的高效的工作,將考慮獨立其中依賴的資料庫,避免在繁忙時佔用過多資源從而影響整體CI的速度。

一、 CentOS設定

1. 更換阿里源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum makecache

2. 安裝網路工具

yum install net-tools -y

3. 使用阿里NTP服務

yum install chrony -y

sed -i "/server/d" /etc/chrony.conf

vi /etc/chrony.conf 增加 server ntp.aliyun.com iburst

systemctl restart chronyd

chronyc tracking

4. 關閉防火牆

systemctl stop firewalld
systemctl disable firewalld

二、 安裝Docker-CE

1. 安裝依賴包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2. 設定倉庫

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3. 安裝Docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

4. 啟動並設定自啟動

sudo systemctl start docker

sudo systemctl enable docker

5. 設定加速器

vi /etc/docker/daemon.json 新增如下內容

{
  "registry-mirrors": ["https://harbor.vip56.cn"]
}

sudo systemctl restart docker

三、 安裝Postgres

1. 下載映象包

官方倉庫地址

docker pull postgres:10.11

如果下載比較慢,可以利用公司內部的倉庫harbor.vip56.cn/common/postgres:10.11

2. 啟動指令

docker run -d -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123456 -v /my/own/datadir:/var/lib/postgresql/data --name postgres --restart=always postgres:10.11

3. 使用Web ui

具體方式可以參考本文件

docker run -d -p 80:80 -e [email protected] -e PGADMIN_DEFAULT_PASSWORD=sino5802486 --name pgadmin --restart=always dpage/pgadmin4:4.15

四、 Drone改用pg

由於Drone預設使用SQLite進行儲存,在部分場景下並不能提供有效的支援,為此我們需要將其儲存修改為其他方式。

1. 遷移資料

由於基於SQLite進行儲存了一定的資料,為了保證資料0丟失,這裡我們需要藉助其他工具進行遷移,這裡可以參考pgloader進行遷移,主要指令如下:

pgloader ./test/sqlite/sqlite.db postgresql:///newdb

注意,由於預設官網的可能存在部分設定問題這裡可用使用優化過的映象dimitri/pgloader:ccl.latest,然後進入容器中執行如下示例的語句:

pgloader /data/database.sqlite postgresql://[username]:[password]@[host]:5432/drone?sslmode=disable

2. 調整Drone配置

由於Drone採用Docker進行部署,所以我們需要增加額外的環境變數即可使用:

DRONE_DATABASE_DRIVER=postgres
DRONE_DATABASE_DATASOURCE=postgres://root:[email protected]:5432/postgres?sslmode=disable

完成以上配置後啟動Drone服務,可以看到對應的資料庫已經採用postgres了。

五、 SonarQube儲存修改

由於SonarQube本身就已經使用postgres儲存了,所以資料可以直接進行遷移,完成遷移後對應修改如下:

vi /conf/sonar.properties

sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

sonar.jdbc.url=jdbc:postgresql://localhost/sonar

完成後重啟服務即可