Gogs+Drone實(shí)現(xiàn)自動(dòng)化部署

最近產(chǎn)品希望把PRD部署到服務(wù)器上,方便大家查看,為了讓產(chǎn)品可以方便的把PRD部署到服務(wù)器上,于是想到了自動(dòng)部署,但是公司用的Jenkins,感覺(jué)過(guò)于雍總,而且對(duì)于環(huán)境還有些要求,所以我就想到了自建持續(xù)集成服務(wù),這時(shí)候,Gogs+Drone的組合就很方便了。

相關(guān)工具

  1. Docker
  2. Gogs: A painless self-hosted Git service
  3. Drone CI – Automate Software Testing and Delivery

Gogs安裝

參考使用Docker + Gogs搭建git私服

Drone安裝

Drone也使用docker安裝
先啟動(dòng)drone server

docker run \
  -v /var/lib/drone:/data \
  -v /etc/localtime:/etc/localtime \
  --env=DRONE_DEBUG=true \
  --env=DRONE_LOGS_TRACE=true \
  --env=DRONE_LOGS_DEBUG=true \
  --env=DRONE_LOGS_PRETTY=true \
  --env=DRONE_AGENTS_ENABLED=true \
  --env=DRONE_GOGS_SERVER=http://gogs.fan-x.fun \
  --env=DRONE_SERVER_HOST=1.2.3.4:10080 \
  --env=DRONE_RPC_SECRET=123456 \
  --env=DRONE_SERVER_PROTO=http \
  --publish=10080:80 \
  --restart=always \
  --detach=true \
  --name=drone \
  drone/drone:2

DRONE_GOGS_SERVER:gogs的訪問(wèn)地址,這個(gè)根據(jù)Gogs的部署來(lái)設(shè)置
DRONE_SERVER_HOST:Drone的訪問(wèn)地址和端口,跟瀏覽器訪問(wèn)地址保持一致,port跟下面--publish設(shè)置的保持一致
DRONE_RPC_SECRET:Drone的連接密碼,后面runner訪問(wèn)server時(shí)會(huì)用到
DRONE_SERVER_PROTO:請(qǐng)求協(xié)議,http或者h(yuǎn)ttps

再啟動(dòng)runner,我這兒是用的ssh執(zhí)行器,具體用啥執(zhí)行器,根據(jù)業(yè)務(wù)自定判定

docker run --detach=true \
  --env=DRONE_RPC_PROTO=http \
  --env=DRONE_RPC_HOST=1.2.3.4:10080 \
  --env=DRONE_RPC_SECRET=123456 \
  --restart always \
  --name drone-ssh \
  drone/drone-runner-ssh

runner的設(shè)置參考server即可

至此,環(huán)境搭建就好了,接下來(lái)就是配置自動(dòng)部署了

使用

因?yàn)槲业姆?wù)器上已經(jīng)安裝了nginx,我這邊需要做的事情就是每次產(chǎn)品提交prd后,將對(duì)應(yīng)的文件復(fù)制到nginx的目錄下,所以我這兒是通過(guò)shell命令來(lái)操作的
drone通過(guò)在倉(cāng)庫(kù)中添加.drone.yml來(lái)實(shí)現(xiàn)自定義流程,具體配置可以參考drone官方文檔
附上我的文件

---
kind: pipeline
type: ssh
name: default

server:
  host: 127.0.0.1
  user: root
  ssh_key:
    from_secret: mac

steps:
- name: greeting
  commands:
  - rm -rf /etc/nginx/www/prd/*
  - cp ./* /etc/nginx/www/prd/ -R

ssh_key里有個(gè)from_secret,這個(gè)是在drone管理界面中管理的

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容