赞
踩
基本环境概述(环境都是目前最新的,关于相关环境配置,请参考我的其相关的博客进行!):
操作系统:linux-7.5
软件01:jdk-1.8
软件02:tomcat-9.0
软件03:maven-3.5.4
软件04:jenkins-2.141
下载地址https://jenkins.io/download
1.1、可以把war包直接部署到servlet容器中,如tomcat。
1.2、可以使用命令直接运行war包,java -jar jenkins.war
安装
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默认主目录是: /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就会有这个文件。
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即可。
如果要使用Maven构建项目,首先要先安装“Maven Integration plugin”插件。此时在新建任务中就有“构建一个maven项目”选项。
如果要使用Svn检索项目,首先要先安装“Subversion Plug-in”插件。
附:
安装Deploy to container(自动化部署插件)
安装Maven Integration(Maven集成插件)
安装Publish Over SSH(SSH远程连接插件)
安装Deploy Plugin (远程发布插件)
在全局工具配置文件下需要做以下配置: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以内的名字显示出来
异常一
[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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。