Drone CI/CD 使用 exec 流水线进行持续交付,exec一直卡pending

Drone CI/CD 是一款轻量的devOps软件。

声明 pipeline type的类型,在 yml 文件中写入 step 就可以进行自定义打包了。pipeline的常用类型有 docker等,使用一个基础镜像,在drone的容器内部进行打包,如 node:10 -> commands : npm install/ npm build.

本文主要说明如何使用 pipelineexec 类型时,只需要执行自定义bash脚本,或几句简单的bash命令完成自己的CD。

  • 安装Drone,如果是多节点则需要安装 drone-agent。本文以多节点安装, Drone + Gitlab 实例
docker run --volume=/var/lib/drone:/data --env=DRONE_AGENTS_ENABLED=true  \
 --env=DRONE_GITLAB_SERVER=${gitlab.yoururl.com} \ 
 --env=DRONE_GITLAB_CLIENT_ID=${gitlab中的client id} \   
 --env=DRONE_GITLAB_CLIENT_SECRET=${gitlab中的client secret} \
 --env=DRONE_RPC_SECRET=${自定义 secret}  \
 --env=DRONE_SERVER_HOST=${drone.yoururl.com} \ 
 --env=DRONE_SERVER_PROTO=http \
 --env=DRONE_TLS_AUTOCERT=false --env=DRONE_LOGS_DEBUG=true \
 --env=DRONE_USER_CREATE=username:root,admin:true   \
 --publish=8881:80 --restart=always --detach=true --name=drone drone/drone:1

配置Agent

docker run -d   -v /var/run/docker.sock:/var/run/docker.sock \
  -e DRONE_RPC_PROTO=http \
  -e DRONE_RPC_HOST=${drone.yoururl.com} \
  -e DRONE_RPC_SECRET=${自定义 secret 与 上面对应}   \
  -e DRONE_RUNNER_CAPACITY=1   \
  -e DRONE_RUNNER_NAME=${agent 名称} \
  -p 3000:3000   \
  --restart always   --name runner   drone/agent:1

到此,Drone 与 Gitlab 的配置已经配置完成。

  • 现在主要说说如何使用 Drone 中 pipeline 类型为 exec

这是一个实例的 yml 文件。

kind: pipeline
type: exec
name: deployment

platform:
  os: linux
  arch: amd64

steps:
- name: backend image build
  commands:
    - echo start build images...
    - export MAJOR_VERSION=1.0.rtm.
    - export BUILD_NUMBER=$DRONE_BUILD_NUMBER
    - export WORKSPACE=`pwd`
    - bash ./build.sh
  when:
    branch:
      - master

如果我们仅仅只是配置了 drone + agent ,在 drone 执行这个yml文件的时候,一定会卡pending。

我们还需要在执行服务器上安装 drone-runner-exec

curl -L https://github.com/drone-runners/drone-runner-exec/releases/latest/download/drone_runner_exec_linux_amd64.tar.gz | tar zx
sudo install -t /usr/local/bin drone-runner-exec

touch /etc/drone-runner-exec/config
vim /etc/drone-runner-exec/config


将这些变量保存到config中:

DRONE_RPC_PROTO=http
DRONE_RPC_HOST=drone.yoururl.com
DRONE_RPC_SECRET=之前部署时的自定义secret

drone-runner-exec service install
drone-runner-exec service start
# 停止可以使用 
drone-runner-exec service stop

现在 Drone 就可以执行自定以的bash命令了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值