Python学习笔记_Devops_Day05

简介: Python学习笔记_Devops_Day05

8.png

Jenkins:实现CI


安装

[root@node7 ~]# rpm -ihv jenkins-2.177-1.1.noarch.rpm 
[root@node7 ~]# systemctl start jenkins
[root@node7 ~]# systemctl enable jenkins
# 注意,jenkins是java编写的,运行需要java环境

配置


 需要联网。否则不能安装插件。联网,也可以不安装插件。


访问http://x.x.x.x:8080。在安装插件页面选择自定义,不安装任何插件(因为默认安装插件时访问的是国外站点,速度慢)。创建管理员帐号时,不创建,直接使用admin登陆。


安装插件


1. 更新插件源


首页 -> Manage Jenkins -> Manage Plugins -> Advanced -> Update site : https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json -> submit


  1. Available选项卡 -> Localization: Chinese (Simplified) / Git Parameter -> 点击Install Without Restart -> 勾选 Restart Jenkins when installation is complete and no jobs are running


建立工程


首页 -> 新建Item -> 名称:mytest / 风格:FreeStyle -> This project is parameterized: git parameter / name: mytag / parameter type: Branch or Tag / Default Value: origin/master -> 源码管理: git / http://192.168.4.6/devops/myweb.git / Branches to build: $mytag -> 保存 ->Build with Parameters -> 选择一个tag后点开始构建。


构建出来的内容:/var/lib/jenkins/workspace/下


完整过程:


  1. 程序员编写代码
[root@node5 ~]# git init myblog
[root@node5 ~]# cd myblog/
[root@node5 myblog]# echo '<h1>My Blog</h1>' > index.html
[root@node5 myblog]# git add .
[root@node5 myblog]# git commit -m "blog 1.0"
[root@node5 myblog]# git tag 1.0
[root@node5 myblog]# echo 'blog 2.0' >> index.html 
[root@node5 myblog]# git add .
[root@node5 myblog]# git commit -m "blog 2.0"
[root@node5 myblog]# git tag 2.0
  1. 在gitlab上创建项目,名为myblog,允许用户可以上传


  1. 上传代码到gitlab
[root@node5 myblog]# git remote rename origin old-origin
[root@node5 myblog]# git remote add origin git@192.168.4.6:devops/myblog.git
[root@node5 myblog]# git push -u origin --all
[root@node5 myblog]# git push -u origin --tags
  1. jenkins下载代码


  1. 修改下载代码到子目录。配置->Additional Behaviours: 新增 checkout to a sub-directory: myblog-${blogver} -> 保存 ->Build with Parameters


  1. 修改jenkins工程,实现以下目标


将下地的版本打包,放到apache目录下


 shell /var/www/html/deploy/live_ver: 最新版本 /var/www/html/deploy/last_ver: 前一版本 /var/www/html/deploy/pkgs/:保存打包的软件和相应的md5值

[root@node7 ~]# yum install -y httpd
[root@node7 ~]# systemctl start httpd
[root@node7 ~]# mkdir -p /var/www/html/deploy/pkgs
[root@node7 ~]# chown -R jenkins.jenkins /var/www/html/deploy/

配置 -> 构建 -> 增加构建步骤 -> execute shell:

pkg_dir=/var/www/html/deploy/pkgs
cp -r myblog-${blogver} $pkg_dir  
cd $pkg_dir
rm -rf myblog-${blogver}/.git
tar czf myblog-${blogver}.tar.gz myblog-${blogver}
rm -rf myblog-${blogver}
md5sum myblog-${blogver}.tar.gz |  awk '{print $1}' > myblog-${blogver}.tar.gz.md5
cd ..
[ -f live_ver ] && cat live_ver > last_ver
echo ${blogver} > live_ver

自动部署


  • 目录规划
/var/www/download:保存下载的压缩包
/var/www/deploy: 保存解压后的目录和live_ver
/var/www/html/nsd1903:指向当前生效的网站的快捷方式
  • 编写程序,实现自动部署


  • 检查是否有新版本


  • 有新版本,则下载


  • 校验下载的软件包是否损坏


  • 如果没有损坏则部署


  • 本地生成当前应用的版本
相关文章
|
2月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
426 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
165 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
175 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
73 1
|
2月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
113 1
|
2月前
|
索引 Python
Python学习笔记编程小哥令狐~持续更新、、、(上)
Python学习笔记编程小哥令狐~持续更新、、、(上)
53 2
|
2月前
|
存储 Python
Python学习笔记编程小哥令狐~持续更新、、、 (下)
Python学习笔记编程小哥令狐~持续更新、、、 (下)
35 1
|
2月前
|
存储 Python
【免费分享编程笔记】Python学习笔记(二)
【免费分享编程笔记】Python学习笔记(二)
48 0
【免费分享编程笔记】Python学习笔记(二)
|
2月前
|
索引 Python
Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩
这篇文章是关于如何使用Python读取Excel文件中的学生成绩数据,并进行计算平均成绩、成绩等级划分、统计分数大于70的次数以及找出最优成绩等操作的教程。
96 0
|
2月前
|
索引 Python
【免费分享编程笔记】Python学习笔记(一)
【免费分享编程笔记】Python学习笔记(一)
42 0