Postgres 10.11安裝教程
阿新 • • 發佈:2020-09-16
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
完成後重啟服務即可