zoukankan      html  css  js  c++  java
  • jenkins安装配置

    一.Jenkins简介

    Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成编程可能。Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工具,功能包括:

    1.持续的软件版本发布/测试项目。

    2.监控外部调用执行的工作。

    今天我们主要讲持续的软件版本发布,即:项目的“自动化”编译、打包、分发部署。

     

    二.JenkinsHudson的关系

    Hudson是由Sun 开发的一个非常流行的开源的基于Java的持续集成工具,SunOracle收购之后,JenkinsHudson项目复刻出来,现在JenkinsHudson是两个独立的项目。

     

    三.Jenkins官网地址https://jenkins.io/

     

    四.系统要求

    JDK

    JDK 1.5 或以上

    Memory

    2 GB RAM (推荐)

    Disk Space

    没有最起码的要求。需要注意的是,因为所有的构建将保存在 Jenkins 机器上,它必须确保有足够的磁盘空间可用于构建存储。

    Operating System Version

    Jenkins可以安装在Windows, Ubuntu/Debian, Red Hat/Fedora/CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo 系统上

    Java Container

    WAR文件可以在支持 Servlet2.4/JSP2.0或更高版本的容器中运行。(一个例子是Tomcat 5)。

     

     

    五.Jenkins安装及启动

    1.下载

    点击“Download Jenkins”,可以选择下载war或者zip,如果不想最新版本,则可以点击“Past Releases”去选择旧的版本进行下载。

    2.如果下载的是war包,则将war放到tomcat下,启动tomcat,通过http://ip:端口/jenkins就可以访问jenkins了。如果下载的是zip压缩包,则为安装文件,这里不详述。

    我这里配置的地址为: http://192.168.6.123:9000/jenkins/

    这即是jenkins的默认初始化页面

     

    六.Jenkins主目录

    Jenkins需要一定的磁盘空间来进行构建和保持档案,默认路径可以从“系统管理>>系统设置”的主目录看到,在~/.jenkins目录下,正式环境中最好修改此路径,可通过设置“JENKINS_HOME”环境变量为新的主目录来完成修改。

    OS

    输出

    Windows

    设置环境变量 JENKINS_HOME 到你想要的位置。举个例子,可以将其设置为E APPS 詹金斯 E:AppsJenkins

    Linux

    export JENKINS_HOME =/usr/local/Jenkins 或所希望的位置。

               重启Jenkins服务将可以看到主目录已修改。

     

    修改前的主目录:

     

    linux修改命令:

    root用户登录

    cd //”回到根目录

    编辑profile文件:vi /etc/profile,输入i进入输入模式

    在最后加入:export JENKINS_HOME=/application/jenkins

    先按ESC键,再输入:wq!进行保存并且退出

    保存,退出后执行:source  /etc/profile让配置生效

     

    修改后的主目录:

     

    构建后,打包好的war包会存在jobs下对应job下的target目录下。

     

    七.Jenkins用户管理

    第一次进入Jenkins页面,并没有用户信息,此时任何人都可以操作Jenkins。当设置了用户权限后,并去除匿名用户权限,则需要登录注册,按各自的权限操作Jenkins

     

    系统管理 >>Configure Global Security打开用户管理页面

    勾选“启用安全”,选择“Jenkins专有用户数据库”并允许用户注册,选择“安全矩阵”来控制用户权限,第一次给匿名用户最大权限,等建立用户权限信息后再去除。保存设置后,网页右上角将出现登录、注册链接。

    Jenkins里注册的第一个用户默认拥有管理员权限,即管理员账号;之后注册的所有用户都需要管理员通过“安全矩阵”设置权限。

     

    用户列表查看用户信息。

     

    “安全矩阵”里添加已经注册的用户,然后给用户指定权限。

     

    八.Jenkins插件的更新及下载

    我们项目里用到mavensvnJenkins里需要下载对应的插件才可以用。war打包好后,我们需要将war传输到远程服务器上,这将需要     Publish Over FTPPublish Over SSH插件,我们这里选用ssh

    Jenkins里面已经默认下载了mavensvn的插件,我们可以在“已安装”里面看到。如果构建的时候报mavensvn的错,我可考虑是否是插件的版本问题,可以在“可更新”里更插件。

     

    系统管理>>管理插件

     

     

    在“可选插件”中选择Publish Over SSH插件并下载:

     

     

    九.Jenkins系统设置

     

    系统管理>>系统设置,这里面大部分配置都可以使用默认配置,我们首先需要配置jdk路径、maven路径、SSH Servers,以便后边新建任务时用到。

     

    指定服务器上已经安装好的jdk

     

    因为服务器上没有事先安装好的maven,所以这里我们选择自动安装,安装3.0.4版本的。

     

    设置远程服务器连接,并点击“Test Configuration”测试连接。

     

    最后点击保存,完成基本设置。

     

    十.Jenkins新建任务及配置

    第一步:点击新建。

     

    第二步:新建任务,输入项目名,我们的是maven项目,所以选择“构建一个maven项目”。

     

     

    第三步:我们将看到一个设置任务详细信息的页面。

     

    第四步:需要指定源代码管理所在的路径,我们使用的是svn,那么就指定svn仓库的地址,以便构建任务时从仓库获取代码。

    如果出现以上红色的提示,则表示svn连接失败,需要点击“enter credential”输入svn的用户名和密码。

    如果svn认证成功,则不需要下面的步骤;如果svn认证出错了,我们可以换一种方式添加证书;点击“Credentials:

     

    在这里输入svn的用户名和密码,等再次配置svn连接时,就可以使用该证书了。

     

     

    如果Jenkins服务器时间与SVN服务器时间不一致,则会出现jenkins构建不能获取到svn最新代码的问题,我们可以SVN URL@HEAD后缀后来解决这个问题,JenkinsSVN插件是支持这个的。

    注:HEADSVN revision关键字,表示版本库中的最新版本。

     

    Maven暂时忽略测试类:

    第五步:这时我们就可以开始构建了,看看是否能正确的从svn获取代码并正确生成war

     

    点击“Console Output”可以看到控制台输出:

     

    构建成功,可以看到构建打包好的jarwar所在的地址

     

     

    十一.Jenkins自动化部署脚本编写

    linux命令删除压缩包里的指定文件:zip -d /application/jenkins/workspace/platform/rentcarmall-platform/target/platform.war *.jar

     

    dos命令删除压缩包里的指定文件(JAR格式是基于ZIP格式的,所以很多处理ZIP文件的工具都适用于JARWAR,和EAR文件):7z d D:/jenkins/workspace/platform/rentcarmall-platform/target/platform.war *.jar -r -x!rentcarmall-service-0.0.1-SNAPSHOT.jar -x!rentcarmall-utils-0.0.1-SNAPSHOT.jar

     

    7z d D:/jenkins/workspace/web/rentcarmall-web/target/web.war *.jar -r

    7z d D:/jenkins/workspace/web/rentcarmall-web/target/web.war static/* -r

    7z d D:/jenkins/workspace/web/rentcarmall-web/target/web.war views/* -r

     

    xcopy D:jenkinsworkspaceadminMgrvendor D:jenkinsworkspaceadminMgrdistvendor /s /e /y

    dos使用7z命令行需要做如下操作:】

    1.7z1604-x64.exe安装7-Zip

    2.打开7-Zip的安装目录(一般默认在C:Program Files7-Zip),复制7z.exe7z.dllC:WindowsSystem32文件夹下;

    3.cmd打开命令行窗口即可使用7z命令

     

     

     

    十二.Jenkins执行webpack打包

    十三. 

    Windows下的Nodejs npm路径是appdataC:UsersAdministrator.PC-20140801TDFHAppData),很不爽,想改回来,但是在cmd下执行以下命令也无效

    npm config set cache "D: odejs ode_cache"

    npm config set prefix "D: odejs ode_global"

    最后在nodejs的安装目录中找到node_modules pm.npmrc文件

    修改如下即可:

    prefix = D: odejs ode_global
    cache = D: odejs ode_cache

     

    创建webpack环境变量,则可以全局访问webpack

     

     

    Dos命令是单任务运行方式,不能多个命令顺序执行,我们在这里使用callstart连接执行

     

    if exist yp.zip (del yp.zip)

    call cnpm install

    call webpack

    call xcopy D:jenkinsworkspaceadminMgrvendor D:jenkinsworkspaceadminMgrdistvendor /s /e /y

    call 7z a yp.zip dist/*

     

     

     

    if exist web.zip (del web.zip) –del只能删除文件】

    if exist dist (rd dist /s /q)—rd删除文件夹,/s表示删除本目录及子目录,/q表示删除的时候不询问是否删除】

    call cnpm install

    call webpack

    call ren D:jenkinsworkspaceusiness_backgrounddistindex.html bg.html

    xcopy D:jenkinsworkspaceusiness_backgrounddist D:jenkinsworkspaceweb entcarmall-web argetwebviews /s /e /y

    cd D:jenkinsworkspaceweb entcarmall-web argetweb

    if exist web.zip (del web.zip)

    7z a web.zip static views

    xcopy D:jenkinsworkspaceweb entcarmall-web argetwebweb.zip D:jenkinsworkspaceusiness_background

     

    十四.Jenkins进行邮件通知

    1.配置SMTP服务认证

    A.配置公用的QQ邮箱,开启SMTP服务

    设置》账户

    开启SMTP服务,获取授权码。

    B.Jenkin系统设置里配置SMTP服务认证

    系统管理》系统设置

     

    2.使用Jenkins内置的邮件功能

    针对单个job设置收件邮箱地址,邮箱地址只能固定设置,并且只能在出错时才发送邮件。

    3.使用“email extension plugin”插件扩展邮件功能

    安装email extension plugin插件过程不再详述

    单个job配置邮件发送

    基本都使用默认配置,只需要配置triggers指定触发状态和收件人即可。

     

     【最喜欢你一言不合就打赏的样子啦~~~哈哈哈】

  • 相关阅读:
    TestFlight使用方法
    jmeter 单接口测试方案(接口无业务关联)
    jenkins+ANT+jmeter 接口测试环境搭建
    Pytorch实战(3)----分类
    莫烦大大keras的Mnist手写识别(5)----自编码
    莫烦大大keras学习Mnist识别(4)-----RNN
    莫烦大大keras学习Mnist识别(3)-----CNN
    算法68------数组和矩阵问题
    Keras学习基础(2)
    TensorFlow实战笔记(17)---TFlearn
  • 原文地址:https://www.cnblogs.com/nicolegxt/p/219f8981ec47c54da3642d257afb5ac3.html
Copyright © 2011-2022 走看看