参考:https://www.jenkins.io/doc/book/installing/linux/
Jenkins通常作为一个独立的应用程序在其自己的流程中运行, 内置Java servlet 容器/应用程序服务器(Jetty)。
Jenkins也可以运行在不同的Java servlet容器((如Apache Tomcat 或 GlassFish))中作为servlet运行,但我们一般不会去使用。
1. 系统要求
最低推荐配置:
- 256MB可用内存
- 1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB)
为小团队推荐的硬件配置:
- 1GB+可用内存
- 50 GB+ 可用磁盘空间
2. Jenkins 安装
// 安装长期支持版本
$ sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
$ echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install jenkins
// 安装每周发布的新版本
$ sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian/jenkins.io-2023.key
$ echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install jenkins
软件包安装将会:
- 将 Jenkins 设置为启动时启动的守护进程。运行systemctl cat jenkins可以查看更多详细信息。
- 创建一个“jenkins”用户来运行此服务。
- 将控制台日志输出直接到systemd-journald。使用 journalctl -u jenkins.service 查看它的日志信息。
- 填充/lib/systemd/system/jenkins.service启动的配置参数,例如JENKINS_HOME
- 设置Jenkins监听8080端口,使用浏览器访问该端口即可开始配置。
如果由于端口被占用导致 Jenkins 启动失败,可以修改为其他端口:
$ systemctl edit jenkins
...
[Service]
Environment="JENKINS_PORT=8081"
...
3. 安装 Java
Jenkins 需要 Java 才能运行,但并非所有 Linux 发行版都默认包含 Java。此外,并非所有 Java 版本都与 Jenkins 兼容。
您可以使用多种 Java 实现。OpenJDK 是目前最流行的,我们将在这里使用它。
$ sudo apt update
$ sudo apt install fontconfig openjdk-17-jre
$ java -version
openjdk version "17.0.14" 2025-01-21
OpenJDK Runtime Environment (build 17.0.14+7-Ubuntu-124.04)
OpenJDK 64-Bit Server VM (build 17.0.14+7-Ubuntu-124.04, mixed mode, sharing)
4. 启动服务
$ systemctl start jenkins
$ systemctl enable jenkins
$ systemctl status jenkins
5. 初始化配置
当您第一次访问新的 Jenkins 控制器时,系统会要求您使用自动生成的密码解锁它。
// 浏览器:http://IP:8080
$ cat /var/lib/jenkins/secrets/initialAdminPassword
9af05cdc2c094417bfa07d38f6a04d60
// 安装建议的插件
如果第一次安装不成功,可以再次尝试,多次尝试不成功的话,可以先跳过,初始化完成后,再次根据名字手工安装。
// 设置用户名密码
// 实例配置