gitlab配合drone实现自动化部署

官方文档: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上的仓库

你可能感兴趣的:(运维)