当前位置: 首页 > news >正文

DevOps简单教程应用

文章目录

    • 概念
    • 一、环境准备
    • 二、gitlab配置
    • 三、.gitlab-ci.yml文件配置

概念

Devops是一个概念,就是边开发边测试,能够大大提升开发效率,本文使用pycharm+gitlab实现一个简单的DevOps流程

一、环境准备

需要一个测试环境,模拟部署,测试环境需要安装相关依赖包
测试环境是centos7
本项目是后端fastapi+前端vue2
1、项目采用supervisor进行管理,安装supervisor

yum install supervisor
# 使用supervisorctl进行进程管理
# 1、修改默认配置
vim /etc/supervisord.conf
# 在最后一行加上,表示此目录下进行配置相关进程的conf文件
[include]
files = /etc/supervisor/conf.d/*.conf
# 2、增加配置文件,管理相关进程
vim /etc/supervisor/conf.d/
[program:openAdmin]
command=/usr/bin/python3 /var/www/open_admin/backend/main.py run
priority=4
directory=/var/www/opensoftrepos
autostart=true
autorestart=true
stdout_logfile=/var/log/opensoft/app.log
stderr_logfile=/var/log/opensoft/error.log

supervisorctl启动管理进程相关命令

# 启动进程openAdmin,也就是配置文件里面写的[program:openAdmin]
supervisorctl start openAdmin
# 重启进程
supervisorctl restart openAdmin
# 停止进程
supervisorctl stop openAdmin
# 更新配置文件
supervisorctl update

2、安装py虚拟环境

cd /var/www/ && pip3.10 install virtualenv
# 创建虚拟环境
virtualenv venv
# 激活虚拟环境
source venv/bin/activate
# 安装包
pip3 install -r requirements.txt

3、安装前端npm环境

# 安装npm
yum install nodejs-16.20.2

二、gitlab配置

需要配置gitlab,将服务器上的ssh密钥拷贝到gitlab项目配置中
1、服务器生成密钥

ssh-keygen -t rsa -b 4096 -C "gitlab-deploy"
# 切换到/root/.ssh/
cd /root/.ssh/
# 拷贝id_rsa文件内容
cat id_rsa

2、gitlab配置
在settings>CI/DI>Variables下
在这里插入图片描述
将拷贝的id_rsa内容复制到这里
在这里插入图片描述
复制id_rsa.pub内容,粘贴到user settings下的ssh keys中,设置项目允许ssh拉取
在这里插入图片描述

3、安装gitlab-runner
安装gitlab-runner,让其运行.gitlab-ci.yml,gitlab-runner可以安装到服务器(测试机上),也可以安装到gitlab服务器上,这里建议安装到服务器(测试机),这样方便,直接选择本地shell运行即可

# 开始安装
curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# 修改执行权限
chmod +x /usr/local/bin/gitlab-runner
# 添加用户,shell脚本是用gitlab-runner执行的
useradd --comment 'Gitlab Runner' --create-home gitlab-runner --shell /bin/bash
# 启动安装
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
# 启动runner服务
gitlab-runner start

4、注册gitlab-runner
先进行注册

# 注册服务
gitlab-runner register

出现如下内容
在这里插入图片描述
需要填url和token,去gitlab项目下,找到CI/DI>Runners
在这里插入图片描述
找到Specific Runners在这里插入图片描述
2对应的就是url,粘贴到刚才弹出的地方,回车,会继续让你输入token,复制3,继续回车,继续填description、tags、optional,当出现Enter an executor的时候,选择shell,因为这样直接在本机运行,gitlab-runner是在服务器本机上注册的,所以可以选择shell本机运行
在这里插入图片描述
出现以上内容代表注册成功,gitlab界面也会有如下显示
在这里插入图片描述

三、.gitlab-ci.yml文件配置

配置文件如下

stages:- build- deploy
# 防止浅克隆导致问题
variables:GIT_DEPTH: 0# 打包前端
build_vue:stage: buildtags:- shell  # 指定使用 shell runnerbefore_script:# 确保 Node.js 已安装在 runner 机器上# 因为是centos7,安装某些包的时候缺少依赖环境,这里单独导出设置下,以便于打包- export LD_LIBRARY_PATH=/usr/local/gcc-10.1.0/lib64:$LD_LIBRARY_PATH- node --version- npm --versionscript:- cd frontend- npm install- npm run buildartifacts:paths:- frontend/distexpire_in: 1 hour# 部署到服务器
deploy_server:stage: deployonly:- maindependencies:- build_vuetags:- shell  # 指定使用 shell runnerscript:- echo "Deploying to production server..."# 直接使用本地文件复制,因为 runner 就在目标服务器上- cp -r frontend/dist/* /var/www/project/frontend/- cp -r backend/* /var/www/project/backend/# 直接执行 supervisorctl 命令- supervisorctl restart opensoftrepos

以上文件需要放到项目根目录下,这个时候随便修改文件,进行提交,就会在gitlab界面上看到正在执行的任务,如下所示,能够看到已经执行成功了
在这里插入图片描述
注意:如果yml文件里有拷贝等操作,需要把gitlab-runner添加到和root一样的权限,在服务器(测试机器)上

sudo visudo
# 添加如下内容
gitlab-runner ALL=(ALL) NOPASSWD: ALL
http://www.dtcms.com/a/319930.html

相关文章:

  • ⭐CVPR2025 RoboBrain:机器人操作的统一大脑模型[特殊字符]
  • Redis(八):Redis高并发高可用(哨兵Sentinel)
  • 上海一家机器人IPO核心零部件依赖外购, 募投计划频繁修改引疑
  • QDataStream入门
  • Redis实战(8) -- 分布式锁Redission底层机制
  • 如何解决用阿里云效流水线持续集成部署Nuxt静态应用时流程卡住,进行不下去的问题
  • 基于 MATLAB 的 QPSK 调制、解调、通过高斯信道的误码率计算,并绘制误码率图和眼图、星座图
  • 火山引擎接入豆包AI(纯前端调用api的方式)
  • Java 大视界 -- Java 大数据在智能教育在线课程互动优化与学习体验提升中的应用(386)
  • E频段芯片解决方案
  • npm 与 npx 区别详解。以及mcp中npx加载原理。
  • 2025年生成式大模型部署与推理优化全景解析
  • 14天搞定Excel公式:告别加班,效率翻倍!
  • 【YOLOv8改进 - 上采样】EUCB:(Efficient Up-convolution Block,高效上卷积块)实现特征图尺度匹配和高效上采样
  • 网络编程基石:域名系统与默认端口号详解
  • 文章采集发布Destoon网站技巧
  • C语言函数与预编译:模块化编程的精髓
  • 【AI论文】细胞锻造(CellForge):虚拟细胞模型的智能体化设计
  • 上岸AAAI 2025:自适应框架+前沿算法,顶会热点方向
  • 【VLLM篇】:原理-实现
  • 【论文阅读】基于元模型的体系知识图谱构建
  • spring boot学习计划
  • 什么是AI Agents
  • 机器学习算法篇(四)决策树算法
  • XCZU19EG-2FFVB1517I FPGA Xilinx AMD ZynqUltraScale+ MPSoC
  • 如何验证Go代理是否设置成功?
  • 深入探索C++模板实现的单例模式:通用与线程安全的完美结合
  • SpringBoot的优缺点
  • MyBatis 操作数据库
  • Orange的运维学习日记--33.DHCP详解与服务部署