jenkins

文章来源  

一, 简介:

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

 

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。
本文以 CentOS7 环境为例,总结了 Jenkins 的安装与配置、邮件功能使用,
一个自动构建过程,包括自动编译、分发、部署和测试
一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库,例如SVN、GIT代码库
一个jenkins持续集成服务器就是一个配置简单和使用方便的持续集成服务器

 

二, 安装

由于jenkins是使用java代码开发的,所以我们需要安装java容器才能运行jenkins,又因为java的web服务器用的是tomcat,所以我们要安装JDK+Tomcat
yum -y install java-1.8.0-openjdk.x86_64   #安装1.8jdk

cd /opt  #进入opt目录

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.79/bin/apache-tomcat-7.0.79.tar.gz  #获取tomcat7的安装包

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

mkdir /usr/local/tomcat -p  #在环境变量文件夹下创建tomcat文件夹
mkdir -p /usr/local/tomcat
mv apache-tomcat-7.0.79/* /usr/local/tomcat/ #将解压出来的tomcat文件夹的所有内容移到/usr/local/tomcat目录下 cd /opt #跳转到opt目录 wget http://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.60-1.1.noarch.rpm #获取django安装包 rpm -ivh jenkins-2.60-1.1.noarch.rpm #安装Jenkins安装包 /etc/init.d/jenkins start #启动Jenkins /usr/local/tomcat/bin/startup.sh #启动tomcat

 

因为jenkins使用8080端口,所以请监控8080的端口是否起来,判断jenkins又没有启动成功.
[root@centos1 bin]# netstat -tnlp | grep 8080
Proto Recv-Q Send-Q Local Address       Foreign Address      State       PID/Program name       
tcp        0      0 :::8080             :::*                 LISTEN      1502/java       

或者直接打开网址: http://IP:8080

 

 

 

 

 

 

三, 安装插件

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

git plugin
python plugin
pipeline

 

 

 

 

 

 四, 创建项目

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


1, 创建任务 名字 master-build 自由代码风格 

 

 

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

 

 

3, 码云获取HTTP地址 https://git.oschina.net/byz11211993/ceshi.git 

 

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

 

 

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

 

 

 

 

 

 

5, 测试项目是否搭建成功  

 

 

 

 

 

  

第一步 创建项目
 
创建任务  名字 master-build   自由代码风格
 
1. 丢弃旧的构建 (保留7天,最大构建的最大数100)
2. 源码管理  选择git  如果我们需要从码云拉取代码那么我们需要把私钥放到jenkins 公钥放到码云上面去 这样我们就可以拉取我们的代码了

 

五, 创建一个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

cd xxx
python 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第二个地方 构建
cd xxx
BUILD_ID=DONTKILLME nohup python manage.py runserver 0.0.0.0:8000 &

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

 

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

 

 

修改完成后,push提交到git。 

5、Jenkins同步代码查看

等待Jenkins每分钟刷新 

 

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

 

 

 

 

五、免密码登录

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

 

posted @ 2019-05-06 11:04  漫路  阅读(664)  评论(0)    收藏  举报