容器时代的持续交付工具---Drone:Drone介绍与安装
Drone:Drone is a Container-Native, Continuous Delivery Platform。
官方给的定义,从上面的定义可以得出两个关键点:
1,Container-Native:Cloud-Native是云原生,那Container-Native可以翻译成容器原生,就是说Drone是容器时代的一个产品,是基于容器实现的。
2, Continuous Delivery:持续交付,容器是现在快速交付的一个代名词,而Drone是容器化的一种持续交付的平台,其实Drone不仅仅可以实现持续交付,借助一些plugin,也可以实现持续部署。
官方地址:https://drone.io/
如何安装?
一、Drone是Container-Native的平台,那自然Drone也是使用容器方式来安装的,所以首先要准备容器的运行环境,我们这里使用docker,安装docker具体操作如下:
1,安装需要的软件包
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
2,配置yum源
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3,安装docker-ce
yum install docker-ce
4,启动docker
systemctl start docker
通过以上方式就完成了docker的安装。
二、安装Drone
Drone分两大部分,一部分是server,一部分是agent,先来看server的安装,通过执行以下指令来启动一个drone server 容器
docker run
--volume=/data:/data
--env=DRONE_AGENTS_ENABLED=true
--env=DRONE_GOGS_SERVER={Gogs地址}
--env=DRONE_RPC_SECRET={与agent通信的密钥}
--env=DRONE_SERVER_HOST={HOST}
--env=DRONE_SERVER_PROTO=http
--env=DRONE_USER_CREATE=username:{管理员账号},admin:true
--env=DRONE_LOGS_TRACE=true
--publish=30000:80
--restart=always
--detach=true
--name=drone drone/drone:1.4.0
几个关键配置:
DRONE_GOGS_SERVER:这里使用的是gogs作为git仓储,当然drone也支持github,gitlab等一些主流的源码管理平台,不同的平台需要设置不同的环境变量,具体参照官方文档参数名称
DRONE_RPC_SECRET:与agent之间通信的密钥,一定要配置
DRONE_SERVER_HOST:设置drone server使用的host名称,可以是ip地址加端口号
DRONE_SERVER_PROTO:使用的协议http/https
DRONE_USER_CREATE:设置初始的管理员,这个是超级管理员
DRONE_LOGS_TRACE:启动日志,默认是关闭的
publish:端口映射
上面指令执行完后,就启动了一个drone server 容器,通过配置的host可以访问系统
下面是安装agent,执行下面的指令来完成:
docker run -d
-v /var/run/docker.sock:/var/run/docker.sock
-e DRONE_RPC_PROTO=http
-e DRONE_RPC_HOST={server host}
-e DRONE_RPC_SECRET={密钥}
-e DRONE_RUNNER_CAPACITY=2
-e DRONE_RUNNER_NAME={Host}
--env=DRONE_LOGS_TRACE=true
-p 3000:3000
--restart=always
--name runner
drone/agent:1.4.0
DRONE_RPC_HOST:上面启动server时配置的host
DRONE_RPC_SECRET:跟server配置的要保持一致
DRONE_RUNNER_CAPACITY:可以同时执行的任务数
DRONE_RUNNER_NAME:一般设置为主机名
到此agent安装完。
打开浏览器,输入DRONE_SERVER_HOST配置的地址,就可以进入系统进行使用