1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

关于Jenkins的优点

1987web2023-10-06WEB开发97
一、Jenkins的优点1、传统网站部署流程

一、Jenkins的优点

1、传统网站部署流程

一般网站部署的流程 这边是完整流程而不是简化的流程 需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试 ,如果发现外网部署的代码有异常,需要及时回滚。

一般是运维来做 1、功能测试 2、上线的时间 3、 jenkins 4、运维 5、功能测试

2、Jenkins部署流程

我们可以通过jenkins工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins非常易于安装和配置,简单易用。 简单来说方便如下人员:

  1. 开发人员:写好代码,不需要自己进行源码编译、打包等工作,直接将代码分支存放在SVN、GIT仓库即可。 war 源码多 自动把代码放到服务器上面
  2. 运维人员:减轻人工干预的错误率,ansible 一键完成了 同时解放运维人员繁杂的上传代码、手动备份、更新
  3. 测试人员:可以通过jenkins进行简单的代码及网站测试

3、持续集成的意义 增加工作效率

  1. 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量
  2. 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能
  3. 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心

4、持续集成的组件

  1. 一个自动构建过程,包括自动编译、分发、部署和测试
  2. 一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库,例如SVN、GIT代码库
  3. 一个jenkins持续集成服务器就是一个配置简单和使用方便的持续集成服务器

二、 jenkins安装

安装使用的基本环境为centos8

1、准备工作

首先我们需要下载jenkinsjenkins下载地址:http://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.303-1.1.noarch.rpm由于jenkins是使用java代码开发的,所以我们需要安装java容器才能运行jenkins需要安装JDK+Tomcat

yum -y install java-1.8.0-openjdk.x86_64   安装1.8jdk

cd /opt  进入opt目录

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gz 获取tomcat8的安装包

tar xvf apache-tomcat-8.5.69.tar.gz   解压tomcat7的解压包

mkdir /usr/local/tomcat -p  在环境变量文件夹下创建tomcat文件夹

mv apache-tomcat-8.5.69/*  /usr/local/tomcat/  将解压出来的tomcat文件夹的所有内容移到/usr/local/tomcat目录下

cd /opt 跳转到opt目录

wget http://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.304-1.1.noarch.rpm  获取django安装包
rpm -ivh jenkins-2.304-1.1.noarch.rpm  安装Jenkins安装包

/etc/init.d/jenkins start  启动Jenkins

/usr/local/tomcat/bin/startup.sh    启动tomcat

2、linux升级python

升级python3.6--python3.9

yum -y install  zlib zlib-devel openssl openssl-devel  sqlite-devel   安装依赖

cd /opt   到opt文件夹

wget http://python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz   下载Python压缩包

tar -jxvf Python-3.9.2.tar.xz   解压压缩包

cd Python-3.9.2      进入Python解压包

./configure    --prefix=/usr/local/python3.9    编译  设置编译所到的python文件夹

make  

make install 

cd /usr/bin/  

mv python3  python3.6.bak   备份文件

ln -s /usr/local/python3.9/bin/python3 /usr/bin/python3 设置软连接到环境变量
输入python,如果出现以下界面,恭喜,安装成功

[root@centos1 ~] python3
Python 3.9.2 (default, Jul 27 2021, 09:20:17) 
[GCC 8.4.1 20200928 (Red Hat 8.4.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

install setuptools:如果要使用pip那么一定要安装setuptool不是没法安装pip

cd /opt

wget https://files.pythonhosted.org/packages/db/e2/c0ced9ccffb61432305665c22842ea120c0f649eec47ecf2a45c596707c4/setuptools-57.4.0.tar.gz    https://pypi.org/project/setuptools/files这个网站下找到下载setuptools压缩包

tar xvf  setuptools-57.4.0.tar.gz   解压缩压缩包

cd setuptools  跳转到setuptools目录

python setup.py install  用python命令执行安装文件

cd ..  回到opt目录

wget "https://files.pythonhosted.org/packages/f7/ce/e359cf283c0c0f2e0af7df8f16c8d79047aa1887a00a5b39b27d8afc49e2/pip-21.2.1.tar.gz" 下载pip压缩缩包

tar xvf pip-21.2.1.tar.gz  解压 压缩包

cd pip-21.2.1 

python setup.py install  用python命令执行安装文件

mv /usr/bin/pip3 /usr/bin/pip3.bak 备份文件

ln -s /usr/local/python3.9/bin/pip3 /usr/bin/pip3 设置软连接到环境变量

pip3 install django  通过pip命令安装django

因为jenkins使用8080端口,所以请监控8080的端口是否起来,判断jenkins又没有启动成功.

[root@centos1 bin] netstat -tnlp
Proto Recv-Q Send-Q Local Address       Foreign Address      State       PID/Program name       
tcp        0      0 :::8080             :::*                 LISTEN      1502/java
打开网站http://IP:8080

三、部署项目

1 插件管理

如果插件下载失败 更换源http://mirror.xmission.com/jenkins/updates/current/update-center.json因为我们只需要构建python项目 所以我们这边只需要3个插件

  1. git plugin
  2. python plugin
  3. pipeline

2 创建一个测试job webhook钩子

只要收到一个push请求 就会发送一个post的请求给jenkins**

(1)第一步 创建项目 创建任务 名字 master-build 自由代码风格

(2) 丢弃旧的构建 (保留7天,最大构建的最大数100)

(3)码云获取HTTP地址https://gitee.com/byz11211993/jenkins-test-engineering.git

(4)Jenkins中配置码云中的地址,并添加秘钥

秘钥生成方法

ssh-keygen -t rsa -C "jimzhou@qq.com"
生成公钥和私钥
cat ~/.ssh/id_rsa.pub    发送给码云
cat ~/.ssh/id_rsa        写入到jenkins

第二种方法直接使用账户密码

(5)测试项目是否搭建成功

四、创建Django项目并测试同步

1、创建一个最简单的Django工程

在创建完成后将工程push到git码云

用git将你的新建项目push到码云,并且在linux下载

python manage.py runserver 0.0.0.0:8000

在浏览器输入网址查看是否成功显示
http://虚拟机ip:8000

2、继续配置jenkins任务

* * * * *  
   在master-build中创建触发器,设定1分钟执行一次
   poll SCM(日常表 可以根据时间来判断)
   H/2 * * * *    (2分钟检查一下版本库  如果有更新就不触发  如果没有更新就不触发)
   注:Schedule的配置规则是有5个空格隔开的字符组成,从左到右分别代表:分 时 天 月 年。*代表所有,0 20 * * * 表示在任何年任何月任何天20点0分进行构建
构建 execute shell
python3 manage.py test 进入xxx目录并执行测试脚本

构建后操作


选择 email notifications
输入你的邮箱  选中每次不稳定的构建都发送邮件
回到工作区,选择立即构建
 在Console Output 控制台输出
 如果出现以下内容,说明成功了

3、配置触发器同步更新服务器代码

增加一个任务 master deploy

其他都不需要改  只需要改2个地方

3.1 第一个地方

构建触发器

Build after other projects are built (勾选这一项)
  projects to watch  (master_build)  当前一个动作构建成功后我才触发

3.2第二个地方

构建

BUILD_ID=DONTKILLME nohup python3 manage.py runserver 0.0.0.0:8000 &

BUILD_ID=DONTKILLME : 在jenkins里面在后台运行的程序都会被jenkins自动杀死  所以需要加上BUILDID这个参数 加了这个参数你的程序就不会被杀死

这里注意任务运行会把最后的&给忽略了所以这里最好写脚本然后在这里写运行脚本的命令

4、修改本地工程index.html代码

修改完成后,push提交到码云。

5、Jenkins同步代码查看

等待Jenkins每分钟刷新

当看到构建队列中存在构建时,等待构建完成刷新网页,查看我们的虚拟机上项目代码是否更新完成。

刷新后发现代码已更新,表示我们的Jenkins自动部署已完成。

五、免密码登录

$ scp ~/.ssh/id_rsa.pub root@:pub_key //将文件拷贝至远程服务器
$ cat ~/pub_key >>~/.ssh/authorized_keys //将内容追加到authorized_keys文件中, 不过要登录远程服务器来执行这条命令

学贵在疑,小疑则小进,大疑则大进。

.- - - .. - . - - - - - - - .. - …. ….. . - - - - - …. .. - - - ….. - …. .. - - - … - -