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

完成后重启服务即可

Postgres 10.11安装教程的更多相关文章

  1. arcgis 10.2 安装教程

    arcgis 10.2 安装教程(含下载地址)_百度经验 http://jingyan.baidu.com/article/fc07f98911b66912ffe5199b.html arcgis 1 ...

  2. 黑苹果macOS Sierra 10.12 安装教程(venue11 pro测试)

    黑苹果macOS Sierra 10.12 安装教程(venue11 pro测试) 2017-03-12 03:46:24 by SemiconductorKING PS:刚刚装好黑苹果,来记录一篇折 ...

  3. Adobe Audition CC 2017 (10.0)安装教程

    Adobe Audition CC 2017 (10.0)安装教程 注:下载地址在文章末尾 第一步:首先请将电脑的网络断开,很简单:禁用本地连接或者拔掉网线,这样就可以免除登录Creative Clo ...

  4. Mac OSX 10.11安装Jekyll

    一说常见的博客管理工具大家想到的就是WordPress.不过现在部分个人博客用户开始从WordPress转移到Jekyll上了.Jekyll是一种本地生成静态页面进而线上发布的博客工具,而且现在已经有 ...

  5. [原创]Mac系统下制作OS 10.11安装镜像

    一.所需软件 1.从App Store下载OS X El Capitan 10.11.2 ------------------------------------------------------- ...

  6. 10.11 安装pod

    原文地址:http://www.jianshu.com/p/5fc15906c53a  感谢. 更新升级10.11 cocoapods安装出问题最简单的解决方法 这是因为10.11把cocoapods ...

  7. Apache 2.4.16、PHP5.6.11安装教程

    以前我写过Apache2.4和php5.5的安装教程,但是后来我自己跟着自己写的东西做时发现有很多问题,这里把这些问题重新修正,再写一个教程,供大家参考. 注意:WinXP系统请选择旧版本Apache ...

  8. VMware Workstation 10 简体中文安装教程

    分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 分享到 一键分享 QQ ...

  9. macOS 10.11.* 安装scrapy

    1.安装brew,然后修改brew源为某高校 2.更新python brew install python 3.安装pip 4.安装scrapy,这里肯定会有一个坑,之前在网上看到10.11开启了什么 ...

随机推荐

  1. mysql1045问题解决

    输入mysql -u root -P 1202 -h localhost -p时报错mysql1045 解决方法:my.ini中加上skip-grant-tables后重启mysql服务即可解决

  2. jmeter的用途

    1.可以测接口 2.测试连数据库 3.可以进行压测 4.可部署分布式

  3. python 3 for嵌套

  4. [LeetCode]322. 零钱兑换(DP)

    题目 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: 输入: coin ...

  5. [剑指Offer]56-数组中数字出现的次数(位运算)

    题目一 数组中只出现一次的数字 题目 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字 题解 异或. 先考虑:数组中只有一个数字只出现了一次,其他数字都出现了 ...

  6. in多值优化

    〇.问题 今天ocp群里有人问 SELECT * FROM table WHERE id IN(11,2,3,44,...) 在in里面有大量数据4000+,有什么 好的处理方式吗? 我的优化方案的总 ...

  7. python中random库的使用

    基本随机函数 计算机产生随机数是需要随机数种子的,例如 给定一个随机数种子,就能利用梅森旋转算法产生一系列随机序列 每一个数都是随机数,只要随机种子相同,产生的随机数和数之间的关系都是确定的 随机种子 ...

  8. vue v-for渲染数据出现DOMException: Failed to execute 'removeChild' on 'Node': The node .....

    在项目中,使用了vue的v-for渲染数组数据,在一次改变数组的时候出现异常报错,而实际的数组是已经变化过的了,页面卡死 网上找了一下原因,说是vue的DOM渲染的时候,删除之后DOM里面的还没有反应 ...

  9. Spring学习(三)Spring AOP 简介

    一.简介 定义 aop就是面向切面编程,在数据库事务中切面编程被广泛使用. 在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能. 核心业务:比如登陆,增加数据,删除数据都叫核心业务 周边功能 ...

  10. 关于SpringBoot的一点笔记

    @SpringBootApplication /** * @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用 */ @SpringBootAppl ...