如何在Ubuntu 18.04 LTS上设置Jenkins Master和Slave

Jenkins是一个自动化服务器,支持许多SCM(源代码管理)系统,包括Git,SVN和Mercurial。Jenkins提供了...

如何在Ubuntu 18.04 LTS上设置Jenkins Master和Slave

Jenkins是一个从Hudson项目分支出来的自动化服务器,它支持许多SCM(源代码管理)软件系统,包括Git,SVN和Mercurial。 Jenkins提供了数百个插件来自动化您的项目。 Jenkins支持“主/从”架构,允许它承载大量项目构建。

Jenkins的主人/Minion如何运作?

Jenkins主/从架构用于分布式构建环境,其中构建项目的工作负载分布到多个代理节点,并且我们可以为每个构建使用不同的环境。

在Jenkins的“主/从”架构中,主服务器将自身表示为基本的Jenkins安装,并处理构建系统的所有任务。 Jenkins主节点将用于调度作业,监视从属节点,将构建调度到从属节点,记录和表示构建结果,以及直接执行构建作业。

Jenkins从属节点设置为从主服务器卸载构建项目,并且需要在主服务器和从服务器之间建立连接。 Jenkins从属节点可以在各种操作系统上运行,如Windows和Linux,并且无需在其上安装完整的Jenkins软件包。

在本教程中,我们将学习如何使用最新的Ubuntu版本Ubuntu 18.04 LTS设置Jenkins主从架构。 我们将学习如何设置Jenkins主服务器,然后将其他Ubuntu节点添加为Jenkins从属服务器。

先决条件

  • Ubuntu 18.04
    • 大师 - 10.0.15.10
    • slave01 - 10.0.15.21
    • slave02 - 10.0.15.22
  • Root权限

我们将要做什么?

  1. 安装Jenkins Master
  2. 配置Jenkins主凭据
  3. 配置从属代理节点
  4. 添加新的从节点
  5. 准备从属代理节点以执行构建
  6. 测试

第1步 - 安装Jenkins Master

在本教程中,我们不会介绍Jenkins的基本安装。 Howtoing上有很多关于Jenkins安装的文章。

以下是我们安装了Jenkins的Ubuntu 18.04主服务器。

安装Jenkins Master

第2步 - 配置Jenkins主凭证

当您安装了主服务器Jenkins时,我们需要配置主服务器本身。 默认情况下,启动Jenkins代理节点有不同的方法,我们可以通过SSH,Windows管理帐户和Java Web Start(JNLP)启动代理节点,根据您的环境设置和操作系统选择最佳方式。

对于本指南,我们将通过ssh启动代理节点,我们需要在主服务器上设置Jenkins凭据。

生成SSH密钥

我们将使用ssh密钥身份验证来设置我们的代理节点,因此我们需要为Jenkins用户生成ssh密钥,然后使用'ssh-copy-id'手动将密钥上传到每个服务器节点。

在Jenkins主服务器上,登录Jenkins用户并生成ssh密钥。

su - jenkins
ssh-keygen

您将在'.ssh'目录中获得'id_rsa'私有和'id_rsa.pub'公钥。

生成SSH密钥

在Jenkins上设置凭据

打开Jenkins仪表板,然后单击左侧的“凭据”菜单。

在Jenkins上设置凭据

然后点击“全局”域名链接。

现在点击“添加凭据”。

添加凭据

现在选择身份验证方法。

  • 种类:具有私钥的SSH用户名
  • 范围:全球
  • 用户名:jenkins
  • 私钥:直接输入并从主服务器粘贴Jenkins用户的“id_rsa”私钥。

单击“确定”。

选择身份验证方法

并且已经创建了使用ssh auth key方法的Jenkins凭证。

已创建具有ssh身份验证密钥方法的Jenkins凭证

第3步 - 设置从节点

现在我们将通过在这些服务器上安装java来设置从属节点服务器,并创建一个新的Jenkins用户。

安装Java

安装'software-properties-common'软件包并添加java PPA存储库。

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:openjdk-r/ppa -y

现在使用apt命令安装java OpenJDK。

sudo apt install openjdk-8-jdk -y

安装完成后,检查已安装的java版本。

java -version

您将在系统上安装Java OpenJDK 1.8。

安装Java

添加新的Jenkins用户

现在将'Jenkins'用户添加到所有代理节点。

运行以下命令。

useradd -m -s /bin/bash Jenkins
passwd Jenkins

已创建代理节点的“Jenkins”用户。

添加新的Jenkins用户

将SSH密钥从主服务器复制到从服务器

接下来,我们需要将密钥'id_rsa.pub'从主服务器节点上传到从服务器节点。 我们需要使用'ssh-copy-id'命令上传到每个服务器节点,如下所示。

ssh-copy-id jenkins@10.0.15.21
ssh-copy-id jenkins@10.0.15.22

输入Jenkins用户密码。

ssh密钥'id_rsa.pub'已上载到所有代理节点。

将SSH密钥从主服务器复制到从服务器

第4步 - 添加新的从节点

在Jenkins仪表板上,单击“管理Jenkins”菜单,然后单击“管理节点”。

添加新的从节点

单击“新节点”。

新节点

键入节点名称“slave01”,选择“永久代理”,然后单击“确定”。

节点名称

现在输入节点信息详细信息

  • 描述:slave01节点代理服务器
  • 远程根目录:/ home / jenkins
  • 标签:slave01
  • 启动方法:通过SSH启动从属代理,键入主机IP地址'10 .0.15.21',使用'Jenkins'凭证选择身份验证。

节点信息

现在单击“保存”按钮,等待主服务器连接到所有代理节点并启动代理服务。

以下是主服务器连接到所有代理节点时的结果。

主服务器连接到所有代理节点

Jenkins从属节点已添加到主服务器。

第5步 - 准备从属代理节点以执行构建

在此步骤中,我们将配置Jenkins主服务器以在从属代理节点上执行构建。

单击“管理Jenkins”菜单,然后单击“配置系统”。

准备从属代理节点以执行构建

现在转到“Slave Setups”部分并定义您需要的所有内容,如下所示。

'Minion设置'部分

有关'Slave Setups' 链接的更多信息。

单击“保存”按钮,现在我们已准备好在从属代理节点上执行构建。

第6步 - 测试

现在我们想为Jenkins创建一个新的简单构建,并且我们想要在bot的'slave01'和'slave02'代理节点上执行构建。

在Jenkins仪表板上,单击“新建项”菜单。

测试Jenkins

键入项目名称,选择自由式项目,然后单击“确定”。

添加Freestyle项目

在常规部分,键入作业说明并选中“限制此项目可以运行的位置”选项。

在“标签表达式”上,指定节点,例如“slave01”。

选择一个节点

移动到构建部分并选择“执行shell”选项,键入以下命令。

top -b -n 1 | head -n 10 && hostname

单击“保存”按钮,您将被重定向到作业页面。

工作页面

单击“立即构建”以构建项目,然后单击“构建历史记录”部分中的项目。

现在建立

以下是我的结果。

构建在'slave01'代理节点上。

Jenkins脚本结果输出

构建在“slave02”代理节点上。

在节点02上构建

Jenkins主/从体系结构和分布式构建Jenkins的安装和配置已成功完成。

参考