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配置的地址,就可以進入系統進行使用