day79 jenkins的实战操作(cicd)

day79 jenkins的实战操作(cicd)

1.jenkins结合gitlab ,实现ci,cd流水线(python)

开发 》 gitlab 》 运维 》 目标的服务器

1. 准备一个开发机器,写一个my-app.py

2.推送到gitlab仓库,gitlab新建一个项目

4.运维下载gitlab代码,写好Jenkins去调用脚本

运维 : Jenkins显示小红灯,查看控制台的日志的输出解决bug
		显示小蓝灯,一切正常。

创建自由风格的job,能执行各种基本操作,执行shell的命令

创建远程项目,gitlab

如一个公司  
一个开发的部门
chaoge 管理人员  有一个gitlab的账户
wenjie  员工    有一个gitlab的账户

生成了一个空仓库必须生成一个README.md的帮助手册

才可以有后续的操作

开发写代码,推送到目标的仓库

wenjie 就得用分支去推送代码

gitlab 仓库,默认master分支保护,文杰属于开发的权限。

完全的空的仓库 master

用管理员生成一些初始的数据,master分支

思路,用管理员账户,推送数据,生成master分支

管理员用户推送

ssh 把本地的公钥推过去

创建一个文件夹,创建一个文件写一些数据,把数据推送上去
1. mkdir yzk_python
2 git init .
3 git add .
4 git commit -m "master 提交了一个hello.md"
5 git remote add origin 0.0.9:yzk_linux/yzk_python.git
6 git push -u  origin master


[root@jenkins yzk_pytho]# git push -u origin master
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 594 bytes | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To git@10.0.0.9:yzk_linux/yzk_python.git
   93bc44f..85716cf  master -> master
Branch master set up to track remote branch master from origin.

2.开发写代码,推送到目标的服务器上

webjie分支去推代码

gitlab仓库,默认master分支保护,wenjie属于开发的权限

wenjie账户,去推送代码,到项目中
# 先创建开发的分支,

# 克隆远程的仓库,成为本地的仓库,提交版本

git clone git@10.0.0.9:yzk_linux/yzk_python.git


[root@db-51 ~]# cd yzk_python/
[root@db-51 yzk_python]# ll
total 8
-rw-r--r-- 1 root root 43 May 12 06:17 readme.md
-rw-r--r-- 1 root root 28 May 12 06:17 README.md
[root@db-51 yzk_python]# cat readme.md 
今天是美好的一天,有点晚啦。



# 写代码然后发送
[root@db-51 yzk_python]# touch my_flask.py
[root@db-51 yzk_python]# vim my_flask.py 
[root@db-51 yzk_python]# git add .
[root@db-51 yzk_python]# git commit -m "写了一个my_flask.py代码"
[master f0c8a0d] 写了一个my_flask.py代码
 1 file changed, 11 insertions(+)
 create mode 100644 my_flask.py
[root@db-51 yzk_python]# 
[root@db-51 yzk_python]# 
[root@db-51 yzk_python]# git checkout -b wenjie 
Switched to a new branch 'wenjie'
[root@db-51 yzk_python]# git checkout wenjie 
Already on 'wenjie'
[root@db-51 yzk_python]# git status 
# On branch wenjie
nothing to commit, working directory clean
[root@db-51 yzk_python]# 

---------------------------------------------------------------------
[root@db-51 ~/linux0224_python]#cat my_flask.py 
# coding:utf-8

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h1> 测试jenkins 结合 gitlab 做python项目的更新,发版 -----v1 </h1>'

if __name__ == '__main__':
    app.run(host="0.0.0.0")
  -------------------------------------------------------
 
   
   
# 用wenjie分支推送代码到仓库
[root@db-51 yzk_python]# git remote -v 
origin	git@10.0.0.9:yzk_linux/yzk_python.git (fetch)
origin	git@10.0.0.9:yzk_linux/yzk_python.git (push)


[root@db-51 yzk_python]# git push -u origin wenjie 
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 552 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: 
remote: To create a merge request for wenjie, visit:
remote:   http://10.0.0.9/yzk_linux/yzk_python/merge_requests/new?merge_request%5Bsource_branch%5D=wenjie
remote: 
To git@10.0.0.9:yzk_linux/yzk_python.git
 * [new branch]      wenjie -> wenjie
Branch wenjie set up to track remote branch wenjie from origin.

注意细节,用wenjie账户去访问,merage请求

1. 确定用管理员合并代码
2. 在次确认master分支

开发就下场休息了。开始运维干活了

-------------太晚了,明天在干-------------------休息

小结

  • 开发的代码的上传
  • jenkins实现gitlab代码的下载
  • 发布到目标机器上,运行(web7机器)测试运行

运维上场,设置jenkins,去下载gitlab的代码

1, 创建自由风格的job
yzk_linux_python

2. 配置job

频繁的点击立即的构建
再workspace生成太多的job

先看gitlab 账号密码的登录

这里添加gitlab的用户和密码


应该用运维的账户,去获取master代码

这里就看到了数据

再用gitlab用ssh-key的方式,代码的下载

jenkins机器的公钥
配置公钥到 gitlab的平台

1.添加jenkins的公钥到gitlab的平台上

2. 去jenkins的job中,添加密钥的认证的方式
【ssh username with private key 】

ssh的用户名,私钥


小结

  • 开发的v1代码的上传了
  • jenkins实现gitlab代码的下载
  • 发布到目标机器上 运行(web-7)测试的运行
jinkens 

1. git拉取代码

2. 自由的风格,执行shell的功能

优化脚本,实现更新功能

目前先完成简单的部署操作即可,先一切从简,完成发布即可

1. jenkins上的构建shell配置

# 1.进入job工作区,代码发过去


# 远程创建一个源码目录
ssh root@10.0.0.7 "mkdir -p /opt/linux0224_python"
# 进入job的工作区,把当前所有源码,发到目标机器的目录下
cd ${WORKSPACE} && scp ./* root@10.0.0.7:/opt/linux0224_python/
# 将部署脚本,发到远程机器上
scp /my_shell/run_python_web7.sh root@10.0.0.7:/opt/
# 远程执行命令,再web7机器,部署flask项目
ssh root@10.0.0.7 "bash /opt/run_python_web7.sh"



# 2.部署操作写成脚本,发给目标机器

#!/bin/bash
cd /opt/linux0224_python/
yum install python3-devel python3 python3-pip -y > /dev/null
pip3 install flask

# 重启逻辑
kill -9 $(ps -ef|grep my_flask.py|grep -v grep | awk '{print $2}')

nohup python3 my_flask.py >nohup.log 2>&1  &
# 查看进程id
echo "当前python进程是:$(ps -ef|grep my_flask.py|grep -v grep | awk '{print $2}')"



jenkins实现更新代码的流程结果

1. 模拟开发,改代码


2. 点击立即构建

2.1 看看反复更新,好使吗



3.看结果

🌸🌸🌸🌸完结撒花

posted @ 2025-05-12 14:14  国家一级冲浪yzk  阅读(26)  评论(0)    收藏  举报