Jenkins学习

 

 

 

 

                                                                                                                  jkenins           

能看我写这篇文章的 我相信你百分之80 90是做运维的 那么下面我就来说说为什么要学习jkenins。

传统的网站部署,大家在运维过程中,网站部署是运维的工作之一,网站部署的流程大致分为:

需求分析—原型设计—开发代码—提交测试—内网部署—确认上线—备份数据—外网更新-最终测试,如果发现外网部署的代码有异常,需要及时回滚。

(如下图所示)

  

列举一个例子,你想更改一个网站的某一个图片怎么操作呢;

传统网站更新方法:LAMP网站

 1)找到网站域名对应的IP服务器;

     Ping 域名 得到IP服务器:

2)通过CRT、xshell登录IP服务器,用户名,密码;

       使用netstat -tnpl |grep 80 找到80对应的服务器名称 进程PID;

       ps -ef |grep httpd

   进程ID号是否和服务名字一样 判断是APACHE

  在进入Apache配置文件搜索发布目录(DocumentRoot)

  一般默认是 /var/www/html

 在网站中右键搜索图片位置

 然后在发布目录下面搜索图片位置 替换图片之前 做备份 然后CP命令,静态文件不用重启Apache服务器。

 图片上传服务器使用rz命令或者第三方工具都可以 WCP等等。  rz命令没有的 => yum install lrzsz -y 安装一下 

 

下面给大家分享一件事情 之前我在工作中,开发那边一天总发邮件让我更新内容 或者打补丁 追加版本 手动弄更新 很烦很累,每天都在搬砖,后来我就想用不用使用自动化工具那!

1) 通过shell脚本自动更新;

2) 通过批量工具 saltstack、ansible、for、Rsync、Sersync;

3) jkenins 持续集成,完成自动化部署;

 jkenins 是一个可扩展持续集成引擎、框架。

使用jkenins带来的好处:

1)  开发人员:写好代码,不需要自己进行源码编译、打包等工作,直接将代码分支存放在SVN、GIT仓库即可。

2)  运维人员:减轻人工干预的错误率,同时解放运维人员繁杂的上传代码、手动备份、更新。

3)  测试人员:可以通过jenkins进行简单的代码及网站测试。

持续集成组件:

1)     一个自动构建过程,包括自动编译、分发、部署和测试;

2)     一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库,例如SVN、GIT代码库;

3)     一个jenkins持续集成服务器。如下135.57.11.203服务器就是一个配置简单和使用方便的持续集成服务器。

 

下面进入正题 jkenins安装部署:

 

地址http://mirrors.jenkins-ci.org/下载适合的Jenkins版本。

Linux稳定版的Jenkins地址为:http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/war-stable/1.651.2/jenkins.war

由于Jenkins属于一个JAVA 代码,需要java容器才能运行jenkins,所以需要安装JDK+Tomcat,方法如下

 

1)  JAVA JDK安装

#下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-linux-x64.tar.gz

tar -xzf  jdk-7u25-linux-x64.tar.gz  ;mkdir -p /usr/java/ ;mv jdk1.7.0_25/ /usr/java/ 下。

#然后配置环境变量,这样可以任何地方引用jdk,如下配置:

#vi /etc/profile 最后面加入以下语句:

export JAVA_HOME=/usr/java/jdk1.7.0_25

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

#source /etc/profile   #使环境变量马上生效

#java  --version    #查看java版本,看到jdk1.7.0_25版本即代表java jdk安装成功。

 

 

1)  Tomcat安装配置

#官方网站下载tomcat 6.0.30或者其他版本:

wget 

http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-6/v6.0.45/bin/apache-tomcat-6.0.45.tar.gz

tar xzf  apache-tomcat-6.0.45.tar.gz

#直接解压就可以使用,解压完成执行:

mv apache-tomcat-6.0.45  /usr/local/tomcat

把得到的war包直接扔到tomcat下,启动tomcat,Jenkins就安装完毕!

rm  -rf  /usr/local/tomcat/webapps/* ;

mkdir  -p /usr/local/tomcat/webapps/ROOT/;

mv jenkins.war /usr/local/tomcat/webapps/ROOT/;

 

1. Jenkins项目实战

1、打开http://123.57.11.203:8080 /,第一次进入里面没有数据,我们需要创建job,我们这有1个项目,需要创建1个job。

2、点击左上角的new job,在new job页面需要选择job的类型,Jenkins支持几种类型,我们选择“构建一个maven2/3项目”

3、点击OK按钮后,进会进入详细配置界面,详细配置界面的配置项很多,不过不用怕,大部分使用默认配置就可以了,下面就说说我们需要修改的几个地方:

3.1)Source Code Management

因为我们使用SVN管理源码,所以这里选择Subversion,并在Repository URL中输入我们的SVN地址:

svn://123.57.11.203:8801/edu/

输入SVN库的URL地址后,Jenkins会自动验证地址,并给予提示

3.2)配置自动构建的计划,假设我们想让项目中每天12点和晚上8点自动构建一次,只需要在Build Triggers中选择Build periodically,并在Schedule中输入 0 12,20 * * *。

我配置的是每晚8点自动构建

注:Schedule的配置规则是有5个空格隔开的字符组成,从左到右分别代表:分 时 天 月 年。*代表所有,0 12,20 * * * 表示“在任何年任何月任何天的12和20点0分”进行构建。

3.3)配置到这里,可能有人发现在Build配置节点,有红色错误信息,提示

Jenkins needs to know where your Maven2 is installed. 
Please do so from the system configuration.

如图所示:

这是因为Jenkins找不到maven的原因,点击"system configuration",是system configuration的maven配置中添加maven目录就OK,如下图:

我设置了JRE 7和MAVEN的安装目录。

点击左下角的SAVE按钮,保存设置。

3.4)保存好所有配置后,我们第1个job就算是完成了。

1.      程序构建

在经过上面的配置后,回到Jenkins首页,在首页可以看到刚才添加的1个job,如下图:

 

点击某1个job后后面的"Schedule a build"图片手动构建,点击完后,会在左边的Build Queue或者Build Executor Status 显示正在构建的任务,在自动构建完后,刷新页面,就可以看到构建结果了,如何某个项目构建失败,点击项目后面的构建数字(从1开始递增)进入项目的"Console Output "可以查看项目构建失败的原因。当然我们也可以配置把构建失败的结果发到邮箱。

 

 

四、构建完成

 

1.      Jenkins脚本自动化

 

点击工程名称-配置-构建后操作-设置Jenkins编译打包完后,war包存放的位置,如下图:

 

 

 

1)  然后输入如下配置:**/target/*.war

 

 

 

 

1)  如上-构建触发器-一个构建步骤,选择Add-post-build step-Excute shell

 

 

 

1)  然后把脚本内容写入即可

 

 

 

代码如下:

rm -rf  /root/.jenkins/workspace/jfedu/target/edu.war

cp /root/.jenkins/workspace/jfedu/target/edu.war  /root/.jenkins/jobs/jfedu/builds/lastSuccessfulBuild/archive/target/

ssh root@121.42.183.93 'bash -x -s' < /data/sh/auto_deploy.sh

脚本内容如下:

#!/bin/bash

#Auto deploy Tomcat for jenkins perf

#by author wugk 2016-07-06

export JAVA_HOME=/usr/java/jdk1.6.0_25

TOMCAT_PID=`/usr/sbin/lsof -n -P -t -i :10013`

TOMCAT_DIR="/usr/local/tomcat/"

FILES="jfedu.war"

DES_DIR="/export/data/tomcatRoot/ptest.jd.com/"

DES_URL="http://123.57.11.203:8080/job/Ptest_Online/lastSuccessfulBuild/target"

BAK_DIR="/export/backup/`date +%Y%m%d-%H%M`"

 

[ -n "$TOMCAT_PID" ] && kill -9 $TOMCAT_PID

cd $DES_DIR

rm -rf $FILES

mkdir -p $BAK_DIR;\cp -a $DES_DIR/* $BAK_DIR/

rm -rf $DES_DIR/*

wget $DES_URL/$FILES

/usr/java/jdk1.6.0_25/bin/jar  -xvf  $FILES

####################

cd $TOMCAT_DIR;rm -rf work

/bin/sh $TOMCAT_DIR/bin/start.sh

sleep 10

tail -n 50 $TOMCAT_DIR/logs/catalina.out

 

 

posted @ 2018-04-19 15:20  嚒~☆大白  阅读(997)  评论(0编辑  收藏  举报