[原]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 -Tgit@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的初始化密码,并且告诉你了 密码存放位置,如果没有找到,就在以下命令中进行查找:

访问开始:如图

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

此密码 在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插件,可能会失败,报错信息:

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

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

解决办法:

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

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

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

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

然后它自动上传并安装。

完成后,重启jenkins。

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

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

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

2.

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

全局属性中的参数是解决 构建中 出现 的 ‘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.

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

gitlab api token的密码所在位置

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

4.

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

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

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

3.全局配置:

系统管理–>Global Tool Configuration :

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

4.安全配置:

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

5.用户配置:

可进行对 用户 的 增删改。

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

系统管理–>管理节点:

1.

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

2.

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

3.

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

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

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

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

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

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

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

1.设置一个project_name;

2.选择构建 maven 项目;

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

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

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


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

2.

3.构建触发器:

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

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

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

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

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

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

修改为:

然后,重新启动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

    原文作者:ZNB_天玄
    原文地址: https://www.jianshu.com/p/e6e88bc099e4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞