文章目录
- 一、安装JDK和Maven
- 二、提前开启防火墙
- 二、通过yum安装Jenkins
-
- [1、添加 Jenkins YUM 源和公钥](#1、添加 Jenkins YUM 源和公钥)
- [2、安装 Jenkins](#2、安装 Jenkins)
- [3、启动 Jenkins](#3、启动 Jenkins)
- [4、检查 Jenkins 状态](#4、检查 Jenkins 状态)
- [5、访问 Jenkins Web UI](#5、访问 Jenkins Web UI)
- 可能遇到的问题
- 三、通过导入war包启动Jenkins
- 四、docker启动Jenkins详细教程
- 1、配置的整体过程
- 2、可能遇到的问题
-
- [runc did not terminate successfully](#runc did not terminate successfully)
- [driver failed programming external connectivity on endpoint xxx](#driver failed programming external connectivity on endpoint xxx)
- [logs日志中存在permission denied问题](#logs日志中存在permission denied问题)
- 启动成功,日志也没问题,但是就是无法访问
- 其他
-
- [linux 清除卸载jenkins](#linux 清除卸载jenkins)
- 代码托管平台gitlab
一、安装JDK和Maven
- linux安装Java(JDK)和Maven
- 截止2024年,至少使用Java11才能运行最新的Jenkins。不建议用旧版本的Jenkins,插件问题不好解决。
二、提前开启防火墙
- 开启端口8080,同时刷新防火墙配置
shell
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
二、通过yum安装Jenkins
- 默认安装(可执行文件):/usr/bin/
- 所有数据:/var/lib/jenkins/
- 项目数据的路径:/var/lib/jenkins/jobs/
1、添加 Jenkins YUM 源和公钥
shell
#配置Jenkins yum源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo;
#添加公钥
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key;
2、安装 Jenkins
shell
sudo yum install jenkins
3、启动 Jenkins
shell
#刷新服务
sudo systemctl daemon-reload
#设置开机自启动
sudo systemctl enable jenkins
#启动Jenkins
sudo systemctl start jenkins
4、检查 Jenkins 状态
shell
sudo systemctl status jenkins
5、访问 Jenkins Web UI
shell
http://ip:8080
可能遇到的问题
三、通过导入war包启动Jenkins
-
把 jenkins.war 包放在当前目录下,直接运行下面的命令即可启动
shelljava -jar jenkins.war -
Jenkins的所有数据存储路径为:/root/.jenkins/
-
Jenkins的项目路径为:/root/.jenkins/workspace/
四、docker启动Jenkins详细教程
1、配置的整体过程
-
测试是否成功,能访问会出来html
shellcurl 192.168.220.130:9001 -
查找jenkins安装路径
shellrpm -ql jenkins
2、可能遇到的问题
runc did not terminate successfully
- 报错原文
txt
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v2.task/moby/49a548850cf476caf1bdfe26b0925d59511de8723fb339971764bf9ebfd62ff4/log.json: no such file or directory): runc did not terminate successfully: exit status 127: unknown
Error: failed to start containers: 49a548850cf4
driver failed programming external connectivity on endpoint xxx
- 报错原文
txt
Error response from daemon: driver failed programming external connectivity on endpoint jenkins (7b8b8bb2f859de1a256527357b4c7e7327edf63ddcc18abfaea2a0aa9d04b282): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0: iptables: No chain/target/match by that name.
-
解决方式
-
Docker: driver failed programming external connectivity on endpoint xxx 问题分析及解决
-
报错原因为防火墙策略被修改,导致docker出问题,这时重启一下docker即可
shellsystemctl restart docker
logs日志中存在permission denied问题
-
报错原文
txttouch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions? -
把启动命令改成
shelldocker run -di -u root --privileged=true --name=jenkins -p 9001:8080 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
启动成功,日志也没问题,但是就是无法访问
- 看看docker的端口是不是8080,不懂为什么,不是8080就一定无法访问