当前位置:   article > 正文

Linux下安装Jenkins及部署详细说明_linux 设置/bin/sh -xe /tmp/jenkins711340977610024609

linux 设置/bin/sh -xe /tmp/jenkins7113409776100246094.sh 这个命令后所有的操

分享知识 传递快乐



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

操作系统: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
  • 1

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

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

删除

yum remove jenkins-x.x.x.rpm
  • 1

或者

yum erase jenkins-x.x.x.rpm
  • 1

升级

yum upgrade jenkins
  • 1

或者

yum update jenkins
  • 1

查询

yum info jenkins
  • 1

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

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

/etc/sysconfig/jenkins 配置文件

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

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




安装完成之后启动

启动

systemctl start jenkins.service
  • 1

jenkins 状态 :

systemctl status jenkins.service
  • 1

停止

systemctl stop jenkins.service
  • 1

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

service jenkins start|stop|restart
  • 1

因为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 <用户> ;然后回车,会让你输入新的密码,在你输入密码
  • 1
  • 2

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




修改Jenkins主目录

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

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

vim /etc/sysconfig/jenkins
  • 1

找到 JENKINS_HOME 改成指定新目录

JENKINS_HOME="/home/workspace/jenkins"
  • 1

改目录权限

chown jenkins /home/workspace/jenkins
chgrp jenkins /home/workspace/jenkins
  • 1
  • 2

重启

service jenkins restart
  • 1

解锁 Jenkins

cat /home/workspace/jenkins/secrets/initialAdminPassword
  • 1

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

注意:

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




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.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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

sudo vim /etc/init.d/jenkins
  • 1

找到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
"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

修改

candidates="
/usr/lib/jvm/JavaSE-1.8.0_192/bin/java
"
  • 1
  • 2
  • 3

提示:

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

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




Jenkins 管理员 admin 密码找回

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

cd /var/lib/jenkins
  • 1

2、打开配置文件

vim config.xml 
  • 1

注意:

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

打开后把以下内容删除:

<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
	<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
	<disableSignup>true</disableSignup>
	<enableCaptcha>false</enableCaptcha>
</securityRealm>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

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

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

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

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

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

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

<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
	<disableSignup>false</disableSignup>
	<enableCaptcha>false</enableCaptcha>
</securityRealm>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

改为

<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
	<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
	<disableSignup>true</disableSignup>
	<enableCaptcha>false</enableCaptcha>
</securityRealm>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

启动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
  • 1

并修改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
  • 1
  • 2
  • 3
  • 4
  • 5

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
  • 1
  • 2
  • 3
  • 4

给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) 权力越大,责任越大。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

删除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
  • 1
  • 2
  • 3

查看要删除的文件夹: 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文件作如下修改:

<build>
	<finalName>当前项目名称</finalName>

	<plugins>
		<!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.1</version>
			<configuration>
				<!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中不能使用低版本jdk中不支持的语法),会存在target不同于source的情况 -->
				<source>1.8</source><!-- 源代码使用的JDK版本 -->
				<target>1.8</target><!-- 需要生成的目标class文件的编译版本 -->
				<encoding>UTF-8</encoding><!-- 字符集编码 -->
			</configuration>
		</plugin>
		
	</plugins>
</build>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19


异常二

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

解决方案:

systemctl daemon-reload
  • 1


异常二

严重: 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.<init>(Socket.java:434)
	at java.net.Socket.<init>(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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

解决方案:

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



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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/495109
推荐阅读
相关标签
  

闽ICP备14008679号