项目开发环境搭建手记(5.Jenkins搭建)

作者:fbysssQQ:溜酒酒吧酒吧吾散blog:blog.csdn.net/fbysss

一、下载

下载地址:

这里有下载包

注意:

sudo wget -O /etc/yum.repos.d/jenkins.reposudo rpm –import yum install jenkins

这样的安装步骤也是可以,但是虚拟机下载的速度是很慢的。还是手工download rpm更好。

二、安装

rpm -ivhjenkins-1.597-1.1.noarch.rpm

1:jenkins########################################### [100%][root@localhost sss]# rpm -ql jenkins/etc/init.d/jenkins/etc/logrotate.d/jenkins/etc/sysconfig/jenkins/usr/lib/jenkins/usr/lib/jenkins/jenkins.war/usr/sbin/rcjenkins/var/cache/jenkins/var/lib/jenkins —主目录/var/log/jenkins

三、配置

vi /etc/sysconfig/jenkins,修改端口号

service jenkis

提示是OK,但是ps一下,jenkins进程没有,端口号也没被占用。

cat /var/log/jenkens/jenkens.log

SEVERE: Container startup failedjava.io.IOException: Failed to start Jetty

Caused by: java.net.BindException: Address already in use

原来是8009端口和被tomcat占用了。

===>/etc/sysconfig/jenkins要修改两个端口:一个8080,一个8009

在这里,我把它们分别修改为8980,8909

同时,也可以从这里看到,rpm包里面,内嵌了Jetty

四、安装插件,支持git

jenkins默认是不支持git的,需要装插件。

系统管理-》插件管理-》可选插件

选中GitLab Plugin之后,点直接安装,进入一个页面,显示相关的plugin正在下载

——注意需要翻墙连google

在配置gitlab信息时,有一个api token,对应gitlab用户的account属性中,Private token的值。

但是配置git仓库的时候,一直报错。

只有用http协议,并且把用户名密码都加上如:pass@host:xxxxxx.git,Credentials选none的时候才可以。

Failed to connect to repository : Command "git ls-remote -h git@dev.fbysss.com:app-dev/sssApp.gitHEAD" returned status code 128:stdout:stderr: Permission denied, please tryagain.Permission denied, please try again.Permission denied(publickey,gssapi-keyex,gssapi-with-mic,password).fatal: The remote end hung up unexpectedly

最终解决:还是在细节上没有注意

选择SSH Username with private key

直接输入私钥,要完整复制 ~/.ssh/id_isa里面的内容。

使用From a file on Jenkins master不好使

构建的时候,,发现错误:mvn command not found.

检查一下设置,maven也已经配置了。

原因是:直接在command shell里面输入mvn是不行的。

采用在设置菜单中,增加构建-》Invoke top-level maven targets,选择我们配置的Maven的名称 ,Goals中输入

clean

install

等,是可以的。

记得在高级设置里面,都用默认的设置,里面是要找maven配置文件settings.xml的。

如果要直接输入shell命令,要打完整的路径——因为jenkins这个用户,shell用的不一样。

一开始的错误,实际上是找不到这个路径,因为默认是~/.m2/repository。于是maven直接去找私服了。然而,我根本没有把这玩意放在私服上——因为没必要。

[ERROR] The project com.fbysss.dev:sssApp:${project.build.version}(/var/lib/jenkins/jobs/sssApp/workspace/pom.xml) has 1 error

[ERROR] Non-resolvable parent POM: Failure to findcom.fbysss.dev:sssApp-pom:pom:1.0.0 in was cached in the local repository, resolution will notbe reattempted until the update interval of central has elapsed or updates areforced and ‘parent.relativePath’ points at wrong local POM @ line 6, column 10-> [Help 2]

后来才是无法访问。

[ERROR] Could notcreate local repository at /home/sss/.m2/repository -> [Help 1]

原来是jenkins访问不了/home/sss,所以,把local repository设置在这里是不明智的。

打开settings.xml,设置目录为/var/mavenrepo

于是,

mkdir /var/maven-repo

cp /home/sss/.m2 /var/maven-repo/. -r

chmod 777 /var/maven-repo

新问题又来了:

因为jenkins一启动,虚拟机就很慢。估计jetty还是占用了不少内存。直接把war包放到tomcat下面应该是更好的选择。

但是,war包部署到tomcat下,访问发现之前的数据全部没有了。咋办?

vi /var/lib/jenkins/users/admin/config.xml,可以看到,jenkins就是使用文件存储的方式。

但拷贝过去还是不好用,而且速度没变快。因此还是使用jetty启动。

问题:Tomcat和Jetty莫名自动关停。

估计内存不足,增加了1G内存。暂时没问题。

小技巧:要查看详细信息,可以在Goals中增加一条:-e

五、WebHook配置:解决:gitlab push之后,jenkins自动构建

首先,在gitlab中,选中一个project进行编辑

点击web hooks->Push events,添加一个url:?url=git@dev.fbysss.com:app-dev/sssApp.git

测试,提示错误:Hook execution failed. Ensure hook URL is correct and service is up.

单独将这个url放到地址栏里面,提示:

No Git consumers using SCM API plugin for: git@dev.fbysss.com:app-dev/sssApp.git

参考如下网址:

说的主要是,首先gitlab中的POLL SCM要设置

效果:push到gitlab之后,jenkins自动进行构建。看日志可检查。

发现一种久违的感动。

项目开发环境搭建手记(5.Jenkins搭建)

相关文章:

你感兴趣的文章:

标签云: