http://pkg.jenkins-ci.org/debian/
1、加用户到sudoers 方法
我用的是redhat5.4,在一般用户下执行sudo命令提示llhtiger is not in the sudoers file. This incident will be reported.解决方法:
一、$whereis sudoers -------找出文件所在的位置,默认都是/etc/sudoers
二、 #chmod u+w /etc/sudoers
三、vim /etc/sudoers 编辑文件,在root ALL=(ALL)ALL行下添加XXX ALL=(ALL)ALL,XXX为你的用户名。添加方法:找到root行,按下”i“键进入编辑模式添加即可!编辑好后esc键进入一般模式,“:wq"保存退出!
最后, #chmod u-w /etc/sudoers 回到文件的原权限!
2、将Then add the following entry in your /etc/apt/sources.list:
deb http://pkg.jenkins-ci.org/debian binary/
sudo chmod a+w /etc/apt/sources.list
将deb http://pkg.jenkins-ci.org/debian binary/ 填进去
3、执行首行 的内容
检测是不是jenkins 用户:
tvos_code_sync@Amlogic:/opt$ ps -ef|grep jenkins
jenkins 56488 1 0 10:56 ? 00:00:00 /usr/bin/daemon --name=jenkins --inherit --env=JENKINS_HOME=/var/lib/jenkins --output=/var/log/jenkins/jenkins.log --pidfile=/var/run/jenkins/jenkins.pid -- /usr/bin/java -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1
jenkins 56490 56488 17 10:56 ? 00:00:50 /usr/bin/java -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1
1011 56690 11059 0 11:01 pts/11 00:00:00 grep --color=auto jenkins
tvos_code_sync@Amlogic:/opt$
Hit http://us.archive.ubuntu.com precise-updates/restricted Translation-en
Hit http://us.archive.ubuntu.com precise-updates/universe Translation-en
Hit http://us.archive.ubuntu.com precise-backports/main Translation-en
Hit http://us.archive.ubuntu.com precise-backports/multiverse Translation-en
Hit http://us.archive.ubuntu.com precise-backports/restricted Translation-en
Hit http://us.archive.ubuntu.com precise-backports/universe Translation-en
Fetched 3,231 kB in 1min 2s (51.4 kB/s)
W: Failed to fetch http://ppa.launchpad.net/sun-java-community-team/sun-java6/ubuntu/dists/precise/main/source/Sources 404 Not Found
W: Failed to fetch http://ppa.launchpad.net/sun-java-community-team/sun-java6/ubuntu/dists/precise/main/binary-amd64/Packages 404 Not Found
W: Failed to fetch http://ppa.launchpad.net/sun-java-community-team/sun-java6/ubuntu/dists/precise/main/binary-i386/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
这些警告属于正常情况
安装 jenkins 有两种方式:
安装方式一:
- sudo java -jar jenkins.war –httpPort=18080 –ajp13Port=18009
sudo java -jar jenkins.war –httpPort=18080 –ajp13Port=18009
但是很多时候我们是使用SSH方式到目标机器上的,放我们关闭SSH连接时,这个命令也会被中断,jenkins服务会被终止,我们不可能一直保持这SSH连接,怎么办?可以把这行命令写成 shell 脚本,然后使用 nohup sh jenkins.sh &
命令启动这个脚本,这样jenkins就能正常提供服务了。
安装方式二:安装 RPM包
为了能够使用jenkins库,首先需要导入jenkins库的 key:
- 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
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
开启服务(关闭,重启):
- sudo service jenkins start|stop|restart
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),可能会遇到:
- “main”java.lang.NoclassDefFoundError:hudson/maven/agent/Main
“main”java.lang.NoclassDefFoundError:hudson/maven/agent/Main
原因:我们修改了slave的工作目录,但是slave服务没有重启导致;解决方法:使用我们的脚本 对slave进行 重启操作。
解决方案二:
mvn和一些基本的命令是可以运行了,但是运行shell脚本时还是没有权限,因为 新建的这个跳转连接user=root ,group=root,并且对这个链接 使用chown/chgrp 都是没有效果的,执行一些操作命令是还是没有权限;
①安装jenkins
Java代码 (我们一般使用的是admin权限)
- 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
- sudo yum install jenkins
- rpm -ql jenkins
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
sudo yum install jenkins
rpm -ql jenkins
②. 配置jenkins
Java代码
// edit JENKINS_PORT, JENKINS_USER
sudo vi /etc/sysconfig/jenkins (把 JENKINS_USER 设置为 admin)
③. 修改jenkins权限(如果修改JENKINS_USER情况下)
Java代码
- ####
- sudo chown -R admin /usr/lib/jenkins
- sudo chgrp -R admin /usr/lib/jenkins
- ####
- sudo chown -R admin /var/log/jenkins
- sudo chgrp -R admin /var/log/jenkins
- sudo chown -R admin /var/lib/jenkins
- sudo chgrp -R admin /var/lib/jenkins
- sudo chown -R admin /var/cache/jenkins
- sudo chgrp -R admin /var/cache/jenkins (这个如果不改,会出现404)
####
sudo chown -R admin /usr/lib/jenkins
sudo chgrp -R admin /usr/lib/jenkins
####
sudo chown -R admin /var/log/jenkins
sudo chgrp -R admin /var/log/jenkins
sudo chown -R admin /var/lib/jenkins
sudo chgrp -R admin /var/lib/jenkins
sudo chown -R admin /var/cache/jenkins
sudo chgrp -R admin /var/cache/jenkins (这个如果不改,会出现404)
④. 启动jenkins
Java代码
sudo /sbin/service jenkins start
或者 sudo service jenkins start