[原]Linux环境-Jenkins实战-分布式构建-自动化持续集成-自动化部署-gitlab-svn-shell启动tomcat 废话不多说,开始实施... 一些基本知识需要自己实践完,进行自我补充
[原]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 environmentexport JAVA_HOME=/usr/lib/jvm/jdk1.8.0_101export 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 environmentexport MAVEN_HOME=/usr/lib/maven/apache-maven-3.9export 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 protected]";
设置完,可以通过 cat ~/.gitconfig 查看;
4.设置ssh-key;
以公钥认证方式访问SSH协议的Git服务器时无需输入口令,而且更安全。(访问HTTP协议的Git服务器时,比如提交修改,每次都需要输入口令)
注意:一定是在root权限下进行得到的ssh公钥:
sudo su;ssh-keygen -t rsa -C "your [email protected]";
直接默认,按回车就可以了;系统会提示ssh-key的保存位置(一般是~/.ssh目录)和指定口令。
cd ~/.sshllcat id_rsa.pub
复制里面的内容;
5.登录gitlab;
点击 设置 选择ssh key;
将公钥复制到sshkey中;
6.测试是否成功:
在服务器上:
ssh -T [email protected]
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