CentOS7搭建Jenkins

CentOS7下yum安装Jenkins

在线下载太慢,估摸着得一个多小时,因此采用本文的方式?

清华大学镜像源:

1
https://mirrors.tuna.tsinghua.edu.cn/jenkins/

使用redhat-stable/中的一个版本即可

上传rpm安装包并安装

使用rpm命令安装rpm安装包:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
rpm -ivh jenkins-2.190.2-1.1.noarch.rpm

# 查看jenkins目录
whereis jenkins
# 以下是安装目录
jenkins: /usr/lib/jenkins

## WAR包
/usr/lib/jenkins/jenkins.war
## 配置文件
/etc/sysconfig/jenkins
## 默认的JENKINS_HOME目录
/var/lib/jenkins/
## Jenkins日志文件
/var/log/jenkins/jenkins.log

常用命令

1.启动命令

1
sudo service jenkins start

2.更改默认端口

1
2
3
4
vim /etc/sysconfig/jenkins

# 将端口修改为8888
JENKINS_PORT="8888"

访问url;8888端口

/var/lib/jenkins/secrets/initialAdminPassword文件中复制密码并粘贴,点击继续。

jenkins_01-2019111322373

搭建自动化部署环境

安装插件

  • Deploy to container
  • GIT

安装git

1
2
3
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

wget https://github.com/git/git/archive/v2.3.0.zip

全局工具配置

1、JDK

不自动安装,JAVA_HOME示例:/usr/local/install/java/jdk1.8.0_14/

2、Git

Path to Git executable示例:/usr/bin/git

3、Maven

MAVEN_HOME示例:/usr/share/maven

问题

问题一

如果访问url:8888端口,卡在Please wait while Jenkins is getting ready to work …页面,稍等5~6分钟即可。

问题二

修改升级的站点:

1
2
3
4
5
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

或者

http://mirror.esuni.jp/jenkins/updates/update-center.json

问题三

无法获取”/opt/apache-tomcat-8.5.23/webapps/lx-platform/“ 的文件状态(stat): 权限不够
Build step ‘Execute shell’ marked build as failure

解决办法:

1
2
vi /etc/sysconfig/jenkins
# 找到JENKINS_USER发现默认用户jenkins,修改为root

修改默认用户权限:

1
2
3
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins/
chown -R root:root /var/log/jenkins

重启jenkins服务。

1
2
3
4
5

systemctl restart jenkins

# 还可以给jenkins用户添加相应的权限
chown -R jenkins <path>

问题四:插件源改为国内

下面标注的配置文件地址,都是默认的地址

修改插件更新中心地址,加快查找插件
插件更新配置文件:/var/lib/jenkins/hudson.model.UpdateCenter.xml
修改urlhttps://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,这个是清华大学的镜像,也可以修改为其他的国内镜像

修改默认插件下载地址,解决插件下载慢的问题
插件下载地址配置文件:/var/lib/jenkins/updates/default.json,这个文件一开始不存在,得先做第一步(修改插件更新中心地址),然后启动服务,访问一次服务后,这个文件就会有了
修改方式是将默认插件下载地址都改成国内的
使用下面的命令可直接修改

1
sudo sed -i 's#updates.jenkins.io/download/plugins#mirrors.tuna.tsinghua.edu.cn/jenkins/plugins#g' default.json && sudo sed -i 's#www.google.com#www.baidu.com#g' default.json

问题五:原有jenkins项目插件迁移

一般jenkins的插件在/var/lib/jenkins/plugins这个位置,拷贝到目标机器的这个位置,然后重启jenkins服务即可。
拷贝项目:/var/lib/jenkins/workspace,重启服务。

问题六:Jenkins出现一个错误 无法连接到Jenkins如何解决

1、 关闭jenkins

1
service jenkins stop

2、修改config.xml(最好在修改之前备份一下这个文件,以防止以后万一还需要这个版本)

1
2
3
4
vim /var/lib/jenkins/config.xml

# 修改第10行 <useSecurity>true</useSecurity> 修改为:<useSecurity>false</useSecurity>
#删除第11-17行 <authorizationStrategy …/>和<securityRealm …>到</securityRealm>
1
2
3
4
5
6
  <!--例如删除以下内容:-->
<authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy"/>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>true</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>

3、 启动jenkins

1
service jenkins start

问题七:不安全的Jenkins允许网络上的任何人以你的身份访问程序。考虑至少启用身份验证来阻止滥用。

参考资料:https://blog.csdn.net/wangmuming/article/details/22926025

问题八:安装插件 java.nio.file.AccessDeniedException: /var/lib/jenkins/plugins/workflow-step-api.jpi.tmp

1

chmod 777 /var/lib/jenkins/plugins

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
然后重启,再去下载插件,问题不再存在。


### 问题八:jenkins 使用maven编译java项目报错:
>ERROR: Failed to parse POMs
java.io.IOException: Cannot run program "/usr/local/install/java/jdk1.8.0_141/bin/java" (in directory "/var/lib/jenkins/workspace/weyoung-pay"): error=13, Permission denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at hudson.Proc$LocalProc.<init>(Proc.java:250)
at hudson.Proc$LocalProc.<init>(Proc.java:219)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:937)
at hudson.Launcher$ProcStarter.start(Launcher.java:455)
at hudson.maven.AbstractMavenProcessFactory.newProcess(AbstractMavenProcessFactory.java:280)
at hudson.maven.ProcessCache.get(ProcessCache.java:236)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:804)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)
at hudson.model.Run.execute(Run.java:1853)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:427)
Caused by: java.io.IOException: error=13, Permission denied
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 12 more
Finished: FAILURE

解决办法:
将jenkins默认用户改为root或其他

//修改用户为root或其他
vim /etc/sysconfig/jenkins

JENKINS_USER=”jenkins” 这里面用户直接改为root;

保存后重启jenkins服务

service jenkins restart

1
2
3
4
5
6
7
8

### 问题九、解决Jenkins 运行shell脚本是报错,sh :command not found

解决方案就是在脚本前加上这段代码即可source /etc/profile;

或者:
在服务器中执行

echo $PATH

打印已经配置的环境变量,

#如/usr/share/maven/bin:/usr/local/install/node-v12.14.0-linux-x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/install/java/jdk1.8.0_141//bin:/usr/local/install/java/jdk1.8.0_141//jre/bin:/root/bin

1
2
3

系统配置-》全局属性-》环境变量增加

键:PATH
值:/usr/share/maven/bin:/usr/local/install/node-v12.14.0-linux-x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/install/java/jdk1.8.0_141//bin:/usr/local/install/java/jdk1.8.0_141//jre/bin:/root/bin

1
2
3

### 问题十、解决内存溢出

vim /etc/sysconfig/jenkins
修改 JENKINS_JAVA_OPTIONS=”-Djava.awt.headless=true”为:




## 相关文档

[jenkins构建job后自动发钉钉消息通知](https://blog.csdn.net/liujingqiu/article/details/87977396)