安装 Jenkins
Jenkins 通常作为一个独立的应用程序在其自己的流程中运行,内置 Java servlet 容器/应用程序服务器(Jetty)
Jenkins 也可以运行在不同的 Java servlet 容器(如 Apache Tomcat 或 GlassFish)中作为 servlet 运行。
注意:尽管此教程重点关注 Jenkins 的本地安装,但此内容也可用于帮助在生产环境中设置 Jenkins。
系统要求
最低推荐配置:
- 256 MB可用内存
- 1GB 可用磁盘空间(作为一个 Docker 容器运行 jenkins 的话推荐 10GB)
为小团队推荐的硬件配置:
- 1 GB+ 可用内存
- 50 GB+ 可用磁盘空间
软件配置:
- Java 8 –无论是 Java 运行时环境(JRE) 还是 Java 开发工具包(JDK) 都可以
注意:如果将 Jenkins 作为容器运行,这不是必需的。
安装环境
操作系统:CentOS 7.5
软件:JDK-14, Tomcat-9.0.34, Jenkins
安装步骤
安装 JDK
由于 Jenkins 是基于 Java 开发的,安装前确认操作系统已经安装了JDK
解压 jdk 文件
1
2mkdir /usr/local/java
tar zxvf jdk-14_linux-x64_bin.tar.gz -C /usr/local/java配置jdk环境变量
1
2
3
4
5echo '#!/bin/bash' > /etc/profile.d/java.sh
echo 'export JAVA_HOME=/usr/local/java/jdk-14/' >> /etc/profile.d/java.sh
echo 'export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib' >> /etc/profile.d/java.sh
echo 'export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin' >> /etc/profile.d/java.sh
source /etc/profile.d/java.sh验证 Java 安装
1
2
3
4# java -version
java version "14" 2020-03-17
Java(TM) SE Runtime Environment (build 14+36-1461)
Java HotSpot(TM) 64-Bit Server VM (build 14+36-1461, mixed mode, sharing)
安装 Tomcat
解压 Tomcat 软件包
1
2tar -zxvf apache-tomcat-9.0.34.tar.gz
mv apache-tomcat-9.0.34 /usr/local/tomcat为 Tomcat 设置环境变量,创建 /usr/local/tomcat/bin/setenv.sh 文件,内容如下
1
2
3
4
5
6cat > /usr/local/tomcat/bin/setenv.sh <<EOF
#!/bin/bash
export JAVA_HOME=/usr/local/java/jdk1.8.0_202
export CATALINA_PID=\$CATALINA_BASE/tomcat.pid
EOF编写 Systemd 配置文件 /usr/lib/systemd/system/tomcat.service,内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19cat > /usr/lib/systemd/system/tomcat.service <<EOF
[Unit]
Description=tomcat Web Server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment='JAVA_HOME=/usr/local/java/jdk1.8.0_202'
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP \$MAINPID
ExecStop=/bin/kill -s QUIT \$MAINPID
PrivateTmp=true
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
EOF创建 Tomcat 服务启动用于
1
useradd -s /sbin/nologin tomcat
配置开机启动与启动 Tomcat
1
systemctl enable --now tomcat
开始安装 Jenkins
将从官网下载的 jenkins.war 包放入 Tomcat 下面的 webapps 目录下
1
mv jenkins.war /usr/local/tomcat/webapps/
重启 Tomcat
1
systemctl restart tomcat
tomcat 会解压 war 包,生成一个
jenkins
文件夹,而且在 tomcat 家目录下生成一个.jenkins
的文件夹.如下:1
2
3
4
5
6# ls
docs examples host-manager jenkins jenkins.war manager ROOT
# ls -a /home/tomcat/
. .bash_history .bash_profile .cache .cshrc .jenkins .pip .pydistutils.cfg .ssh .vim .viminfo .vimrc
.. .bash_logout .bashrc .config .java .oneinstack .pki .rnd .tcshrc .vim-fuf-data .vim_old .vimrc_old在浏览器上输出 IP地址 (
http://ip:端口/jenkins
) 即可访问 Jenkins。剩下的安装步骤请参考提示进行安装即可(就和 Docker 运行 Jenkins 一样)
启动异常问题汇总
问题 1:
1
2
3
4
5
6
7
8
9
10
11
12
13AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://jenkins.io/redirect/troubleshooting/java.awt.headless
java.lang.NullPointerException
at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:372)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:317)
at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
......解决方法:
1
yum install -y fontconfig