drone 他和大部分的ci工具一樣分為server端和agent端或者說runner端,所以搭建它也分為搭建server端和agent端,但是有一個不好的地方就是,你在server端是看不到我這個server連接了幾個agent,但是這個不是什么問題,因為drone會給你找到最合適的agent去編譯,你只需要在.drone.yml文件中定義就好了.
Drone是Container-Native的平台,那自然Drone也是使用容器方式來安裝的,所以首先要准備容器的運行環境,我們這里使用docker.
drone目前支持以下git平台
• github
• gitlab
• gogs
• gitea
• bitbucket cloud
• bitbucket server
首先我們需要在gitlab上新建Oauth
步驟如下
1.進入github后點擊頭像

2.點擊Settings

3.點擊Developer settings

4.點擊Oauth Apps 后點擊new oauth app

5.填寫相應信息

Application name 填寫你的需要使用Oauth的應用名稱 比如drone 就填寫drone
Homepage URL 填寫使用Oauth 的app的url 比如我本地虛擬機docker搭建的drone 就填寫 http://192.168.1.200
Description 隨意填寫你需要的描述信息
Callback URL 為github認證成功后跳轉的url 我們需要在我們drone的url后加上login后綴 如 http://192.168.1.200/login 此處一定要加不然會一直跳轉認證界面
填寫完成后 完成創建即可
6.進入剛剛創建好的Oauth

生成一個客戶端密鑰 完成后如上圖所示即可
至此github上的操作完成了
7.創建drone
首先在drone的宿主機上運行
openssl rand -hex 16
創建一個共享密鑰,保證后續 ci runner 與我們drone 的通信正常。
接着我們使用docker 創建drone容器 以下是官方實例
docker run \
--volume=/var/lib/drone:/data \
--env=DRONE_GITHUB_CLIENT_ID={{DRONE_GITHUB_CLIENT_ID}} \ #使用第六步生成的client_id
--env=DRONE_GITHUB_CLIENT_SECRET={{DRONE_GITHUB_CLIENT_SECRET}} \ #使用第六步生成的客戶端密鑰
--env=DRONE_RPC_SECRET={{DRONE_RPC_SECRET}} \ #填寫剛剛生成的共享密鑰
--env=DRONE_SERVER_HOST={{DRONE_SERVER_HOST}} \ #填寫drone訪問ip如 安裝docker宿主機ip
--env=DRONE_SERVER_PROTO={{DRONE_SERVER_PROTO}} \ #填寫drone使用的協議如http
--publish=80:80 \
--publish=443:443 \
--restart=always \
--detach=true \
--name=drone \
drone/drone:1
完整實例如下
docker run \
--volume=/var/lib/drone:/data \
--env=DRONE_GITHUB_CLIENT_ID=670424345678932fb9bb \
--env=DRONE_GITHUB_CLIENT_SECRET=97f3204c2e48e3223456fa4567837eceb4e582f9 \
--env=DRONE_RPC_SECRET=5045f012345638ccce3c552345765d59 \
--env=DRONE_SERVER_HOST=192.168.1.200 \
--env=DRONE_SERVER_PROTO=http \
--publish=80:80 \
--publish=443:443 \
--restart=always \
--detach=true \
--name=drone \
drone/drone:1
完成創建如下

8.訪問drone
我們在瀏覽器進行drone的訪問

接着我們點擊授權即可
接着會自動跳轉到我們的drone的控制界面

同步后我們可以選擇自己的項目進行激活
然后我們就可以開始我們的drone的工作啦!!!!!
