基于gitlab的drone 安装配置
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的工作啦!!!!!