Loading... > **上一篇文章,讲了如何安装drone的服务器与runner,这篇文章讲解python项目如何搭配drone来进行服务部署!** ## **简介** **本次python的思路,没有用单独的python环境容器来承载脚本的运行,这个python项目,主要是写了循环获取外网ip,并将外网ip推送到dnspod做域名的解析。本次的执行python的思路是,启用drone的ssh容器去在服务器执行部署!** ## **.drone.yml配置** ``` kind: pipeline type: docker name: dnspod-script platform: os: linux arch: arm64 node: name: pi-runner steps: - name: run-python image: appleboy/drone-ssh settings: host: 192.168.1.246 username: from_secret: pi_user password: from_secret: pi_password port: 22 command_timeout: 5m script: # - echo success - cd /home/pi/python/dnspod - git pull - bash run.sh ``` ### **配置步骤解析** 1. **kind 类型 这里就用pipeline管道类型即可** 2. **type 这里我们上文使用的是docker这里我们也要设置写docker** 3. **name 就是这个管道的名称** 4. **platform 我用的是树莓派所以架构要用arm64 正常linux服务器这项就不用写了** 5. **node对应上文讲的DRONE_RUNNER_LABELS参数用来指定哪个runner执行部署任务** 6. **step为执行的步骤,drone的步骤每一步都是使用临时docker的容器来实现的,每一步docker容器执行完会被自动销毁,所以本配置中的第一个用的是docker的ssh镜像,可以用来执行指定容器的命令。settings中配置了ssh要登录的host、username等,由于我们把username的信息放入drone来配置,这样保证了这些敏感字段的安全** 7. **script 在ssh登陆服务器执行的命令,先进入python目录,git pull代码执行run.sh脚本,脚本会在下文提供** ### **from_secret 配置图解** ![image-20220313224836993](https://image.juinjonn.com:8888/local/2023/01/13/63c10f72b44f8.png) **点击+ new secret按钮 会有如下弹窗** ![image-20220313230621071](https://image.juinjonn.com:8888/local/2023/01/13/63c10f73be1fa.png) ### **run.sh脚本解析** ``` #!/bin/bash ps -ef | grep 'python3 main.py' | grep -v grep | awk '{print $2}' | xargs kill -9 nohup python3 main.py >/dev/null 2>& 1 & echo success ``` 1. **首先先查到后台之前python运行的进程,并kill掉** 2. **后台运行python脚本,这里一定要后台运行 并将错误日志和运行日志进行指定,否则drone部署的时候会判断脚本一直运行,直到部署超时** ## **运行build** **我把gitea中 webhook的钩子关了,不然每次push代码或者pull request就会执行部署,想的是每次自己手动部署就好了,下图关闭就行了。** ![image-20220313231606501](https://image.juinjonn.com:8888/local/2023/01/13/63c10f82a3f41.png) **下面我们执行部署了,首先点击首页new build** ![image-20220313232655750](https://image.juinjonn.com:8888/local/2023/01/13/63c10f8166c31.png) ![image-20220313232729519](https://image.juinjonn.com:8888/local/2023/01/13/63c10f80a7d1f.png) ![image-20220313232901413](https://image.juinjonn.com:8888/local/2023/01/13/63c10f7f36e3b.png) **这就部署完成了** ## **总结** **整体Drone部署还是比较简单的,配置起来其实理解会了就还是比较简单的,由于Drone官网文档写的比较难懂,大多还是需要自己琢磨,自己实验,下篇文章,会和大家分享Springboot Java的drone配置文件怎么配置详解!** ## **转载说明** ****本篇文章禁止私自转载,如需转载请联系作者,否则必追究法律责任!**** 最后修改:2023 年 01 月 13 日 © 禁止转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏