Linux下安装Jenkins及部署详细说明
Jenkins 安装与部署基本环境概述(环境都是目前最新的,关于相关环境配置,请参考我的其相关的博客进行!):操作系统:linux-7.5软件01:jdk-1.8软件02:tomcat-9.0软件03:maven-3.5.4软件04:jenkins-2.141jenkins常用的有两种安装方式安装方式一:直接下载war包jenkins.war下载地址https://jen...
分享知识 传递快乐
基本环境概述(环境都是目前最新的,关于相关环境配置,请参考我的其相关的博客进行!):
操作系统: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
注意:
操作前先备份,不然文件丢失或损坏不要后悔哦。
打开后把以下内容删除:
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>true</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
修改完成后保存,并重启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>
改为
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>true</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
启动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文件作如下修改:
<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>
异常二
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.<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
解决方案:
在/etc/profile
文件中配置Jenkins全局的环境变量,重启服务器即可。
构建工程时的文件地址
/home/workspace/jenkins/jobs/spring-ssh-task/builds
更多推荐
所有评论(0)