博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 环境下搭建 Jenkins(Hudson)平台
阅读量:4599 次
发布时间:2019-06-09

本文共 2867 字,大约阅读时间需要 9 分钟。

安装jenkins:

安装 jenkins 有两种方式:
安装方式一: 

[java] 
 
 
  1. sudo java -jar jenkins.war –httpPort=18080 –ajp13Port=18009  

但是很多时候我们是使用SSH方式到目标机器上的,放我们关闭SSH连接时,这个命令也会被中断,jenkins服务会被终止,我们不可能一直保持这SSH连接,怎么办?可以把这行命令写成 shell 脚本,然后使用 nohup sh jenkins.sh &

命令启动这个脚本,这样jenkins就能正常提供服务了。
安装方式二:安装 RPM包
为了能够使用jenkins库,首先需要导入jenkins库的 key:

[java] 
 
 
  1. sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm –import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key  

安装软件(以jenkins-x.x.x.rpm为例):yum install jenkins-x.x.x.rpm

   删除软件:yum remove jenkins-x.x.x.rpm或者yum erase jenkins-x.x.x.rpm
   升级软件:yum upgrade jenkins或者yum update jenkins
   查询信息:yum info jenkins
开启服务(关闭,重启):  

[java] 
 
 
  1. sudo service jenkins start|stop|restart  

检查jenkins是否安装完成: localhost:8080 (默认是8080 端口,如果采用安装方式一,那么就需要指定的端口)

运行job时遇到的问题:
 mvn:command not found
遇到的问题: 不能使用MVN命令;
排查过程:
①Jenkins 默认创建进程,启动任务的用户名是 jenkins,使用root权限查看passwd,可以看到这个用户默认情况下 ssh 为false,也就是说这个用户默认情况下是不能使用ssh进行登录的,除非修改 passwd中相应字段为 bash,然后sourse;
jenkins:x:500:500:mengqc:/home/jenkins:/bin/fasle
passwd文件的格式:  注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
②默认情况下 Jenkins 的安装目录是 /var/lib/jenkins/ ,项目根目录是 /var/lib/jenkins/jobs/workspace

从目录上看,就知道这个是需要 root 权限才能执行一些命令,但是我们通过界面 执行一些命令使用的是admin用户,纵使我们在 根目录下 能适应mvn命令,但是问题也不能解决。

还有一个简单的测试Maven 是否加入到了环境变量中的方法,在执行mvn命令时,填写maven安装的绝对路径,如果能够执行,说明不是权限的问题,而是环境变量的问题。

 

解决方案一:

①安装 ssh slave 插件;
②启动slave 服务;
③jenkins-系统管理-节点管理:重新设置 slave机器的 Remote FS root 为 /home/admin/xxx
(主要是添加了workspace的目录) $ITEM_ROOTDIR
④把master的节点数设为0,这样默认情况下就会使用 slave节点。
问题:
如果修改 工作目录(Remote FS root),可能会遇到:

[java] 
 
 
  1. “main”java.lang.NoclassDefFoundError:hudson/maven/agent/Main  

原因:我们修改了slave的工作目录,但是slave服务没有重启导致;

解决方法:使用我们的脚本 对slave进行 重启操作。
解决方案二:

 
在 /home/admin/目录下新建一个工作目录,然后将 /var/lib/jenkins目录设置成一个跳转链接 ,链接到admin目录下 [sudo ln -s /home/admin/xxx/  /var/lib/jenkins] ,然后将/var/lib/jenkins 目录下的文件 mv 到/home/admin/xxx/ 目录下。
mvn和一些基本的命令是可以运行了,但是运行shell脚本时还是没有权限,因为 新建的这个跳转连接user=root ,group=root,并且对这个链接 使用chown/chgrp 都是没有效果的,执行一些操作命令是还是没有权限;
 
 
解决方案三:修改默认 jenkins 用户为 admin
①安装jenkins 
Java代码  (我们一般使用的是admin权限)
[java] 
 
 
  1. sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo    
  2. sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key    
  3. sudo yum install jenkins    
  4. rpm -ql jenkins    
②. 配置jenkins 
Java代码  
// edit JENKINS_PORT, JENKINS_USER  
sudo vi /etc/sysconfig/jenkins  (把 JENKINS_USER 设置为 admin)
③. 修改jenkins权限(如果修改JENKINS_USER情况下) 
Java代码  
[java] 
 
 
  1. ####  
  2. sudo chown -R admin /usr/lib/jenkins    
  3. sudo chgrp -R admin /usr/lib/jenkins   
  4. ####  
  5. sudo chown -R admin /var/log/jenkins   
  6. sudo chgrp -R admin /var/log/jenkins    
  7. sudo chown -R admin /var/lib/jenkins    
  8. sudo chgrp -R admin /var/lib/jenkins    
  9. sudo chown -R admin /var/cache/jenkins   
  10. sudo chgrp -R admin /var/cache/jenkins (这个如果不改,会出现404)  
④. 启动jenkins 
Java代码  
sudo /sbin/service jenkins start 
或者  sudo service jenkins start

转载于:https://www.cnblogs.com/wishlix/p/8024461.html

你可能感兴趣的文章
React(v16.8.4)生命周期详解
查看>>
一般处理应用页中绑定方法代码段
查看>>
React组件Components的两种表示方式
查看>>
无限鼠标没反应了
查看>>
CSU - 1356 Catch(dfs染色两种写法,和hdu4751比较)
查看>>
zabbix监控php-fpm的性能
查看>>
温故知新 div + css笔记
查看>>
针对降质模型中的模糊SR
查看>>
ios开发学习笔记001-C语言基础知识
查看>>
POJ1142Smith Numbers一道简单的数学题
查看>>
UIButton(改变Title和image位置)
查看>>
Linux-使用之vim编译安装出现的问题
查看>>
codevs 3314 魔法森林
查看>>
mac os x mysql 出现./mysql: unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABL 问题...
查看>>
桐桐的贸易--WA
查看>>
历届试题 高僧斗法
查看>>
linux命令系列 stat & touch
查看>>
[Tools] Webstorm Github的配置与使用
查看>>
鬼谷子绝学
查看>>
Mongodb 笔记04 特殊索引和集合、聚合、应用程序设计
查看>>