Jenkins 在Ubuntu上安装

Jenkins 在Ubuntu上安装

Jenkins简介

Jenkins是一个免费的自动化服务器。它帮助自动化与构建、部署、测试、持续交付和持续集成相关的软件开发要素。它是一个基于服务器的系统,运行在包括Apache Tomcat在内的servlet容器中。

Jenkins支持多种版本控制工具,包括RTC、ClearCase、Perforce、Mercurial、Git、Subversion、CVS和AccuRev,并且可以运行基于sbt、Apache Maven和Apache Ant的项目以及任意的Windows和shell脚本批处理命令。

Jenkins简史

最初,Jenkins项目被称为Hudson,并在2011年更名,与Oracle发生冲突。Hudson,Oracle的分支,继续整合一段时间后转为免费供给Eclipse基金会使用。Oracle的Hudson不再受管理,并于2017年2月作为过时的引入。

在2007年左右,Hudson作为一个更好的替代品取代了Cruise Control,并成为许多免费构建服务器的首选。在2008年5月的JavaOne大会上,Jenkins在开发者解决方案类别中获得了杜克(Duke)的选择奖。

  • 在2010年11月,Oracle的Sun Microsystems恢复后,Hudson社区出现了一些基础设施使用的问题,该基础设施用于囊括有关Oracle控制和管理权的问题。
  • Oracle与项目贡献者之间进行了讨论。然而,存在一些分歧点;一个重要的问题是在2010年12月Oracle指控拥有”Hudson”商标名称的权利,并使用了该商标。
  • 于2011年1月11日发起了改变项目名称从”Hudson”到”Jenkins”的投票呼吁。
  • 该提议于2011年1月29日通过了社区投票,成立了Jenkins项目。
  • Oracle于2011年2月1日表示希望继续Hudson的开发。因此,Hudson和Jenkins作为两个不同的项目继续存在,两者互相指责对方是分支。
  • 2011年,创始人Kohsuke Kawaguchi因其在Jenkins/Hudson项目上的表现获得奥莱利开源奖。
  • 于2016年4月20日,默认启用并发布了2.0版本,附带了Pipeline插件。
  • 该插件允许使用特定领域的基于Apache Groovy语言编写构建程序。
  • Jenkins于2017年2月8日在Eclipse中取代了Hudson。
  • Jenkins X软件程序于2018年3月公开发布,为Kubernetes提供支持,并得到多家云服务提供商的支持,如AWS EKS等。

Jenkins构建

构建可以通过多种方式进行,包括:

  • 由另一个构建所需
  • 在队列中的其他构建完成后进行
  • 通过特定构建URL的请求
  • 按照类似于cron的方法进行调度
  • 在版本控制系统中遇到提交推送的Webhook

Jenkins插件

  • 邮件发送器: 它允许我们为构建结果配置电子邮件消息。如果出现某些重要事件,如:
    • 不稳定的构建。
    • 构建失败。
    • 不稳定的构建,后来成功一个,显示出回归。
    • 成功的构建,后来失败的构建,显示灾难已经过去。
      Jenkins将提供邮件给指定的收件人。
  • 检查外部作业: 它们可以检查外部执行的作业的结果。
  • 凭据: 凭据允许在Jenkins中保存凭据。它们为其他插件提供了一个标准化的API,以保存和获取不同类型的凭据。
  • SSH代理: 它允许在SSH上维护在nix机器上执行的代理。它包括一个新的代理启动机制。这个启动机制将:
    • 初始化代理进程。
    • 当具有兼容的Java版本时,通过SFTP复制agent.jar。
    • 查找用户的默认Java版本。
    • 以指定的用户名启动SSH连接到指定的主机。
  • 在线解释器: 为了按用户界面而不是命令提示符调度和检查shell脚本的执行,可以有效地使用Jenkins。
  • Javadoc文档: 它支持Jenkins的Javadoc文档。这个过程曾经是核心的一部分,但是从1.431版本的Jenkins开始,它被分成了不同的插件。它通过后续构建操作启用 “发布Javadoc” 选项,命名要收集Javadoc的目录,并指定是否对所有成功的构建进行约束。

Jenkins安全性

Jenkins的安全性依赖于两个不同的因素:来自外部威胁的保护和访问控制。支持保护免受外部威胁的攻击,包括恶意构建和CSRF攻击。访问控制可以通过两种方式进行定制:用户授权和身份验证。

在Ubuntu上安装Jenkins

在服务器上安装软件包之前,必须更新系统软件包管理器。使用以下命令确保系统软件包管理器是最新的:

$ sudo apt update

安装Java

由于Jenkins是用Java编写的,第一步是安装Java。使用以下命令安装Java 8 OpenJDK软件包:

$ sudo apt install openjdk-8-jdk

目前的Jenkins版本还不支持Java 10或更高版本。如果您的系统上安装了多个Java版本,请确保Java 8是默认的Java版本。

要检查系统上的Java版本,请使用以下命令:

$ java -version

添加Jenkins Debian仓库

使用以下 wget 命令导入Jenkins仓库的GPG(GnuPG – GNU隐私卫士)密钥:

$ wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -

以上命令的输出应该是OK,这意味着密钥已成功导入,来自该存储库的软件包将被视为可信。

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

sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

安装Jenkins

一旦启用了Jenkins存储库并添加了密钥和源,更新apt软件包列表:

$ sudo apt update

现在,使用以下命令安装最新版的Jenkins:

$ sudo apt install jenkins

安装完成后,Jenkins服务将自动启动。

我们可以使用以下命令进行验证:

$ systemctl status Jenkins

我们应该看到类似这样的东西:

● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: active (exited) since Wed 2019-07-06 1308 PDT; 2min 16s ago
    Docs: man:systemd-sysv-generator(8)
    Tasks: 0 (limit: 2319)
CGroup: /system.slice/jenkins.service

调整防火墙

如果您正在安装Jenkins在一个通过防火墙保护的远程Ubuntu服务器上,您将需要开放端口 8080 。请考虑您正在使用 UFW 来管理您的防火墙;您可以使用以下命令打开端口:

$ sudo ufw allow 8080

使用以下命令来验证更改:

$ sudo ufw status

输出将如下所示:

Status: active

To               Action          From
--               ------          ----
OpenSSH          ALLOW          Anywhere
8080             ALLOW          Anywhere
OpenSSH (v6)     ALLOW          Anywhere (v6)
8080 (v6)        ALLOW          Anywhere (v6)

设置Jenkins

为了设置新的Jenkins安装,打开浏览器,在域名或IP地址后面输入端口8080,例如http://your_ip_or_domain:8080,屏幕会显示类似以下内容的Jenkins解锁屏幕:

Jenkins 在Ubuntu上安装

在终端中输入以下cat命令以查看密码:

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

将密码从终端复制并粘贴到“管理员密码”字段中,然后点击继续。现在,屏幕上提供了安装建议插件或选择特定插件的选项:
Jenkins 在Ubuntu上安装

在安装插件之后,现在是创建一个管理员账号以登录Jenkins的时候了:

Jenkins 在Ubuntu上安装

我们已经成功设置了Jenkins,现在Jenkins服务器已经准备好使用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程