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 PGADMIN_DEFAULT_EMAIL=admin@domain.com -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:password@1.2.3.4: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

完成后重启服务即可

最新文章

  1. CSS基本知识2-CSS选择
  2. PHP数组处理函数的使用array_reduce(二)
  3. AngularJS快速入门指南06:过滤器
  4. Bootstrap页面布局2 - 包含BS文件
  5. Android-AttributeSet详解
  6. CentOS 7下载地址(ISO文件)
  7. 自己学习过程中关于以后有可能用到的技术的备份,微信广告滑屏组件 iSlider
  8. iOS UIScrollView的简单使用
  9. 在Centos 5.x或6.x上安装RHEL EPEL Repo
  10. Android屏幕相关设置
  11. iOS 轮播中遇到的问题(暂停、重新启动)
  12. SpringBoot后台接收前台的字符串数据
  13. 小白的python之路10/30 vim编辑器
  14. LOJ2557. 「CTSC2018」组合数问题
  15. Intellij idea安装
  16. 暑假里的第八篇Java
  17. byobu 禁止窗口名称随目录变化
  18. Hibernate之开门见山
  19. elasticsearch6.7 05. Document APIs(2)Index API
  20. 这可能是最详细的Python文件操作

热门文章

  1. NX二次开发-NX访问MySQL数据库(增删改查)
  2. 最全总结 | 聊聊 Python 数据处理全家桶(Mysql 篇)
  3. 2.Kafka-架构
  4. c++中清空输入缓冲区的方法(做cf的时候炸了)
  5. Redis学习(一)认识并安装redis
  6. Shell学习(一)认识Shell
  7. solr综合案例
  8. JS实现简单的多选选项的全选反选按钮
  9. 使用C#创建WebService实例
  10. 【CF1425A】 Arena of Greed题解