手把手教你在Linux下搭建Jenkins实现自动部署

Jenkins是一个开源的自动化服务器,可以用来轻松地建立持续集成和持续交付(CI/CD)管道。

持续集成(CI)是一种DevOps实践,在这种实践中,团队成员定期将他们的代码更改提交到版本控制存储库,然后运行自动化的构建和测试。持续交付(CD)是一系列实践,在这些实践中,代码变更被自动构建、测试并部署到生产环境中。

Jenkins可以作为独立应用程序安装,也可以作为Java servlet容器(如Apache Tomcat)中的servlet安装,也可以作为Docker容器运行。

本文介绍了如何在Ubuntu 20.04上安装Jenkins作为一个独立的服务。

安装Java

Jenkins是一个Java应用程序,需要在系统上安装Java 8或更高版本。我们将安装OpenJDK 11, Java平台的开源实现。

以root用户或具有sudo权限的用户或root用户运行以下命令来安装OpenJDK 11:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update  

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install openjdk-11-jdk 

安装完成后,请检查Java版本:

linuxmi@linuxmi:~/www.linuxmi.com$ java -version 

输出应如下所示:

openjdk version "11.0.8" 2020-07-14  

OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)  

OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing) 

手把手教你在Linux下搭建Jenkins实现自动部署

安装Jenkins

在Ubuntu上安装Jenkins相对简单。我们将启用Jenkins APT存储库,导入存储库GPG密钥,并安装Jenkins包。

使用以下wget命令导入Jenkins存储库的GPG键:

linuxmi@linuxmi:~/www.linuxmi.com$ wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - 

接下来,使用以下命令将Jenkins存储库添加到系统中:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' 

手把手教你在Linux下搭建Jenkins实现自动部署

启用Jenkins存储库后,通过输入以下命令更新apt包列表并安装最新版本的Jenkins:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update  
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install jenkins 

手把手教你在Linux下搭建Jenkins实现自动部署

如果你得到一个错误消息说:

W: GPG 错误:https://pkg.jenkins.io/debian-stable binary/ Release: 由于没有公钥,无法验证下列签名:NO_PUBKEY 9B7D32F2D50582E6

E: 仓库 “http://pkg.jenkins.io/debian-stable binary/ Release” 没有数字签名。

手把手教你在Linux下搭建Jenkins实现自动部署

解决方法

导入密钥:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9B7D32F2D50582E6 

手把手教你在Linux下搭建Jenkins实现自动部署

然后再次运行:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update  

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install jenkins 

Jenkins服务将在安装过程完成后自动启动。您可以通过如下命令来验证:

linuxmi@linuxmi:~/www.linuxmi.com$ systemctl status jenkins 

你应该看到这样的东西:

● jenkins.service - LSB: Start Jenkins at boot time

Loaded: loaded (/etc/init.d/jenkins; generated)  


Active: active (exited) since Fri 2020-07-24 16:47:34 CST; 1min 27s ago  


Docs: man:systemd-sysv-generator(8)  

Tasks: 0 (limit: 4624) 

Memory: 0B  


CGroup: /system.slice/jenkins.service  
7月 24 16:47:32 linuxmi systemd[1]: Starting LSB: Start Jenkins at boot time...  


7月 24 16:47:32 linuxmi jenkins[33922]: Correct java version found  


7月 24 16:47:32 linuxmi jenkins[33922]: * Starting Jenkins Automation Server j>  

7月 24 16:47:33 linuxmi su[33976]: (to jenkins) root on none  


7月 24 16:47:33 linuxmi su[33976]: pam_unix(su-l:session): session opened for u>  


7月 24 16:47:33 linuxmi su[33976]: pam_unix(su-l:session): session closed for u>  


7月 24 16:47:34 linuxmi jenkins[33922]: ...done.  

7月 24 16:47:34 linuxmi systemd[1]: Started LSB: Start Jenkins at boot time. 

手把手教你在Linux下搭建Jenkins实现自动部署

也可以查看进程信息。

linuxmi@linuxmi:~/www.linuxmi.com$ ps -ef |grep jenkins 

调整防火墙

如果你在一个被防火墙保护的远程Ubuntu服务器上安装Jenkins,你需要打开端口8080。

Jenkins 默认端口是8080,在配置文件/etc/default/jenkins 中定义。

HTTP_PORT=8080

本文修改为 9090

通常,您希望只允许从特定的IP地址或IP范围访问Jenkins服务器。例如,要仅允许来自“192.168.135.0/24”子网的连接,可以运行以下命令:

sudo ufw allow proto tcp from 192.168.135.0/24 to any port 9090 

如果你需要允许访问从任何地方运行:

sudo ufw allow 9090

设置Jenkins

要安装新的Jenkins安装,请打开浏览器,输入域或IP地址,然后输入端口9090,http://192.168.150.135:9090

手把手教你在Linux下搭建Jenkins实现自动部署

将显示如下页面,提示您输入安装过程中创建的管理员密码:

解锁 Jenkins

为了确保管理员安全地安装 Jenkins,密码已写入到日志中(不知道在哪里?)该文件在服务器上:

/var/lib/jenkins/secrets/initialAdminPassword 

请从本地复制密码并粘贴到下面。

使用cat在终端上显示密码:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword 

你应该看到一个32字符长的字母数字密码,如下所示:

b55aa5df790f41688125c182193aecfe

手把手教你在Linux下搭建Jenkins实现自动部署

从终端复制密码,粘贴到“管理员密码”域中,点击“继续”。

在下一个屏幕上,安装向导将询问您是要安装推荐的插件还是选择特定的插件。

手把手教你在Linux下搭建Jenkins实现自动部署

点击“安装推荐的插件”框,安装过程将立即开始。

手把手教你在Linux下搭建Jenkins实现自动部署

一旦插件安装完毕,系统将提示您设置第一个管理员用户。填写所有需要的信息,然后点击“保存并完成”。

手把手教你在Linux下搭建Jenkins实现自动部署

下一页将要求您为Jenkins实例设置URL。该字段将使用自动生成的URL填充。

手把手教你在Linux下搭建Jenkins实现自动部署

通过单击“保存并完成”按钮来确认URL,设置过程将完成。

手把手教你在Linux下搭建Jenkins实现自动部署

单击重启开始使用Jenkins按钮,您将被重定向到以您在前面的步骤之一中创建的admin用户身份登录的Jenkins仪表板。

手把手教你在Linux下搭建Jenkins实现自动部署

此时,您已经成功地在服务器上安装了Jenkins。

手把手教你在Linux下搭建Jenkins实现自动部署

总结