文档章节

[原]Linux环境-Jenkins实战-分布式构建-自动化持续集成-自动化部署-gitlab-svn-shell启动tomcat

JPowerman
 JPowerman
发布于 2016/09/01 21:42
字数 2903
阅读 625
收藏 16

[原]Linux环境-Jenkins实战-分布式构建-自动化持续集成-自动化部署-gitlab-svn-shell启动tomcat

废话不多说,开始实施... 一些基本知识需要自己实践完,进行自我补充和提高。在下一节会介绍原理。

文中所涉及到的linux命令,请按步骤执行!创建的文件夹,权限设置为最大(可读写);sudo chmod 777 folder-name;

一.Jenkins安装

    1.安装环境 jdk+maven+git+tomcat

      在这里我要提醒一下,这些安装环境是基于依赖于git管理的项目部署必备的(SVN管理也可以),适用于本人所处开发环境及大多数开发环境。

      1.jdk安装 v1.8

        jdk版本1.7或者1.8都可以,linux 上jdk安装步骤:

        1.新建文件夹               

sudo su;//提升root权限
mkdir /usr/lib/jvm;

        2.下载 jdk-8u101-linux-x64.tar.gz 官网中下载,然后上传到linux服务器。上传命令:sudo rz -y;                

           上传完成后,解压缩文件:

sudo tar -zxvf jdk-8u101-linux-x64.tar.gz    -C   /usr/lib/jvm;

  3.设置环境变量

sudo  vi  /etc/profile;

    打开文件后,在文件的末尾加上以下这些:

#java environment
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_101
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

        4.设置系统默认的jdk

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_101/bin/java 300;
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_101/bin/javac 300;

        5.检查是否安装成功:

java  -version;

     2.安装maven

        1.下载 maven包上传到服务器:

        2.创建文件夹:

sudo mkdir /usr/lib/maven;

        3.解压文件:

sudo tar -zxvf maven-3.9.tar.gz -C /usr/lib/maven;

        4.设置环境变量:/etc/profile 为系统变量;~/.bashrc 为用户变量 

sudo vi /etc/profile;

           在末尾加入:

#maven environment
export    MAVEN_HOME=/usr/lib/maven/apache-maven-3.9
export    PATH=$MAVEN_HOME/bin:$PATH

         5.使文件生效:

sudo source /etc/profile

         6.查看是否安装成功

 mvn -v

      3.安装git

         1.下载git

            可以直接下载git包解压安装,具体详细git各种环境操作可以点击:https://git-scm.com/downloads 

            这种安装方式可以参考:http://jingyan.baidu.com/article/e9fb46e16698687521f766ec.html  

            在centOS5中的yum源中没有git.就需要用之前的方式,在centOS6以上中的yum源有git:           

sudo yum update;
sudo yum -y install git;

        2.查看是否成功

git --version;

        3.设置git

git config --global user.name "your login name";
git config --global user.email "your email@163.com";

         设置完,可以通过 cat ~/.gitconfig   查看;

        4.设置ssh-key;

        以公钥认证方式访问SSH协议的Git服务器时无需输入口令,而且更安全。(访问HTTP协议的Git服务器时,比如提交修改,每次都需要输入口令)

        注意:一定是在root权限下进行得到的ssh公钥:       

sudo su;
ssh-keygen -t rsa -C "your email@163.com";

        直接默认,按回车就可以了;系统会提示ssh-key的保存位置(一般是~/.ssh目录)和指定口令。

cd ~/.ssh
ll
cat id_rsa.pub

        复制里面的内容;

       5.登录gitlab;

        点击 设置 选择ssh key;

        将公钥复制到sshkey中;

       6.测试是否成功:

        在服务器上:

ssh -T git@github.com

    4.安装tomcat

        1.将tomcat包上传服务器,解压。

        这里需要注意的是:

            第一,如果我们是利用tomcat启动Jenkins,我们需要将 web项目与Jenkins服务 的tomcat分开进行部署。这是因为 当我们再重新启动部署web项目时,不影响Jenkins的服务。

            注意 修改各个tomcat中的端口号,避免冲突;

            第二,如果我们使用 java -jar  jenkins.war;则可以不分开部署Jenkins;

     5.安装Jenkins

        1.我们下载 Jenkins.war包(版本:2.7.3),上传到服务器。

        2.将 Jenkins.war 移动到Jenkins 所使用的 tomcat中的webapps的目录下。

sudo mv jenkins.war  /apache-jenkins-tomcat/apache-tomcat7/webapps

        3.启动 tomcat:

sudo sh startup.sh

        4.访问:

        在浏览器中 访问 : 服务器ip:port/jenkins

           例如:192.168.1.1:8080/jenkins

        5.进入之后,会提示你输入 访问Jenkins的初始化密码,并且告诉你了 密码存放位置,如果没有找到,就在以下命令中进行查找:

           访问开始:如图 

           此密码 在tomcat启动日志里存在,或者 到 sudo cat /root/.jenkins/secrets/initialAdminPassword中 查看。

        6.进行代理服务器设置,因为需要连接外网 进行接下来的插件下载与安装。

            输入远程代理服务器ip 及 端口号即可,不用密码;

        7.点击下一步,会出现两个选择,一个就是 进行推荐的插件下载,一个就是自主选择插件下载安装。此时选择第一个推荐的插件下载安装。

        8.等待插件安装完成后,下一步就会 进行 用户登录的设置,注册 用户名 及密码。

        9.然后下一步,就完成了。进入到Jenkins页面中。

二、Jenkins系统管理

    1.接下来,我们需要进行给Jenkins系统设置相关的参数及构建项目时所需要的配置。我会 附上 图,然后解释 具体某个选项什么意思;

           1.首先,我们要进行插件管理,安装好我们所需要的插件。

                  所需要的插件列表:

                  除了,初始化配置时候,推荐安装的插件外,还需要 进入到

                  系统管理-->管理插件-->可选插件  :查找  1.gitlab相关插件并安装; 2.maven相关插件并安装; 3.Deploy to container Plugin(此插件 用于 构建后部署到  tomcat时候 使用);4.publish-over-ssh (此插件用于 构建部署成功后,在相应的服务器上 进行 shell脚本 自动化启动)。

               注意 点击 直接安装 publish-over-ssh插件,可能会失败,报错信息:

          这是 因为 访问限制,因此改为手动安装即可:

          解决办法:

          点击 插件超链接 进入到 下载界面,

                       

                    下载 hpi 文件到本地,然后 在系统管理--管理插件--高级--浏览-上传插件即可,如图:

                       

                    然后它自动上传并安装。

                    完成后,重启jenkins。

           2.系统管理-->系统设置:

                   1.下图中主目录 是 默认的,也可以进行配置更改,我不介绍了。     

                  2.

 全局属性中的参数是解决 构建中 出现 的 ‘ssl认证失败’ bug。

Exception Log:SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:
SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/... 

解决方法---参数:GIT_SSL_NO_VERIFY   = true

          3.                      

        gitlab api token的密码所在位置 

          4. 

           5.如果有多个机器,可以选择增加,配置多个机器。方法 一样。         

           3.全局配置:

             系统管理-->Global Tool Configuration :               

      
           4.安全配置:    

                    系统管理-->Configure Global Security . 默认配置就行。

           5.用户配置:

                    可进行对 用户 的 增删改。

           6.节点配置:用于分布式多平台测试、构建项目。

                    系统管理-->管理节点:

                    1.

                   

                    2.

                   

                    3.

                    点击 launch 按钮,此时 服务器 会下载 一个 slave.jar 文件,到 远程工作目录。该文件 是用来 master-slave  之间 进行通信的。

       在研究配置的过程中,处理时间最长的问题,就是gitlab配置问题。

       在构建项目的时候,总是提示以下异常:

       出现异常的原因就是 用户认证证书权限不正确,所以我们要设置最高权限的Jenkins认证证书。这样才能保证不出错误。

       以上就是一个自己总结出来的配置说明。

    2.以上全部配置完成以后,我们开始构建一个项目。

        1.设置一个project_name;

        2.选择构建 maven 项目;

        3.点击ok,进行构建项目配置:

            以下是构建过程中的各个选项说明:

            1.除特别说明标记的,画圆圈的为重点配置介绍,其余可不配置或者默认即可。

             2.

             3.构建触发器:

               4.我们在构建之前需要执行shell脚本,将原来web项目的war和文件夹删除。

                  以下为shell脚本内容以及如何使用:

               5.构建后:因为我们需要把git下来的war包部署到各个不同服务器的tomcat中,所有我们用到这个插件 Deploy ....

                  我们需要在各个服务器中 进行tomcat的修改,修改内容为:

                  我们将 修改 tomcat底下的 用户角色 配置,‘

sudo vi  /tomcat/conf/tomcat-user.xml

                  修改为:                  

<tomcat-users>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="admin" />
<user username="tomcat" password="123456" roles="admin,manager,manager-gui,manager-script,manager-jmx" />
</tomcat-users>

                然后,重新启动tomcat;

                以上配置完成后,我们需要输入,tomcat 用户名 密码,及host

                如图:

        4.构建成功后:

           Jenkins在构建成功后,会把项目生成在Jenkins的workspace中,注意 生成位置是 系统配置中 的 主目录路径下,如图:

            是在这个路径下。

           我们知道了这个路径,接下来会有用,和我们可以了解怎么改变此路径。可以查阅相关资料。搜索  ‘修改Jenkins 工作空间 路径’。

    到此为止,我们构建完成,并且部署完成,以上这些步骤,可以完成这些操作:

            1.当构建触发器中设定的规则 被触发,我们将进行构建。

            2.构建开始时,先将tomcat中的war文件及web项目文件夹删除。

            3.然后将 git clone 项目 到Jenkins的workspace中,把打好的war包 Deploying到 相应的tomcat 服务器的webapps目录下。

       如果不需要 自动化执行 重启tomcat命令的话,到此,我们就可以结束了,接下来我们就可以手动重启tomcat服务器。然后跳过第5步骤,看第6步骤。

      如果你想实现,部署完成后,需要自动化执行启动,那么我们需要如下操作:看第5步骤:

    5.点击 增加构建后的步骤按钮,选择  send build artifacts over ssh:

        如下图:我们进行配置:

        执行shell脚本的内容为:

  javapid=`ps aux|grep java|grep -v grep|grep apache-datax-7.0.70|awk '{print $2}'` 
  echo $javapid
  if [ ! -n "$javapid" ];then  
      echo "no java process "  
      sudo /bin/sh /app/apache-datax-7.0.70/bin/startup.sh   
      echo "Tomcat start success"  
 else  
      echo "has a java process"  
      sudo kill -9 $javapid  
      sleep 5  
      sudo /bin/sh /app/apache-datax-7.0.70/bin/startup.sh  
      echo "Tomcat restart success"  
fi

        执行的思路就是:查看web项目的tomcat进程是否存在,不存在,直接重启。存在,kill掉,然后在重启。

    6.保存项目。

        1.点击立即构建,查看日志,会进行git clone,然后下载pom文件中所需要的 jar包。

        这时候 我们要注意 maven所需要的 setting.xml配置文件,要和你本地eclipse中使用 的setting文件一致,因为一般公司都会有 自己 maven仓库。这样才能依赖到各个jar包。

        2.如果在构建过程中,报了 执行 shell脚本异常,错误原因是:

        那么,我们需要 修改 tomcat的 catalina.sh文件。       

sudo vi /tomcat/bin/catalina.sh 
将 JAVA_HOME=/jdk_path

        加入到这个文件中,然后保存,重启tomcat。

        3.到此,我们就成功完成Jenkins全部部署了。

        4.异常信息:

            如果出现这个错误,就是 tomcat-user.xml配置文件的角色问题,查看前面配置说明。

当然还有许多Jenkins的功能没有进行说明,先不做一一介绍。如果有问题,可以直接留言。

这些是真实实践出来的结果,希望大家支持,共同反馈,共同进步。转载请说明出处。

 

附加资料:

文件权限配置说明:

http://blog.chinaunix.net/uid-25052030-id-174343.html 

linux添加用户,修改用户权限说明:

http://www.cnblogs.com/daizhuacai/archive/2013/01/17/2865132.html 

作者:powerman91   时间:2016.9.1

© 著作权归作者所有

JPowerman
粉丝 5
博文 24
码字总数 11345
作品 0
朝阳
后端工程师
私信 提问
Jenkins的安装和使用(Centos7)

Jenkins的安装和使用(Centos7) 2018年06月26日 14:34:59 itlihongmin 阅读数:1858 标签: Jenkins 更多 个人分类: 基础工程 版权声明:本文为博主原创文章,未经博主允许不得转载。 http...

linjin200
01/14
30
0
持续集成Jenkins+Gitlab

持续集成Jenkins+Gitlab 请叫我大宝贝 一、相关概念 1.1 持续集成: 持续集成(Continuous Integration),简称CI,是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动...

rootliu
02/22
89
0
jenkins+Gitlab+maven+tomcat实现自动化集成、打包、部署。

为什么需要持续集成呢? 1.因为在开发的过程中,用于阶段性地构建出产品。 这样可以更加清楚地审视产品的不足之处。 2.由于在某些情况下,例如有紧急bug的时候,研发的版本更新可能很频繁, ...

秦时明月路
2018/07/20
0
0
使用Docker搭建GitLab实践

使用Docker搭建GitLab实践 SVN与GIT,二者皆须会 当前版本控制系统(Version Control System,VCS)有集中化版本版本控制系统(Centralized Version Control System,简称 CVCS)和分布式版本...

donhui
2015/07/27
2.8K
0
使用 Jenkins 构建 Coding 项目 (资源)

Jenkins简介 Jenkins是一种跨平台的持续集成和交付的应用软件,它便于不断稳定地交付新的软件版本,并提高你的工作效率。这款开发运维工具还让开发人员更容易把项目的变化整合起来,并使用大...

寰宇01
2018/04/23
549
0

没有更多内容

加载失败,请刷新页面

加载更多

vue入门--简单路由配置

本文转载于:专业的前端网站➜vue入门--简单路由配置   在初始化vue init webpack <工程名>时,有一步是询问是否安装vue-router,选择yes,如果没有安装的话,后面需要自己安装。然后在目录...

前端老手
12分钟前
2
0
怎么给视频配音

很多刚开始尝试视频制作的小伙伴,帮助到怎么给制作完成的视频配音,其实给视频配音的方法非常简单,在手机上可以进行制作,下面一起来看看给视频配音的方法吧! 具体步骤如下: 1、首先在手...

白米稀饭2019
21分钟前
1
0
windows批处理bat脚本编写

什么是bat脚本 .bat结尾的文件其实就是windows上的批处理脚本,Windows中的bat文件相当于 Linux中shell编程的.sh脚本,批量执行DOS命令。 其最简单的例子,是逐行书写在命令行中会用到的各种...

孙幼凌
29分钟前
1
0
华为手机翻译功能怎么使用?这三种方法请务必收藏

华为手机翻译功能怎么使用?在我们的生活中会经常遇到翻译问题,许多外语不好的朋友该怎么办呢?华为手机已经为我们解决了这个问题,今天小编就教大家学会使用华为手机中的三种翻译技巧,需要...

翻译小天才
37分钟前
4
0
企业服务软件开发中需要注意的三个问题

在开发企业服务软件时,我们需要分为:业务需求、用户需求、产品需求,三大需求层次,三个层次互相关联,企业服务软件开发首先要服务业务,需要满足业务的需求,再关注用户体验,也就是用户需...

积木创意科技
39分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部