如何在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权限
我们将要做什么?
- 安装Jenkins Master
- 配置Jenkins主凭据
- 配置从属代理节点
- 添加新的从节点
- 准备从属代理节点以执行构建
- 测试
第1步 - 安装Jenkins Master
在本教程中,我们不会介绍Jenkins的基本安装。 youcl上有很多关于Jenkins安装的文章。
以下是我们安装了Jenkins的Ubuntu 18.04主服务器。
第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'公钥。
在Jenkins上设置凭据
打开Jenkins仪表板,然后单击左侧的“凭据”菜单。
然后点击“全局”域名链接。
现在点击“添加凭据”。
现在选择身份验证方法。
- 种类:具有私钥的SSH用户名
- 范围:全球
- 用户名:jenkins
- 私钥:直接输入并从主服务器粘贴Jenkins用户的“id_rsa”私钥。
单击“确定”。
并且已经创建了使用ssh auth key方法的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。
添加新的Jenkins用户
现在将'Jenkins'用户添加到所有代理节点。
运行以下命令。
useradd -m -s /bin/bash Jenkins
passwd 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'已上载到所有代理节点。
第4步 - 添加新的从节点
在Jenkins仪表板上,单击“管理Jenkins”菜单,然后单击“管理节点”。
单击“新节点”。
键入节点名称“slave01”,选择“永久代理”,然后单击“确定”。
现在输入节点信息详细信息
- 描述:slave01节点代理服务器
- 远程根目录:/ home / jenkins
- 标签:slave01
- 启动方法:通过SSH启动从属代理,键入主机IP地址'10 .0.15.21',使用'Jenkins'凭证选择身份验证。
现在单击“保存”按钮,等待主服务器连接到所有代理节点并启动代理服务。
以下是主服务器连接到所有代理节点时的结果。
Jenkins从属节点已添加到主服务器。
第5步 - 准备从属代理节点以执行构建
在此步骤中,我们将配置Jenkins主服务器以在从属代理节点上执行构建。
单击“管理Jenkins”菜单,然后单击“配置系统”。
现在转到“Slave Setups”部分并定义您需要的所有内容,如下所示。
有关'Slave Setups' 链接的更多信息。
单击“保存”按钮,现在我们已准备好在从属代理节点上执行构建。
第6步 - 测试
现在我们想为Jenkins创建一个新的简单构建,并且我们想要在bot的'slave01'和'slave02'代理节点上执行构建。
在Jenkins仪表板上,单击“新建项”菜单。
键入项目名称,选择自由式项目,然后单击“确定”。
在常规部分,键入作业说明并选中“限制此项目可以运行的位置”选项。
在“标签表达式”上,指定节点,例如“slave01”。
移动到构建部分并选择“执行shell”选项,键入以下命令。
top -b -n 1 | head -n 10 && hostname
单击“保存”按钮,您将被重定向到作业页面。
单击“立即构建”以构建项目,然后单击“构建历史记录”部分中的项目。
以下是我的结果。
构建在'slave01'代理节点上。
构建在“slave02”代理节点上。
Jenkins主/从体系结构和分布式构建Jenkins的安装和配置已成功完成。