Linux下安装Jenkins及部署详细说明

分享知识 传递快乐



基本环境概述(环境都是目前最新的,关于相关环境配置,请参考我的其相关的博客进行!):

操作系统:linux-7.5

软件01:jdk-1.8

软件02:tomcat-9.0

软件03:maven-3.5.4

软件04:jenkins-2.141

jenkins常用的有两种安装方式

安装方式一:直接下载war包jenkins.war

下载地址https://jenkins.io/download

1.1、可以把war包直接部署到servlet容器中,如tomcat。

1.2、可以使用命令直接运行war包,java -jar jenkins.war

安装方式二:安装 RPM包

安装

yum install jenkins

下载rpm包到本地,在linux下使用rpm包安装命令:

rpm -ih jenkins-1.562-1.1.noarch.rpm

删除

yum remove jenkins-x.x.x.rpm

或者

yum erase jenkins-x.x.x.rpm

升级

yum upgrade jenkins

或者

yum update jenkins

查询

yum info jenkins

自动安装完成之后默认路径:

/usr/lib/jenkins/jenkins.war WAR包

/etc/sysconfig/jenkins 配置文件

/var/lib/jenkins/ 默认的JENKINS_HOME目录

/var/log/jenkins/jenkins.log Jenkins日志文件




安装完成之后启动

启动

systemctl start jenkins.service

jenkins 状态 :

systemctl status jenkins.service

停止

systemctl stop jenkins.service

开启服务(关闭,重启):

service jenkins start|stop|restart

因为Jenkins端口号默认为 8080 ,所以 Jenkins 服务启动成功后,直接输入 IP+端口即可正常访问,

注:因为是第一次访问,所以这儿还需要先获取管理用密码,
输入命令 cat /var/lib/jenkins/secrets/initialAdminPassword 获得密码

注:如果这儿端口被占用,则需要修改 jenkins 的配置文件,在 “ /etc/sysconfig/jenkins ” 中,找到 “ JENKINS_PORT ” 变量进行修改.

接着进入到 Jenkins 的插件安装界面,如果是 Jenkins 的普通用户,建议使用 Jenkins 社区推荐的插件,如果是 Jenkins 高级用户,这可以使用 Jenkins 的选择插件安装,

至此,jenkins已安装完成。

安装完成后设置jenkins用户密码:

cat /etc/passwd ;查看所有用户列表
passwd <用户> ;然后回车,会让你输入新的密码,在你输入密码

并将jenkins用户添加到/etc/sudoers文件中。




修改Jenkins主目录

Jenkins默认主目录是: /var/lib/jenkins

修改Jenkins默认主目录,打开配置文件:

vim /etc/sysconfig/jenkins

找到 JENKINS_HOME 改成指定新目录

JENKINS_HOME="/home/workspace/jenkins"

改目录权限

chown jenkins /home/workspace/jenkins
chgrp jenkins /home/workspace/jenkins

重启

service jenkins restart

解锁 Jenkins

cat /home/workspace/jenkins/secrets/initialAdminPassword

把密码输入到页面上后,重新安装插件就可以了。

注意:

个人去把原来的插件复制过去时,页面提示有插件不能用。




Jenkins安装成功后,启动会出现以下错误提示:

[root@centos lenovo]# systemctl start jenkins.service
Warning: jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.


[root@centos lenovo]# systemctl status jenkins.service
● jenkins.service - LSB: Jenkins Automation Server
   Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since 五 2019-03-08 00:45:25 CST; 11s ago
 Docs: man:systemd-sysv-generator(8)
  Process: 9852 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)

3月 08 00:45:25 centos systemd[1]: Starting LSB: Jenkins Automation Server...
3月 08 00:45:25 centos jenkins[9852]: Starting Jenkins bash: /usr/lib/jvm/JavaSE-1.8.0_192/bin: 是一个目录
3月 08 00:45:25 centos jenkins[9852]: [失败]
3月 08 00:45:25 centos systemd[1]: jenkins.service: control process exited, code=exited status=1
3月 08 00:45:25 centos systemd[1]: Failed to start LSB: Jenkins Automation Server.
3月 08 00:45:25 centos systemd[1]: Unit jenkins.service entered failed state.
3月 08 00:45:25 centos systemd[1]: jenkins.service failed.

是因为没有正确配置JDK的问题,需要打开:

sudo vim /etc/init.d/jenkins

找到candidates修改其值:

candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
"

修改

candidates="
/usr/lib/jvm/JavaSE-1.8.0_192/bin/java
"

提示:

/usr/lib/jvm/JavaSE-1.8.0_192/bin/java

是指向的文件,不是文件夹;只要安装了JDK就会有这个文件。




Jenkins 管理员 admin 密码找回

1、进入到Jenkins主目录(默认):

cd /var/lib/jenkins

2、打开配置文件

vim config.xml 

注意:

操作前先备份,不然文件丢失或损坏不要后悔哦。

打开后把以下内容删除:

true

	true


	true
	false

修改完成后保存,并重启Jenkins服务。

3、访问Jenkins地址,发现Jenkins不再需要登录

4、进入首页>“系统管理”>“Configure Global Security”,勾选“启用安全”;

5、在”访问控制>安全域”里面,勾选 “jenkins专有用户数据>允许用户注册”;

6、在页面中选择注册,注册一个新用户,并检验注册的用户是否能登陆。

7、刷新主页面,发现“系统管理”里有检查是否有“管理用户”了;

8、此时还不算完成,要调整一个配置信息,再次找开config.xml配置文件,会看到以下信息:

true


	false
	false

改为

true

	true


	true
	false

启动Jenkins即可。




Jenkins Mavaen插件安装

如果要使用Maven构建项目,首先要先安装“Maven Integration plugin”插件。此时在新建任务中就有“构建一个maven项目”选项。




Jenkins SVN插件安装

如果要使用Svn检索项目,首先要先安装“Subversion Plug-in”插件。

附:

安装Deploy to container(自动化部署插件)

安装Maven Integration(Maven集成插件)

安装Publish Over SSH(SSH远程连接插件)

安装Deploy Plugin (远程发布插件)




Jenkins 部署项目环境配置

全局工具配置

在全局工具配置文件下需要做以下配置:Maven Configuration

“Default settings provider” 选择 “文件系统中的 settings 文件”
,在“File path”中输入maven中的setting.xml文件位置。

“Default global settings provider” 选择“文件系统中的 settings 文件”
,在“File path”中输入maven中的setting.xml文件位置。

JDK installations 配置

Maven配置

任务配置

点击一个添加的任务,点击 “Configure” ,打开任务配置页面。

Source Code Management
在 “Source Code Management” 中选择 “Subversion”
在 “Repository URL” 输入svn请求地址,在 “Credentials” 选择 “Add” 添加svn账户名和密码。

Build

在 “Root POM” 输入:pom.xml,
“Goals and options” 输入:

-Dmaven.repo.local=/opt/apache/maven/repository clean package -Dmaven.test.skip=true

并修改repository文件夹的用户权限为jenkins,重启jenkins即可指定maven仓库路径。

Goals and options: -Dmaven.test.skip=true -Dproject.install.phase=uat clean -U install
Maven reqository path: /home/workspace/jenkins/maven-repositories/0

Goals and options: clean package -Dmaven.test.skip=true
Maven reqository path: /home/workspace/jenkins/workspace/spring-ssh-task/.repository

Post Steps

选择 “Run only if build succeeds”,
并在 “Add post-build step” 中选择 “执行shell” ,在Command中输入shell执行命令。命令如下:

echo '1234567' | sudo -S sh /opt/apache/tomcat/apache-tomcat-7.0.82/bin/shutdown.sh
echo '1234567' | sudo -S rm -rf /opt/apache/tomcat/apache-tomcat-7.0.82/webapps/spring*
echo '1234567' | sudo -S cp /home/workspace/jenkins/workspace/spring-ssh-task/target/spring-ssh-task.war /opt/apache/tomcat/apache-tomcat-7.0.82/webapps
echo '1234567' | sudo -S sh /opt/apache/tomcat/apache-tomcat-7.0.82/bin/startup.sh

给jenkins用户设置密码,不设置密码是不能操作的。

No changes for svn://192.168.142.136/branches/spring-ssh-task since the previous build
Parsing POMs
[spring-ssh-task] $ /bin/sh -xe /tmp/jenkins2165661365675562869.sh
+ echo 1234567
+ sudo -S sh /opt/apache/tomcat/apache-tomcat-8.5.38/bin/shutdown.sh

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。

删除Jenkins发布构建的项目文件

/home/workspace/jenkins/jobs/spring-ssh-task/builds

/home/workspace/jenkins/jobs/spring-ssh-task/modules/com.xh.ssh.web.task$spring-ssh-task/builds

查看要删除的文件夹: ls {1..9} -d

删除文件夹: rm -rf {1..9}

{1…9}这是从1-9以内的名字显示出来




Jenkins 构建项目显示异常如下:

异常一

[ERROR] /E:/eclipse/workspace/Copy_storm-kafka-test/src/main/java/com/h3c/storm/PrivateHBaseBolt.java:[30,46] -source 1.5 中不支持 diamond 运算符

[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)

解决方案:

原因是编译版本出现了问题,编译时使用的jdk版本太低,在pom文件作如下修改:


	当前项目名称

	
		
		
			org.apache.maven.plugins
			maven-compiler-plugin
			3.1
			
				
				1.8
				1.8
				UTF-8
			
		
		
	



异常二

jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units

解决方案:

systemctl daemon-reload


异常二

严重: Catalina.stop: 
java.net.ConnectException: 拒绝连接 (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at java.net.Socket.connect(Socket.java:538)
	at java.net.Socket.(Socket.java:434)
	at java.net.Socket.(Socket.java:211)
	at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:511)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:343)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

+ echo 1234567
+ sudo -S rm -rf '/opt/apache/tomcat/apache-tomcat-7.0.93/webapps/spring*'
ERROR: Failed to create /var/lib/jenkins/.m2
Finished: FAILURE

解决方案:

/etc/profile 文件中配置Jenkins全局的环境变量,重启服务器即可。



构建工程时的文件地址
/home/workspace/jenkins/jobs/spring-ssh-task/builds

你可能感兴趣的:(Linux,Jenkins安装,Jenkins部署,中间件,linux,java)