Drone CI/CD系列(二)——python语言之配置.drone.yml文件
上一篇文章,讲了如何安装drone的服务器与runner,这篇文章讲解python项目如何搭配drone来进行服务部署!
简介
本次python的思路,没有用单独的python环境容器来承载脚本的运行,这个python项目,主要是写了循环获取外网ip,并将外网ip推送到dnspod做域名的解析。本次的执行python的思路是,启用drone的ssh容器去在服务器执行部署!
.drone.yml配置
kind: pipeline
type: docker
name: dnspod-script
platform:os: linuxarch: arm64
node:name: pi-runner
steps:
- name: run-pythonimage: appleboy/drone-sshsettings:host: 192.168.1.246username:from_secret: pi_userpassword:from_secret: pi_passwordport: 22command_timeout: 5mscript:
# - echo success- cd /home/pi/python/dnspod- git pull- bash run.sh
配置步骤解析
- kind 类型 这里就用pipeline管道类型即可
- type 这里我们上文使用的是docker这里我们也要设置写docker
- name 就是这个管道的名称
- platform 我用的是树莓派所以架构要用arm64 正常linux服务器这项就不用写了
- node对应上文讲的DRONE_RUNNER_LABELS参数用来指定哪个runner执行部署任务
- step为执行的步骤,drone的步骤每一步都是使用临时docker的容器来实现的,每一步docker容器执行完会被自动销毁,所以本配置中的第一个用的是docker的ssh镜像,可以用来执行指定容器的命令。settings中配置了ssh要登录的host、username等,由于我们把username的信息放入drone来配置,这样保证了这些敏感字段的安全
- script 在ssh登陆服务器执行的命令,先进入python目录,git pull代码执行run.sh脚本,脚本会在下文提供
from_secret 配置图解
点击+ new secret按钮 会有如下弹窗
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
- 首先先查到后台之前python运行的进程,并kill掉
- 后台运行python脚本,这里一定要后台运行 并将错误日志和运行日志进行指定,否则drone部署的时候会判断脚本一直运行,直到部署超时
运行build
我把gitea中 webhook的钩子关了,不然每次push代码或者pull request就会执行部署,想的是每次自己手动部署就好了,下图关闭就行了。
下面我们执行部署了,首先点击首页new build
这就部署完成了
总结
整体Drone部署还是比较简单的,配置起来其实理解会了就还是比较简单的,由于Drone官网文档写的比较难懂,大多还是需要自己琢磨,自己实验,下篇文章,会和大家分享Springboot Java的drone配置文件怎么配置详解!
转载说明
本篇文章禁止私自转载,如需转载请联系作者,否则必追究法律责任!
Drone CI/CD系列(二)——python语言之配置.drone.yml文件相关推荐
- Drone CI/CD系列(一)——docker安装与配置
随着,云服务的崛起,越来越多的个人开发者对自己的研发支撑体系有高的标准,伴随着Jenkins的老气的模式,越来越多新生代高颜值高轻量的CICD平台出现! 简介 Drone作为新一代的CICD的平台,不 ...
- python123查找指定字符输入m_大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编....
Presentation on theme: "大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编."- Presentat ...
- GitLab CI/CD系列教程(一)
来自:GitLab CI/CD系列教程(一):Docker安装GitLab_哔哩哔哩_bilibili 1. 创建虚拟机并连接Xterm 创建一个4G内存的虚拟机,否则很容易启动不了,报502 虚拟机 ...
- Python语言学习:创建/删除文件/文件夹、获取当前文件/文件夹路径(系统环境路径/目录)、获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略
Python语言学习:创建/删除文件/文件夹.获取当前文件/文件夹路径(系统环境路径/目录).获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略 目录 系统环境路径的设置 1.sys ...
- python语言基础实验_实验二Python语言基础函数包练习.doc
实验二Python语言基础函数包练习 实验 Python语言基础函数包练习:1208 学号: 实验目的 1.Python语言包,如math.NumPySciPy和Matplotlib等函数包的使用实验 ...
- 北理工嵩天Python语言程序设计笔记(8 文件和数据格式化)
前言 本文是对<北理工 嵩天/黄天宇/礼欣 Python语言程序设计>的学习笔记,供自己查阅使用. 文章目录 北理工嵩天Python语言程序设计笔记(目录) 北理工嵩天Python语言程序 ...
- 【.NET】实现CI/CD(二)运行镜像,自动化部署
(一重山,两重山.) 书接上文,在上回中我们说到了<[Azure + Core]实现CI/CD(一)构建镜像并推送仓库 今天我们继续往下说,说下CD(持续部署)的流程,也是很简单.这里先贴下上篇 ...
- 【 云原生 | kubernetes 】- tekton构建CI/CD流水线(二)
上一节我们是通过创建Pipelinerun来触发流水线来进行构建,实际生产中完全自动化的实现需要借助tekton中的triggers.本文是上篇的拓展请先了解这篇文章 Tekton Trigger ...
- python调用什么函数实现对文件内容的读取_如何使用python语言中的方法对文件进行读写操作...
在我们使用python语言中的文件时,可以使用open()方法打开文件,close()方法关闭文件,read()方法读取文件内容,write()方法写入内容到文件中.下面利用几个实例说明文件读写方法, ...
最新文章
- 第二十二课.DeepGraphLibrary(三)
- Unity 中的协同程序
- 计算机课真多,为什么有这么多的学习资源和在线课程,依然无法提升自己的能力...
- xa协议 mysql_分布式事务XA实现数据一致性的协议与原理
- Visual Tracking:运行ECO模型的GPU版本
- Android Java 自定义异常
- Mono 2.0正式发布了
- 【UIKit】UITableView 3
- UML表示实体类型和属性
- OpenStack运维(二):OpenStack计算节点的故障和维护
- MongoDB学习探讨
- Python的序列Ⅰ
- 主机window7 64位 虚拟机下安装Ubuntu系统如何实现网络共享ixi
- md5 java实现与在线工具结果不符_「md5在线解密」使用MD5在线加解密工具,对汉字进行加密,得到不同的结果 - seo实验室...
- 对称加密+非对称加密,实现数据安全传输
- 基于Qt ffmpeg opengl开发跨平台安卓实时投屏软件
- C# 获取每年春节对应的公历日期
- 空气质量指数(AQI)分析与预测
- coreapi自动生成API接口文档
- Excel与Google Sheets中实现线性规划求解