官方文档:https://docs.drone.io/installation/providers/gitlab/
drone服务安装
一、创建一个OAuth应用程序(类似开放平台appid):User Settings->Applications
Application: Drone
-----------------------------------------------------------------------------
Application ID
27231874exxxxxxxxx0db10abafb
Secret
cff47b001c8xxxxxxxx19dc791432
Callback URL
http://xxxx.cn/login
Scopes选择:
api (Access the authenticated user's API)
read_user (Read the authenticated user's personal information)
二、创建共享密钥,用于drone服务和runner之间通信
openssl rand -hex 16
b60c907872ae270b66c0c81d1cf5ee0f
三、设置环境变量:vim /etc/profile.d/drone.sh
(必须)DRONE_GITLAB_CLIENT_ID # GitLab oauth客户端ID
(必须)DRONE_GITLAB_CLIENT_SECRET # GitLab oauth客户端密钥
(必须)DRONE_RPC_SECRET # 共享密钥,b60c907872ae270b66c0c81d1cf5ee0f[用于验证到服务器的rpc连接。必须为服务器和代理提供相同的秘密值]
(必须)DRONE_SERVER_HOST # drone地址[提供您的外部主机名或IP地址。如果使用IP地址,则可以包括端口]
(必须)DRONE_SERVER_PROTO # 提供了您的外部协议方案。此值应设置为http或https
(可选)DRONE_GITLAB_SERVER # 提供您的GitLab服务器网址,默认值为的gitlab.com服务器地址https://gitlab.com
(可选)DRONE_GIT_ALWAYS_AUTH # 可选的布尔值
环境变量立即生效:source /etc/profile.d/drone.sh
四、启动服务器
docker pull drone/drone:1.6.1docker run \
--volume=/var/lib/drone:/data \
--env=DRONE_AGENTS_ENABLED=true \
--env=DRONE_GITLAB_SERVER=https://gitlab.com \
--env=DRONE_GITLAB_CLIENT_ID=${DRONE_GITLAB_CLIENT_ID} \
--env=DRONE_GITLAB_CLIENT_SECRET=${DRONE_GITLAB_CLIENT_SECRET} \
--env=DRONE_RPC_SECRET=${DRONE_RPC_SECRET} \
--env=DRONE_SERVER_HOST=${DRONE_SERVER_HOST} \
--env=DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO} \
--env=DRONE_USER_CREATE=username:hanyren,machine:false,admin:true,token:b60c907872ae270b66c0c81d1cf5ee0f \
--publish=80:80 \
--publish=443:443 \
--restart=always \
--detach=true \
--name=drone \
drone/drone:1.6.1
--------------------------------------------------------------------------------------
runner 服务安装
一、设置环境变量:vim /etc/profile.d/drone.sh
DRONE_RPC_HOST # 提供您的Drone服务器的主机名(和可选端口)
DRONE_RPC_PROTO # 提供用于连接到Drone服务器的协议。该值必须是http或https
DRONE_RPC_SECRET # 提供用于与您的Drone服务器进行身份验证的共享密钥[必须与您的Drone服务器配置中定义的机密匹配]
二、安装Docker Runner
docker pull drone/agent:1.6.1
docker run -d \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DRONE_RPC_PROTO=${DRONE_RPC_PROTO} \
-e DRONE_RPC_HOST=${DRONE_RPC_HOST} \
-e DRONE_RPC_SECRET=${DRONE_RPC_SECRET} \
-e DRONE_RUNNER_CAPACITY=2 \
-e DRONE_RUNNER_NAME=${HOSTNAME} \
-p 3000:3000 \
--restart always \
--name runner \
drone/agent:1.6.1
--------------------------------------------------------------------------------------
一、授权:
用gitlab授权登录到drone页面上之后同步下项目就可以看到项目列表,打开开关ACTIVATE就可以关联到git仓库
输入:http://xxx.cn ,自动跳转到了gitlab授权页:https://gitlab.com/oauth/authorize?client_id=27231874exxxxxxxxx0db10abafb&redirect_uri=http%3A%2F%2Fxxx.cn%2Flogin&response_type=code&state=78629a0f5f3f164f
授权成功后自动跳转到页面:http://xxx.cn/ ,并自动同步gitlab上的仓库