paint-brush
安全使用 AWS、K8S、Docker、Ansible、Git、Github、Apache Maven 和 Jenkins 营造 CI/CD 排水管道 通过@zufarexplained
38,139 讀數
38,139 讀數

使用 AWS、K8S、Docker、Ansible、Git、Github、Apache Maven 和 Jenkins 构建 CI/CD 管道

要经过 Zufar Sunagatov46m2023/09/07
Read on Terminal Reader

太長; 讀書

了解如何通过 Zufar Sunagatov 使用 AWS、K8S、Docker、Ansible、Apache Maven、Git、Github 和 Jenkins 创建高级 CI/CD 管道。在本教程结束时,您将获得一个可立即使用的现代 CI/CD 管道,该管道适用于您在 Github 上的任何项目。
featured image - 使用 AWS、K8S、Docker、Ansible、Git、Github、Apache Maven 和 Jenkins 构建 CI/CD 管道
Zufar Sunagatov HackerNoon profile picture
0-item
1-item




在上一篇文章中,我深入研究了微服务的迷人世界 - 微服务架构模式第 1 部分:分解模式。这是我关于微服务及其模式的综合文章系列的开始。


总之思维模式方法流程是坚持本款型的第 2 局部,但我来决定收起来要探险并告诉他您的是将等等微业务无缝焊接交工给结果是消费者的至关重要的过程。


内容概述

  • 动机
  • 【模块一】:AWS EC2虚拟服务器
  • 【模块二】:Jenkins服务器
  • [模块3]:Git和Github
  • [模块4]:Apache Maven
  • [模块5]:Docker
  • [模块 6]:Ansible
  • [模块7]:Kubernetes
  • 结论
  • 关于作者



动机

CI/CD 并不是种向加盟商交工app软件的能力,能够在app软件联合开放的多种关键期增长全自动化控制来做到。我信熟练 CI/CD(持续保持性整合和持续保持性的部署)能能使联合开放专业员更稳地认知后台本职工作部件咋样有着于本职工作随意调节库的界限认知能力。各种认知还能能使联合开放专业员的思想观点突发从来性的转换。两人能能起将本职工作的更诸多背静作为有颜值的厂品,而并不是只是将两人的本职工作作为源代码行。


在本文中,我们旨在通过实际应用揭开 CI/CD 流程的神秘面纱。我们将引导您完成分步教程,逐个模块地分解它,您将在其中手动构建 CI/CD 管道。为此,我们将利用AWS、Docker、Kubernetes、Ansible、Git、Apache MavenJenkins等当代 DevOps 工具的强大功能。那么,让我们开始这个旅程吧!


【模块一】:AWS EC2虚拟服务器

该接口用于使用 AWS EC2 增强现实功能器经典案例。有所作为这篇的一台分,您将为 Jenkins、Ansible 和 Kubernetes 布置五个 EC2 经典案例。現在,您能够 继读學習下一接口,并在“[接口 2]:Jenkins”、“[接口 6]:Ansible”和“[接口 7]:Kubernetes”部位中直接网页访问此接口。


步骤1:创建AWS账户

转到 //aws.amazon.com。

单击按钮创建 AWS 账户


AWS 主网页的屏幕截图,其中指针指向“创建 AWS 账户”按钮


假设按照建立账号网页上上的介绍来进行操作步骤。


第 2 步:登录您的 AWS 账户

转到 //console.aws.amazon.com/console/home。单击“登录”按钮。

AWS 主网页的屏幕截图,其中指针指向“登录”按钮


在页面上设置全部重要性的凭据。


第3步:找到EC2虚拟服务器

在收索框中找到了 EC2。

AWS 网页的屏幕截图,其中指针指向搜索框


单击EC2 服务选择 EC2 虚拟服务器。

指向“EC2”AWS 服务的 AWS 网页的屏幕截图


单击按钮启动实例

AWS 网页的屏幕截图,其中指针指向“启动实例”按钮


第 4 步:配置“名称和标签”部分

转到“名称和标签”部分。

AWS 网页的屏幕截图,其中指针指向“名称和标签”部分


“名称”部分中为新的 AWS EC2 虚拟服务器实例提供名称。

AWS 网页的屏幕截图,其中指针指向“名称和标签”部分中的“名称”输入框


您还可以通过单击“添加其他标签”为虚拟服务器添加其他标签。


步骤 5:配置“应用程序和操作系统映像(Amazon 系统映像)”部分


转到“应用程序和操作系统映像(Amazon 系统映像)”部分。

AWS 网页的屏幕截图,其中指向“应用程序和操作系统映像(Amazon 系统映像)”部分


免费使用虚拟服务器:

  1. 选择您的虚拟服务器的操作系统 - Amazon Linux
  2. Amazon 系统映像 (AMI)部分中,选择具有免费套餐合格标签 的计算机。



AWS 网页的屏幕截图,其中“应用程序和操作系统映像(Amazon 机器映像)”部分中的指针指向“操作系统”和“机器类型”按钮


第 6 步:配置“实例类型”部分

转到“实例类型”部分。

指向“实例类型”部分的 AWS 网页屏幕截图


免费使用虚拟服务器:

实例类型部分中选择带有免费套餐合格标签的类型。

对我来说,它是t2.micro (系列:t2 1cCPU 1 GiB 内存当前一代:true)



AWS 网页的屏幕截图,其中“实例类型”部分中的指针指向“实例类型”下拉列表


步骤 7:配置“配置存储”部分

转到“配置存储”部分。

AWS 网页的屏幕截图,其中指向“配置存储”部分


免费使用虚拟服务器:

不要更改默认设置。符合免费套餐资格的客户可以获得30 GB 的 EBS 通用 (SSD) 或磁性存储



AWS 网页的屏幕截图,其中包含指向“配置存储”部分中可能的存储配置的指针


步骤 8:配置“网络设置”部分

转到“网络设置”部分。

AWS 网页的屏幕截图,其中指向“网络设置”部分


您所需设有虚拟游戏服务培训器的安全防护性。去做你这个,
  1. 单击“创建安全组”按钮。
  2. “安全组名称”部分添加新安全组的名称。
  3. “说明”部分添加新安全组的说明。

默认情况下,您的虚拟服务器可通过(类型 - SSH、协议 - TCP、端口 - 22 )访问。如果您需要其他连接类型,请通过添加其他入站安全组规则来添加它们。



AWS 网页的屏幕截图,其中“网络设置”部分中的指针指向“安全组”


第 9 步:配置“密钥对(登录)”部分

转到“密钥对(登录)”部分。

AWS 网页的屏幕截图,其中指向“Ketpair(登录)”部分


如何您已经构建新的密匙对,请构建它。

AWS 网页的屏幕截图,其中“Ket 对(登录)”部分中指向“密钥对名称”、“密钥对类型”、“私钥文件格式”


如果您还没有创建“密钥对”

  1. 单击“创建新密钥对”按钮。
  2. “密钥对名称”部分中为新密钥对命名。
  3. 选择密钥对类型RSAED25519 。我选择RSA类型。
  4. 选择私钥文件格式。 .pem.ppk的选择。我选择.pem格式。
  5. 单击“创建密钥对”按钮。
  6. 您将看到一个弹出窗口,提示您下载私钥文件。同意并将文件下载到您的计算机。

步骤10:启动EC2虚拟服务器实例


单击“启动实例”按钮启动 EC2 虚拟服务器实例。

指向“启动实例”按钮的 AWS 网页屏幕截图


EC2 虚拟现实服务项目器图片撰写环节做好后,您将得到以内游戏内容。


显示“成功”通知的 AWS 网页屏幕截图,表明 EC2 虚拟服务器实例创建过程已成功完成


然后,您应该通过单击“查看所有实例”按钮转到“实例”部分。


AWS 网页的屏幕截图,其中包含指向正在运行的 EC2 实例的指针

在您能够 看得见您的 AWS EC2 VR虚拟服务培训器案例已经在程序运行。


【模块二】:Jenkins服务器

如今的,我会们在 EC2 一个服务保障器范例上增加 JenkinsServer。

步骤 1:创建 AWS EC2 虚拟服务器实例

您还要另一个VR虚拟服務器来正常运行 Jenkins。

按照本教程的[模块 1]:AWS EC2 虚拟服务器部分中的说明完成此步骤并创建一个名为 JenkinsServer 的 EC2 虚拟服务器实例。

不要忘记添加安全组设置。它允许JenkinsSSH分别在端口808022上工作。


使用名称“JenkinsServer”来区分您的 EC2 虚拟服务器实例。

为新的“JenkinsServer” AWS EC2 实例创建“CI_CD_Pipeline”安全组和“CI_CD_Pipeline_Key_Pair” 。您可以在本文中进一步重用它们。


步骤 2:连接到 AWS EC2 虚拟服务器实例

转至AWS 控制台主页EC2 管理控制台仪表板实例。

然后你应该选择JenkinsServer ,然后单击“连接”按钮。

AWS“实例”网页的屏幕截图,其中指针指向“连接”按钮


然后你就会看到这个网页。您应该再次单击“连接”按钮。

AWS“连接到实例”网页的屏幕截图,其中指针指向“连接”按钮


如今的您可在线上末端上找到EC2VR虚拟服务于器示范。

AWS EC2虚拟服务器实例在线终端截图


第 3 步:下载 Jenkins 存储库

现再您要有在 EC2 虚似服务培训器具体方法左右载 Jenkins。请尊循下面描述:


  1. 转到 Jenkins 使用。
  2. 您也可以看过相对稳定(LTS)和平时安卓版本(一周)页面设置。进行 LTS 页面设置。


您将看看此网络。

Jenkins下载网页截图


  1. 复制“sudo get..”命令并执行它,从 Internet 上的 Jenkins 存储库下载 Jenkins 文件,并将它们保存到 EC2 虚拟服务器实例上的指定位置。
 sudo wget -O /etc/yum.repos.d/jenkins.repo //pkg.jenkins.io/redhat-stable/jenkins.repo
现代 Jenkins 已进行下载。


第 4 步:导入 Jenkins 密钥

要做好 Jenkins 装有,他们要求把手机通讯录 Jenkins 序列号。

要导入 Jenkins 密钥,我们需要复制“sudo rpm..”命令并执行它。


 sudo rpm --import //pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

这样, “rpm”包管理器可以验证您安装的 Jenkins 包是否正是 Jenkins 项目发布的包,并且它们没有被篡改或损坏。


第5步:安装Java

要运行 Jenkins,我们需要在 EC2 虚拟服务器实例上安装Java

要安装Java ,请使用此命令。


 sudo amazon-linux-extras install java-openjdk11 -y


使用以下命令验证Java是否已正确安装:

 java -version


你能得到近似的知识。

安装了 JDK 11 的 AWS EC2 虚拟服务器实例在线终端的屏幕截图


第6步:安装fontconfig

要运行 Jenkins,您需要在我们的 EC2 虚拟服务器实例上安装fontconfig

运行这里下令。
 sudo yum install fontconfig java-11-openjdk -y


Fontconfig 就是个有何意义给予软件系统区间的字休性能、定制化和选用过程浏览的库。 Jenkins 想要它,因 Jenkins 极具草图大师渲染字休的技能。


第7步:安装詹金斯

在前边的过程中,您将 EC2 模拟服务培训器典例选配为采用对应的 Jenkins 文件文件保存库,但是引入与该文件文件保存库微信关联的 GPG 密匙。现今,您必须运转命令提示符来搜它了解到的大多数文件文件保存库(包涵您填加的 Jenkins 文件文件保存库)以查阅 Jenkins 包。因此它在 Jenkins 文件文件保存表中找寻 Jenkins 包,它将进行下载并进行安装它。


令当我们使用这种命令行。
 sudo yum install jenkins -y


第8步:启动詹金斯

您行动用此下令起动 Jenkins。
 sudo systemctl start jenkins


要查验 Jenkins 是否需要现在正常运行,请应用此指令。
 sudo systemctl status jenkins


您将找到如下图如下手机屏截屏如下的输入:

安装了 Jenkins 的 AWS EC2 虚拟服务器实例在线终端的屏幕截图


詹金斯接下来应该是已启动的并电脑运行。

第9步:访问Jenkins

要互访 Jenkins 利用执行程序,请打开文档所有 Web 浏览记录器并填写 EC2 示例的公众 IP 地扯或二级域名,后跟串口 8080。


 //<your-ec2-ip>:8080


首先次采访 Jenkins 时,它将被自动化制成的密匙重置。

安装在 AWS EC2 虚拟服务器上的 Jenkins 的屏幕截图,其中指向管理员密码


您应该在使用一些指令体现 此解锁密码。
 sudo cat /var/lib/jenkins/secrets/initialAdminPassword


复制填充此用户名和账户密码,载入查询器,将其填充到管理方法员用户名和账户密码字符串中,接着单击“立刻”。


接下来你就可不可以见到这位我们的网页了。


安装在 AWS EC2 虚拟服务器上的 Jenkins 的屏幕截图,其中指向“自定义 Jenkins”网页


现如今,您就可以便用 Jenkins 服务培训器。


第 10 步:创建新的 Jenkins 管道

现在,由于 Jenkins 工作正常,您可以开始创建 Jenkins 管道。要创建 Jenkins 管道,您需要创建一个新的“Freestyle 项目”。要创建新的“Freestyle 项目”,您需要转到 Jenkins 仪表板并单击“New Item”按钮。


Jenkins 仪表板网页的屏幕截图,其中指针指向“新建项目”按钮


输入Github“Freestyle项目”的名称(后面将使用“管道”名称),然后单击“确定”按钮。


Jenkins New Item 网页的屏幕截图,其中指针指向“Item name”项目框


然后提供管道的描述

Jenkins 作业配置网页的屏幕截图,其中指针指向“描述”输入框


其次单击“采用”和“存为”旋钮。完后,这代表着您组建了本教学视频中可能要建设的途径的基础理论。


[模块3]:Git和Github

现今,当 Jenkins 在 AWS EC2 没有实体业务器事例上作业时,您会操作途径系统配置 Git。

Git 是一个分布式版本控制系统 (VCS),旨在帮助软件团队跟踪对特殊数据库中代码的每次修改。如果出现错误,开发人员可以倒转并比较早期版本的代码,以帮助修复错误,同时最大限度地减少对所有团队成员的干扰。 VCS 特别适用于团队,因为它们可以帮助他们减少开发时间并增加成功部署 [1]。

Git 作为一个最受欢迎的固件版本的控制操作系统,使自己要将多种代码怎么用从工程项目 Github 存储器库截取到使用 Jenkins 的 EC2 人体服务项目器样例。


第1步:安装Git

的使用此操作命令装置 Git。
 sudo yum install git -y


现阶段操作此系统命令查证 Git 是否需要普通 工作上。
 git --version
下面 Git 在 EC2 虚拟的服务管理器样例上使用很好。


第 2 步:打开 Jenkins 仪表板

随着 Git 在 EC2 虚拟主机服务于器事例上自动运行优异,小编在需要将 Jenkins 与 Git 集成型。要刚开始此集成型,我们按装 Jenkins Github 插件怎么安装。转到 Jenkins 汽车仪表盘板那部分。


Jenkins 仪表板的屏幕截图


第 3 步:打开 Jenkins 插件管理器

单击“管理 Jenkins”按钮,然后单击“管理插件”按钮。

Jenkins 仪表板的屏幕截图,其中指针指向“管理插件”按钮


第4步:找到Github Jenkins插件

单击“可用插件”按钮。

Jenkins 插件管理器网页的屏幕截图,其中指针指向“可用插件”按钮


找到Github插件搜索框。


Jenkins 插件管理器网页的屏幕截图,其中包含指向“Github”插件的指针


选择Github插件。


第5步:安装Github Jenkins插件

选择Github插件。然后单击“安装而不重新启动”按钮。


Jenkins 插件管理器网页的屏幕截图,其中指针指向“安装而不重新启动”按钮


稍候Githubae插件在线下载完毕。


Jenkins 插件管理器网页的屏幕截图,其中包含下载的 Github 插件


是的! Jenkins Github 浏览器插件已安裝。


第6步:配置Github Jenkins插件

現在 GitHub Jenkins 软件操作已安转,您能否设备此软件操作以之后将 Jenkins 与 Git 集合。对此,您要单击“调用上首页”开关按钮调用首页。


Jenkins 插件管理器网页的屏幕截图,其中指针指向“返回首页”按钮


然后在主页上,您需要单击“管理Jenkins”按钮,然后单击“全局工具配置”按钮。


Jenkins 插件管理器网页的屏幕截图,其中指针指向“全局工具配置”按钮


并且在多线程平台安装我们的网页上,您应有转到 Git 一部分。


Jenkins 全局工具配置网页的屏幕截图,其中指针指向“名称”和“Git 可执行文件的路径”输入框


在 Git 局部中,您必须 确认带来确定机里 Git 的称谓和路线来配置单 Git。


然后单击“应用”“保存”按钮**。**


到我也,您就搞定了 Jenkins Github 插件怎么安装的选配。


第 7 步:将 Git 集成到管道中

現在,根据 Jenkins Github 插件怎么安装包的重新安装和手机配置,您現在就能够在pvcpvc管道中安全使用该插件怎么安装包了。这将能够您在模组 2 中新建的pvcpvc管道从更改的 GitHub 储备表中分离出来的项目编码。


因此,要将此游戏插件集成式到您的给水管中,您需用转到源代碼管理系统有些并在给水管各写择 Git。再您需用能出示您的建设创业项目流程文件存放库 URL。假如您的建设创业项目流程文件存放库在 Github 上公开性,则不用再能出示凭据。假如建设创业项目流程文件存放库在 Github 上是私有的,您需用能出示凭据。


具有“源代码管理”设置的 Jenkins 作业配置网页的屏幕截图


您可以将我的建设项目与下有一个存储空间库 URL 共同选用:https: 。

只需将其复制并粘贴到“存储库 URL”输入中即可。然后点击“应用”“保存”按钮完成Git与管道的集成。


第 8 步:测试集成到管道中的 Git

现如今,您能能动用更行的pvc管道从 Github 中分离出品牌。因为,您必须要 单击**“实时引入”**开关按钮。毕竟,您将在引入厉史统计中了解到实现目标的引入。


Jenkins 网页的屏幕截图,其中包含指向“立即构建”按钮和“构建历史记录”部分的指针



打开在校园营销推广活动的环节之中所倡导时间记录表中的第1个在校园营销推广活动的环节之中所倡导。

Jenkins Pull_Code_From_Github_Job 作业结果成功的屏幕截图


现再您能了解到首位次打造的好做业毕竟。如果您开 AWS EC2 电子设备。您能体检水管能不正确任务。


只需用到这一操作命令就好。
 cd /var/lib/jenkins/workspace/{your pipeline name}


这个您就应该观察到您的工程项目从 Github 被拉取到您的 AWS EC2 没有实体服务项目器示范。


下载到EC2实例终端的Github项目截图



[模块4]:Apache Maven

Apache Maven是软件开发中广泛使用的构建自动化和项目管理工具。它通过管理项目依赖关系并提供一致的构建生命周期来简化编译、测试和打包代码的过程。 Maven 使用基于 XML 的配置文件(POM 文件)来定义项目结构、依赖关系和任务,使开发人员能够有效地管理和部署复杂的软件项目。


当前您已为 Git 集成系统到管道网网中,您就够确认重新命名 Apache Maven 来进一个步骤增进管道网网,Apache Maven 使您够营造、测量和解压业务。为这件事,您需求在使用了 Jenkins 和 Git 的 AWS EC2 一个服务质量器典例上使用 Apache Maven。


第 1 步:下载 Apache Maven

要下载 Apache Maven,请转到“/opt”目录。

 cd /opt


那么食用这样的操作命令。
 sudo wget //dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz


该运行命令将进行下载较新的的公司 Apache Maven(请在 Apache Maven 公司小程序上浏览较新的传奇)。要找寻较新的的公司 Apache Maven 传奇,请利用超链接 。


第 2 步:从存档中提取 Apache Maven

适用下面操作命令从安装的存檔中导出 Apache Maven:
 sudo tar -xvzf apache-maven-*.tar.gz


步骤3:添加JAVA_HOME和M2_HOME

施用此系统命令移动式到根相关手机文件夹。
 cd ~


使用此命令编辑.bash_profile文件。

 vi .bash_profile


添加JAVA_HOME和 M2_HOME 变量。


JAVA_HOME指定为 JDK11 的路径,将M2_HOME变量指定为 maven 目录的路径。


要查阅 JDK 根目录,请在使用此ftp命令。
 sudo find / -name java 



带有 .bash_profile 文件的 AWS EC2 虚拟服务器实例终端网页的屏幕截图


如何使用VIM

  • 编辑文件,请按键盘按钮“ I ”插入数据。
  • 保存文件,请按键盘按钮“esc”并输入“:w”。
  • 退出文件,请按键盘按钮“esc”并输入“:q”
存有更换。


第三,下达此系统软件命令重置系统软件全局变量。
 source .bash_profile


要验证$PATH ,请使用此命令。

 echo $PATH


要验证Apache Maven ,请使用此命令。

 mvn -v


假若所有的 正确的,您将可能看到 Apache Maven 的新版本。

AWS EC2 虚拟服务器实例终端网页的屏幕截图以及 Apache Maven 的版本


步骤 4:安装 Apache Maven Jenkins 插件

原因 Apache Maven 是也可以在 EC2 示例上在使用,这样您是也可以安裝 Apache Maven ps插件以将其与管材集合。


为此,请按照下列步骤操作:

  1. 导航到“仪表板” →“管理 Jenkins”→“管理插件”→“可用”。
  2. 在搜索框中输入“Maven”
  3. 选择“Maven 集成”插件。


安装在 AWS EC2 虚拟服务器上的 Jenkins 的屏幕截图,其中包含指向 Maven 插件的指针


在等待保存步骤完结。


然后点击“返回首页”按钮。

Jenkins 安装在 AWS EC2 虚拟服务器上的屏幕截图,并指向 Maven 插件下载过程


第 5 步:配置 Apache Maven Jenkins 插件

取得成功布置 Apache Maven Jenkins 插件机包后,您现再都可以在板块 2 和 3 中组建和创新的线路中食用此插件机包。


为此,请按照下列步骤操作:

  1. 转到“仪表板” →“管理 Jenkins”→“全局工具配置”→“JDK”
  2. 单击“添加 JDK”按钮。
  3. 取消选中“自动安装”。



安装在 AWS EC2 虚拟服务器上的 Jenkins 的屏幕截图,其中包含指向 JDK 配置的指针



然后转到“Maven”部分。单击“添加 Maven”按钮。取消选中“自动安装”。

然后添加名称MAVEN_HOME路径。



安装在 AWS EC2 虚拟服务器上的 Jenkins 的屏幕截图,其中包含指向 Apache Maven 配置的指针



单击“应用”“保存”按钮。

到这些,您就已搞定了 Apache Maven Jenkins 插件机的系统配置。


第 6 步:将 Apache Maven 集成到管道中

在,随之 Apache Maven GitHub ae插件的装置和手机配置,您在能在热力给水管中运行 Apache Maven。这将同意您在“[模块图片 2]:Jenkins 服务性器”中新新创建的热力给水管创设項目编号以新新创建 jar 镗孔。


要将 Apache Maven 集成到管道中,您需要执行以下步骤:

  1. 导航到“仪表板” →“CI_CD_Pipeline”→“配置”→“构建步骤”。
  2. 单击“添加构建步骤”按钮。
  3. 选择“调用顶级 Maven 目标”选项。
  4. 选择“Apache-Maven”作为“Maven 版本”。
  5. “clean package”命令添加到“Goals”输入。
  6. 单击“高级”按钮。
  7. 将“pom.xml”添加到“POM”输入。



管道配置中“构建步骤”部分的屏幕截图,其中包含指向“应用”和“保存”按钮的指针



最后,单击“应用”“保存”按钮即可完成 Apache Maven 与管道的集成。

第 7 步:测试集成到管道中的 Apache Maven

目前您是可以安全使用创新的途径来搭建您的 Github 创业项目。故,您想要单击**“马上搭建”**按钮开关。对此,您将在搭建歷史统计中看出成功的的作业管理效果。若是您打開 AWS EC2 数据终端。您能够诊断地埋管可不可以一般本职工作。


只需用这样的系统命令即刻。
 cd /var/lib/jenkins/workspace/{your pipeline name}/target


只要您就能够 可以看到 JAR 类件,是因为您的的项目已从 GitHub 好构造 。


[模块5]:Docker

当下让你们组建两个名里“Ansible Server”的新 EC2 案列,您将在表中的安装 Docker 和 Ansible。


步骤 1:启动 AWS EC2 虚拟服务器实例

使用本教程“启动 AWS EC2 虚拟服务器实例”部分中的说明来完成此步骤。不要忘记添加安全组设置。它允许 Docker 和 SSH 分别在端口 8080 和 22 上工作。


步骤 2:连接到 AWS EC2 虚拟服务器实例

单击“联接”开关。

指向“连接”按钮的 AWS 网页的屏幕截图


当今您不错看到了 EC2 Virtual Server 经典案例网络终端用户。

AWS EC2虚拟服务器实例在线终端截图


 sudo chown ansible-admin:ansible-admin /opt/docker


步骤 3:在 Ansible EC2 虚拟服务器上安装 Docker。

现如今您须要在 Ansible EC2 实列上布置 docker。与其,您须要建设一新的 docker 资料夹。
 sudo mkdir /opt/docker


最后,借助审理下同一个命令提示符来装配 docker。
 sudo yum install docker -y


步骤 4:将当前用户添加到 Ansible EC2 虚拟服务器上的 Docker 组

您需要将当前用户“ansible-admin”添加到“AnsibleServer” EC2 虚拟服务器上的 Docker 组,以授予 Docker 管理员权限。


 sudo usermod -a -G docker ansible-admin


您必须公司注销兼具新密码登录能够使这一些更换中止。


第二步就可以程序执行下每条操作命令了
id ansible-admin


查验新的 docker 手机用户需不需要普遍存在。


Ansible EC2 实例的屏幕截图,其中指针指向 docker 用户


第 5 步:启动 Docker

当今,当 Docker 安装使用在 Ansible EC2 事例上时,您能够完成执行力下这个ps命令来发动它。
 sudo systemctl start docker


Docker 启动时后,您可连接下一位ftp命令
sudo systemctl status docker


可以看过 docker 目前 居于活动方案状况并已经行驶。

具有活动 docker 状态的 Ansible EC2 实例的屏幕截图


第6步:创建Dockerfile

在管道网的终究版本的中,该具体步骤将包涵从 GitHub 活动搭建新的 Docker 映像并将其消息推送到 Docker Hub。以此,您的 GitHub 活动应包涵同一个 Dockerfile。


如果您使用“ [模块3]:Git 和 Github”模块中提供的项目“Hello” ,那么您不需要创建新的 Dockerfile,因为该项目存储库已经包含 Dockerfile。


 FROM eclipse-temurin:17-jre-jammy ENV HOME=/opt/app WORKDIR $HOME ADD hello-0.0.1-SNAPSHOT.jar $HOME ENTRYPOINT ["java", "-jar", "/opt/app/hello-0.0.1-SNAPSHOT.jar" ]


假若您实用自个儿的该项目储备库有时候它不涉及 Dockerfile,则您将所需建立一新的 Dockerfile。


要建设新的 Dockerfile,请实施如下ps命令,这将建设新压缩文件。
 sudo touch Dockerfile


接下来,您需要使用的一类型指令来放置此贴件,哪些指令描叙怎么样去构造 溶器化选用APP的自然环境。哪些指令具有将系统文件被拷贝到映像、装配平台、制定的自然环境数组和配置单溶器等操作使用。


要运用等ftpftp命令填色 Dockerfile,请审理一些ftpftp命令。
 vim Dockerfile
Dockerfile 已可供用。


第7步:登录Docker

现在您的 Dockerfile 已准备好使用,接下来从 **“JenkinsServer”**EC2 实例复制项目的 JAR 工件并将其粘贴到“AnsibleServer” EC2 实例上。值得注意的是,这种转移将通过管道进一步自动化。

完成任务此步驟后,您就能否测评 Dockerfile 与您设有的 Docker 坏境了。


在开端测试图片之间,请保障在 Dockerhub 上对本身采取资格手机验证。执行力下类命令提示符。
 docker login


此命令表示符将表示您提供了 Dockerhub 快速登录凭据,例如您的普通登录账号和管理员密码。

“AnsibleServer”EC2实例中docker登录成功的截图


至此,您已经完成了登录Docker的过程,现在可以开始测试了。

步骤8:测试Docker环境和Dockerfile

实现目标注册登录 Dockerhub 后,您当前应该开使考试做准备好的 Dockerfile。


运行此系统命令使用 docker iso镜像。
 docker build -t hello:latest .


接下去来,实施前因后果下令来成立一元素,以简单将镜像软件传输到 Dockerhub:
 docker tag hello:latest zufarexplainedit/hello:latest


末尾,接着根据审理该指令将Docker系统镜像自动更新到Dockerhub。
 docker push zufarexplainedit/hello:latest


安装一下流程作业,汽车导航到您的 Dockerhub 企业账户以验正您可不能够 能够 看过新映像。

添加了新镜像的 Dockerhub 帐户的屏幕截图


您到现在可能观察植物到图象已被有效率添加图片。此效果可确认 Docker 情况的安装完成,或者您的 Dockerfile 是精准的。


[模块 6]:Ansible

当今令公司在 EC2 虚拟游戏产品器案列上调试 Ansible 产品器。


步骤 1:创建 AWS EC2 虚拟服务器实例

您须要一款虚拟网络贴心服务器配置来执行 Ansible。


按照本教程的[模块 1]:AWS EC2 虚拟服务器部分中的说明完成此步骤并为 Ansible 创建 EC2 虚拟服务器实例。

不要忘记添加安全组设置。它允许AnsibleSSH分别在端口808022上工作。


使用名称“AnsibleServer”来区分您的 EC2 虚拟服务器实例。

您可以为新的“AnsibleServer” EC2 实例重复使用“CI_CD_Pipeline”安全组和“CI_CD_Pipeline_Key_Pair”


步骤 2:连接到 AWS EC2 虚拟服务器实例

转到 AWS 调控台网站首页 → EC2 经营调控台仪盘表板 → 实验总结 → AnsibleServer。


然后单击“连接”按钮。

指向“连接”按钮的 AWS 网页的屏幕截图


然后你就会看到这个网页。您应该再次单击“连接”按钮。


AWS“连接到实例”网页的屏幕截图,其中指针指向“连接”按钮


現在您就能够在百度在线终端门店上找到EC2虚拟现实游戏的游戏服务器实列。

AWS EC2虚拟服务器实例在线终端截图


现下给当我们在 EC2 一个贴心服务器ip事例上配备 Ansible Server。

步骤 3:更改“AnsibleServer”AWS EC2 虚拟服务器实例的主机名

当您如果想在 EC2 虚假服务的器典例上配制 AnsibleServer 时,您须要做的首要件事是更换其服务器主机名。


我国着手做吧。继续执行此操作命令打開主机箱名文书:
 sudo vi /etc/hostname


你要看清也许的的东西:

带有主机名文件的 AWS EC2 虚拟服务器实例的屏幕截图


将此主机名替换为“ansible-server”。然后,重新启动它。

 sudo init 6 



带有指向主机名的指针的 AWS EC2 虚拟服务器实例终端的屏幕截图


步骤 4:在“AnsibleServer”AWS EC2 虚拟服务器实例中添加并配置新用户

现在,让我们向 AWS EC2 虚拟服务器实例添加一个新的ansible-admin用户。

然而,请在使用低于命令提示符:


 sudo useradd ansible-admin


然后,设置ansible-admin用户的密码。

 sudo passwd ansible-admin


此外,您需要通过编辑sudoers文件来配置用户权限。

 sudo visudo


“ansible-admin ALL=(ALL) ALL”添加到此sudoers文件中。

AWS EC2 虚拟服务器实例终端的屏幕截图,其中包含指向管理员权限的指针


另外,您需要编辑/etc/ssh/sshd_config文件以启用密码身份验证。

 sudo vi /etc/ssh/sshd_config 


AWS EC2 虚拟服务器实例终端的屏幕截图,其中包含指向管理设置的指针


其次您还要直接跳转服务质量来核对哪些更换。
 sudo service sshd reload


施行此命令提示符的没想到是,您将找到:


AWS EC2 虚拟服务器实例终端的屏幕截图,其中包含指向 sshd 重新加载结果的指针


如今的,您应该采用此下令来应对为其它另外的下令“添加 sudo。
 sudo su - ansible-admin


步骤 5:在 AWS EC2 虚拟服务器实例中生成密钥

您计划表在这篇中进十步维护远控工作器,举例子 K8s EC2 虚似工作器典例。这可是为这些您必须要软件设置 SSH win7密匙。
 ssh-keygen


执行力此强制性的数据是,您将了解到:

AWS EC2 Virtual Server 实例终端的屏幕截图,其中包含指向 ssh-keygen 结果的指针


現在 SSH 序列号已转成并可供运行。

第 6 步:安装 Ansible

现在您可以在“AnsibleServer” EC2 虚拟服务器实例上安装 Ansible。

当我们着手做吧。


继续执行此强制性来装配 Ansible。
 sudo amazon-linux-extras install ansible2


要手机验证 Ansible,请应用下类ftp命令:
 ansible --version


强制执行此系统命令的然而是,您将看清楚:

AWS EC2 虚拟服务器实例终端的屏幕截图,其中包含指向 sudo yum install ansible 结果的指针


第 7 步:在 JenkinsServer EC2 实例上安装 Jenkins“Publish over SSH”插件

由于 Ansible 安装在“AnsibleServer” EC2 虚拟服务器实例上,因此您可以配置 Jenkins 将其与 Ansible 集成。您需要安装“Publish over SSH”插件,以将 Jenkins 与安装了 Ansible 的 EC2 虚拟服务器实例以及安装了Kubernetes的其他 EC2 虚拟服务器实例集成。


转到“仪表板” →“管理 Jenkins”“配置系统”“可用插件”

然后在搜索框中输入“Publish over SSH”


安装在 AWS EC2 虚拟服务器上的 Jenkins 的屏幕截图,其中指向“可用插件”网页


单击“安装而不重新启动”按钮。等待下载过程结束。


安装在 AWS EC2 虚拟服务器上的 Jenkins 的屏幕截图,其中包含指向“下载进度”网页的指针



当下,“Publish over SSH”组件已装配在 Jenkins EC2 虚拟现实游戏服务项目器示例上。


第 8 步:配置 Jenkins“Publish over SSH”插件

顺利重新安装 Apache Maven Jenkins 扩展程序后,您接下来可不可以在控制模块 2 和 3 中构建和不断更新的管路中安全使用此扩展程序。


为此,请按照下列步骤操作:


转到“仪表板”“管理 Jenkins”“配置系统”“通过 SSH 发布”

使用“Publish over SSH”插件的 AWS EC2 虚拟服务器实例终端的屏幕截图


插入电脑屏高清截图上展示的其他也要统计数据,主要包括主机电源名、普通登录名和私钥(或帐号密码,假设适用性)。


使用“Publish over SSH”插件的 AWS EC2 虚拟服务器实例终端的屏幕截图


然后单击“应用”“保存”按钮。


到这里,您已经完成了“Publish over SSH” Jenkins 插件的配置。


接出来来,单击“测试图片调试”以印证组件是不是也没问题上班。



带有“测试配置”按钮的“通过 SSH 发布”插件的屏幕截图


在左面都可以看得见測試游戏软件显卡配制状况为“好”。这情况说明游戏软件显卡配制恰当。


第9步:在AnsibleServer中创建新的Docker目录

您必须在 AnsibleServer EC2 典例上创造其中一个新文件下载夹,使中用贮存新项目 JAR。该 jar 稍后将使中用创造 Docker 系统镜像。


开始了吧。


转到 AnsibleServer EC2 实例中的“/opt”文件夹。

 cd /opt


在那里创建一个新文件夹“docker”

 sudo mkdir docker


授予此“docker”文件夹权限。

 sudo chown ansible-admin:ansible-admin docker


现在,通过执行此命令检查“docker”文件夹权限。

 ll


您可以看到“docker”文件夹可以通过“ansible-admin”用户访问。


“AnsibleServer”EC2 实例中“docker”文件夹的屏幕截图


第 10 步:将“Publish over SSH”Github 插件集成管道


现在, “Publish over SSH” Github 插件已安装并配置完毕,您现在可以将其集成到您在“[模块 2]:Jenkins Server”中创建的管道中,以将项目 jar 工件从“ JenkinsServer”传输到“Ansible服务器”


那么,要将“Publish over SSH” Github 插件集成到管道中,您需要执行以下步骤:


  1. 导航到“仪表板” →“CI_CD_Pipeline”→“配置”→“构建后操作”。
  2. 单击“添加构建后操作”按钮。
  3. 选择“通过 SSH 发送构建工件”选项。
  4. “AnsibleServer”添加到“SSH 服务器”部分中输入的“名称” **。**
  5. “target/*.jar”添加到“传输集”部分中输入的“源文件” **。**
  6. “target/”添加到“传输集”部分**的“删除前缀”输入中**。**
  7. “//opt/docker/”添加到“传输集”部分中的“远程目录”输入**。**
  8. 现在,只需在“传输集”部分下的“执行命令”输入中放置一个空字符串即可。



管道配置中“通过 SSH 发送构建工件”部分的屏幕截图


最后,单击“应用”“保存”按钮即可完成“Publish over SSH”插件与管道的集成。


第 11 步:测试集成到管道中的“Publish over SSH” Github 插件

现在,您可以使用更新的管道将项目 jar 工件从“ JenkinsServer”传输到“AnsibleServer” 。为此,您需要单击“立即构建”按钮。因此,您将在构建历史记录中看到成功的作业结果。


如果您打开“AnsibleServer” AWS EC2 终端。您可以检查管道是否正常工作。

只需的使用这些下令时需。


 cd /opt/docker


这么您就是可以遇到 JAR 工件产品,取决于您的该项目已从 GitHub 实现目标创建。

包含项目 jar 工件的 /opt/docker 目录的屏幕截图


步骤 12:配置 Ansible 主机

当您控制 Ansible playbook 时,您需要指定的它行控制的机箱。您需要利用四种方式方法施行此控制:


  1. 直接在剧本中指定主机:在剧本中,您可以将hosts参数设置为 IP 地址或主机名列表。
  2. 使用清单文件: Ansible 允许您在清单文件中定义主机列表,并在运行 playbook 时引用该文件。默认清单文件是/etc/ansible/hosts


通过编辑/etc/ansible/hosts ,您可以轻松管理主机组,而无需在每次运行 playbook 时写出它们的 IP 地址。


我要们确认进行如下ftp命令来搜寻 AnsibleServer EC2 例子主机系统。
 sudo ifconfig 


AnsibleServer EC2实例的网络接口设置截图


搜到AnsibleServer EC2具体方法机箱后,是可以能够程序执行接下来ps命令将其调用到Ansible机箱文本中。


 sudo vi /etc/ansible/hosts


您还能否增长“[ansible]”身为符合

Ansible 主机文件的屏幕截图


倘若您正当管理系统这个的功能项目器集群技术,因此要想将 playbook 运用于所以的功能项目器,则不用办理在 playbook 大拇某个4个的功能项目器的 IP 注册地址,您只需将所以的功能项目器“添加到明细单文件下载中的这个组中,那么某个该剧中的项目组。


步骤 13:为 Ansible 配置对 localhost 的无密码 SSH 身份验证

Ansible 旨在通过自动化审理手机远程业务器上的责任。无账号登陆密码 SSH 生份印证使 Ansible 可以相连接到以上业务器,而就不需要清理发送账号登陆密码。执行力此ps命令,在使用 ansible-admin 我们的 SSH 密匙创建活动从您的计算方式出来机到另一个台计算方式出来机(举列 IP 地扯 172.31.34.41 的计算方式出来机)的稳定对接。


 sudo ssh-copy-id -i /home/{your user name}/.ssh/id_rsa.pub {your user name}@{your host address}


就我来说 ,它看上去像如此。
 sudo ssh-copy-id -i /home/ansible-admin/.ssh/id_rsa.pub [email protected] 


无密码ssh认证安装成功结果截图


现在您可以看到“添加的密钥数量:1” 。表示无密码SSH认证安装成功完成。

第 14 步:为 Docker 任务创建新的 Ansible playbook

到现在 Ansible 已都設置用完并都可不可以自动运行,您都可不可以为您的管制造一款 新的 Ansible 剧情。该剧情将让 Ansible 创办新的 Docker 系统镜像并将其传送回 Dockerhub。您就能够如此做:


  1. 首先创建一个新的 Ansible playbook 文件。只需使用这个命令即可。
 touch hello-app.yml


  1. 然后,编辑新制作的hello-app.yml文件。使用此命令打开它进行编辑。
 vi hello-app.yml


  1. 在文件中,输入以下内容。
 --- - hosts: ansible user: root tasks: - name: create docker image command: docker build -t hello:latest . args: chdir: /opt/docker - name: create tag to push image onto dockerhub command: docker tag hello:latest zufarexplainedit/hello:latest - name: push docker image onto dockerhub command: docker push zufarexplainedit/hello:latest
适宜于 Docker 作业的 Ansible playbook 已可供选择。

步骤 13:使用 Docker 任务测试 Ansible playbook

Ansible、Ansible playbook、AnsibleServer 和 JenkinsServer 均已合适选配,现阶段是測試 Ansible playbook 的之前了。


汽车导航到 Ansible playbook 的地址。
 cd /opt/docker


接下来,运行左右ftp命令。
 sudo -u ansible-admin ansible-playbook /opt/docker/hello-app.yml


完工后,您将遇到 Ansible playbook 的顺利完成继续执行导致。

docker任务的ansible playbook成功执行结果截图


另外,请花点时长访问权限您的 Dockerhub 的账号并确认新映像如今会不会因而。


添加了新镜像的 Dockerhub 帐户的屏幕截图


您想必会见到新使用的图象。此最终结果证明您的 Ansible 脚本是有效的。


步骤 14:将 Ansible Docker 任务集成管道

现在, “Publish over SSH” Github 插件、Ansible 和 Docker 已安装并配置完毕,您现在可以将它们全部集成到您在“[模块 2]:Jenkins 服务器”中创建的管道中,以传输项目 jar 工件从“ JenkinsServer”“AnsibleServer” ,然后从您的项目构建一个新的 Docker 镜像,然后将此 Docker 镜像推送到 Dockerhub 上。


要实现它,您需要执行以下步骤:

  1. 导航到“仪表板” →“CI_CD_Pipeline”→“配置”→“构建后操作”→“通过 SSH 发送构建工件”。
  2. “sudo -u ansible-admin ansible-playbook /opt/docker/hello-app.yml”命令添加到“Exec command”输入中。


管道配置中“通过 SSH 发送构建工件”部分的屏幕截图


最后,单击“应用”“保存”按钮即可完成 Ansible Docker 与管道的集成任务。

第 15 步:测试集成到管道中的“带有 Docker 任务的 Ansible playbook

现在,您可以测试升级后的管道,以将项目 jar 工件从“ JenkinsServer”无缝传输到“AnsibleServer” ,然后从您的项目构建新的 Docker 映像,然后将此 Docker 映像推送到 Dockerhub。为此,您需要单击“立即构建”按钮。因此,您将在构建历史记录中看到成功的作业结果。


不但,请花点时候网络访问您的 Dockerhub 账号并查验新映像到现在什么情况下可以说。


添加了新镜像的 Dockerhub 帐户的屏幕截图


您可以会遇到新增长的图文。此可是认可您的一般包括 Docker 工作的 Ansible playbook 已经是功ibms到途径中。


[模块7]:Kubernetes

现在让我们在 EC2 实例上配置 K8s。您将创建一个新的 EC2 实例并安装其 kubectl 命令行工具以进一步与Kubernetes集群交互。


步骤 1:启动 AWS EC2 虚拟服务器实例

使用本教程“启动 AWS EC2 虚拟服务器实例”部分中的说明来完成此步骤。


不要忘记添加安全组设置。它允许所有工具SSH分别在端口808022上工作。


使用名称“K8sServer”来区分您的 EC2 虚拟服务器实例。

您可以为新的“K8sServer” EC2 实例重复使用“CI_CD_Pipeline”安全组和“CI_CD_Pipeline_Key_Pair”


步骤 2:连接到 AWS EC2 虚拟服务器实例

单击“进行连接”快捷。

指向“连接”按钮的 AWS 网页的屏幕截图


如今您也可以了解到 EC2 Virtual Server 经典案例线设备。

AWS EC2虚拟服务器实例在线终端截图


步骤 3:更改“KubernetesServer”AWS EC2 虚拟服务器实例的主机名

当您如果在 EC2 虚拟的服务的器样例上显卡配置 KuberenetesServer 时,您应该做的第1 件事是变更其冷水机名。


企业逐渐开始做吧。程序执行此下令点击电脑主机名文件名称:
 sudo vi /etc/hostname


你会发现这些的的东西。

带有主机名文件的 AWS EC2 虚拟服务器实例的屏幕截图


将此主机名替换为“kubernetes-server”,然后重新启动它。

 sudo init 6


您的主机箱女将被改动。

带有指向主机名的指针的 AWS EC2 虚拟服务器实例终端的屏幕截图


步骤 4:检查 AWS CLI 版本

使用此命令检查AWS版本。

 aws --version


这些您就可不可以看清现今的 aws-cli 最新版本。

AWS EC2虚拟服务器实例在线终端与aws版本命令结果的屏幕截图


如果您可以看到版本aws-cli/1.18 ,则应该下载最新版本。


步骤 5:更新 AWS CLI

现时,当您显示 EC2 实验总结上面旧的 aws-cli 发行版时,您还要系统更新它。从而,请换到 AWS → word表格 → AWS 运行命令行对话框 → 第 2 版顾客指引。


AWS EC2 虚拟服务器实例网页的屏幕截图以及版本 2 用户指南


复制粘贴curl命令


首要,连接此ps命令下载链接 awscli 版本的 2。
 curl "//awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
等候在线下载阶段已经开始。


你应有看看这样的的地方。

下载aws版本2结果的AWS EC2虚拟服务器实例在线终端的屏幕截图


前者,您须要履行此ftp命令来解压缩视频 awscli 发行版 2 存挡。
 unzip awscliv2.zip


3、,您应当执行工作此指令来装设 awscli 最新版本 2。
 sudo ./aws/install


接着,自己加载失败 Kubernetes EC2 Virtual Server 事例在线视频终端门店。


下面来,安全使用此强制性进行检查AWS发行版
aws --version


您就可以看看 aws cli 有 aws-cli/2。

AWS EC2虚拟服务器实例在线终端与aws版本命令结果的屏幕截图


第6步:安装kubectl

Kubectl是一个基本的命令行工具,用于与任何 Kubernetes 集群交互,无论底层基础设施如何。它允许您在 Kubernetes 集群中管理资源、部署应用程序、配置网络、访问日志以及执行各种其他任务。


现在您需要安装 kubectl 命令行工具以进一步与 Kubernetes 集群交互。为此,您需要转到AWS文档Amazon EKS用户指南安装更新kubectlLinux


亦或是只需单击连接 。


AWS EKS 用户指南的屏幕截图



首选,进行此下令下截 kubectl。
 curl -O //s3.us-west-2.amazonaws.com/amazon-eks/1.27.1/2024-04-19/bin/linux/amd64/kubectl


等下载下载步骤。


你就看看相近这样的话的工具。

AWS EC2虚拟服务器实例在线终端下载kubectl结果的屏幕截图


授于 kubectl 最高权限。
 chmod +x kubectl


将 kubectl 走动到 /usr/local/bin 文本夹。
 sudo mv kubectl /usr/local/bin


检查报告 kubectl 的游戏版本。
 kubectl version --output=yaml


第7步:安装eksctl

Eksctl是另一个专门为 Amazon EKS 服务定制的命令行工具。 Eksctl 可用于创建 AWS EKS 集群、管理节点组以及执行特定于 EKS 的任务,例如通过抽象出大部分 AWS 基础设施设置和管理来与 IAM 角色和其他 AWS 服务集成。


执行工作操作命令下载地址kubectl。
 curl --silent --location "//github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp


将 eksctl 移动手机到 /usr/local/bin 文档夹。
 sudo mv /tmp/eksctl /usr/local/bin


捡查 eksctl 的型号。
 eksctl version


你可以看见板本

eksctl版本的AWS EC2虚拟服务器实例在线终端截图


步骤 8:为 eksctl 创建 IAM 角色

您需要创建一个 IAM 角色并将其附加到您的“KubernetesServer” EC2 实例。

对此,您要在搜寻框中找自己 EC2。


单击的链接的选择 EC2 没有实体业务器。

指向“IAM”的 AWS 网页屏幕截图


转到IAM仪表板角色

指向“IAM 角色”的 AWS 网页屏幕截图


单击IAM角色网页上的“创建角色”按钮。


然后选择“AWS服务”、“EC2”。然后单击“下一步”按钮。

指向“IAM 角色配置”的 AWS 网页屏幕截图


然后,在搜索框中找到“AmazonEC2FullAccess”“AmazonEC2FullAccess”“IAMFullAccess”“AWSCloudFormationFullAccess” ,然后单击“添加权限”按钮。


然后单击“下一步”按钮。

AWS 网页的屏幕截图,其中包含指向 AdministratorAccess 权限的指针

然后在“角色名称”输入中输入“Eksctl_Role”

然后单击“创建角色”按钮。

AWS 网页的屏幕截图,其中包含指向权限角色配置的指针


职业决定建立做好。


步骤 9:将 IAM 角色与 eksctl 连接

转到 AWS EC2 实例网页。选择“KuberbetesServer”。然后单击“操作”“安全”“修改 IAM 角色”。


AWS 网页的屏幕截图,其中包含指向 KubernetesServer Security 按钮的指针



选择“Eksctl_Role” ,然后单击“更新 IAM 角色”按钮。


AWS 网页的屏幕截图,其中包含指向 Elsctl_Role IAM 角色的指针


现在您的 IAM 角色已与“EKS_Server”和 eksctl 工具连接。

步骤10:创建eksctl集群


Amazon EKS(弹性 Kubernetes 服务)集群是 AWS 上的托管 Kubernetes 环境,可自动执行复杂的基础设施任务,例如设置、扩展和维护。它至关重要,因为它提供了一个高效、安全且经过 AWS 优化的平台,用于部署、管理和扩展容器化应用程序、简化操作并使开发人员能够专注于编码而不是管理底层基础设施。


在,是阶段设计您的 EKS 集群式了。


为此,请按照下列步骤操作:


  1. 使用您的具体信息修改以下命令。
 eksctl create cluster --name cluster-name \ --region region-name \ --node-type instance-type \ --nodes-min 2 \ --nodes-max 2 \ --zones <AZ-1>,<AZ-2>


列如 ,就我而言的,它看了 像这样一来。
 eksctl create cluster --name zufarexplainedit \ --region eu-north-1 \ --node-type t3.micro


  1. 执行修改后的命令,耐心等待集群创建过程完成。您会注意到,EKS 集群状态在 AWS CloudFormation 网页上指示为“正在创建”


AWS 网页的屏幕截图,其中包含指向 AWS CloudFormation 的指针,您可以在其中看到 EKS 集群“正在创建”状态


群集創建进程中经常需求有可能 20 分钟的英文。完整后,设备将信息显示该进程中的但是。


AWS 网页的屏幕截图,其中指向 AWS EC2 终端,您可以在其中查看 EKS 集群创建结果


此外,您可以在 AWS CloudFormation 网页上验证EKS 集群创建成功的状态。


AWS 网页的屏幕截图,其中包含指向 AWS CloudFormation 的指针,您可以在其中查看 EKS 集群创建结果


步骤11:创建Kubernetes部署yaml文件

Kubernetes 部署 YAML 文件是以 YAML 格式编写的配置脚本,定义如何管理和维护 Kubernetes 集群中的特定应用程序或服务。它封装了用于编排运行应用程序的容器的部署、扩展、更新和监视的指令。该文件包含容器映像、所需副本数量、资源限制、环境变量、网络设置等详细信息。当应用于 Kubernetes 集群时,部署 YAML 文件可确保应用程序的所需状态,自动管理容器的创建、扩展和恢复,以维持所需的可用性和可靠性级别。


現在,现在 Kubernetes 群集、eksctl、kubectl 的安装程序和配备,您能否创立了 Kubernetes 布署 yaml 资料。


您也可以借助完成下类指令来能做到这一个。
 touch hello-app-deployment.yaml


接着,确认执行ftp命令以下的ftp命令撰写该资料。
 vi hello-app-deployment.yaml


将此信息增长到 hello-app-deployment.yaml。
 apiVersion: apps/v1 kind: Deployment metadata: name: zufarexplainedit-hello-app labels: app: hello-app spec: replicas: 2 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: containers: - name: hello-app image: zufarexplainedit/hello imagePullPolicy: Always ports: - containerPort: 8080 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 1


如今 hello-app-deployment.yaml 已创造并可供用。


第12步:创建Kubernetes服务yaml文件

Kubernetes 服务 YAML 文件是以 YAML 格式编写的配置脚本,它定义一组 Pod 的网络抽象,允许在 Kubernetes 集群内一致地访问它们。该文件概述了其他服务或外部客户端应如何发现、访问和平衡该服务的负载。它包括服务类型(ClusterIP、NodePort、LoadBalancer)、端口号、用于识别 pod 的选择器等规范。当应用于 Kubernetes 集群时,服务 YAML 文件会创建一个虚拟 IP 和端口,将流量路由到适当的 Pod,抽象底层 Pod 更改并提供稳定的通信端点,从而实现无缝连接和动态扩展。


当 Kubernetes 服务器集群、eksctl、kubectl 怎么安装并性能做完后,您可以组建 Kubernetes Service yaml zip文件。


与其,您必须 可以通过施行以上命令提示符来建设 Kubernetes 服务管理 yaml zip文件。
 touch hello-app-service.yaml


那么,凭借下达下述下令编写该系统文件。
 vi hello-app-service.yaml


将此信息内容生成到 hello-app-deployment.yaml。
 apiVersion: v1 kind: Service metadata: name: zufarexplainedit-hello-app-service labels: app: hello-app spec: selector: app: hello-app ports: - port: 8080 targetPort: 8080 type: LoadBalancer
現在 hello-app-service.yaml 已运行并可供运行。


步骤13:使用kubectl测试Kubernetes集群

非常成功安裝和设置 Kubernetes EKS 云计算平台,并準備好 Kubernetes 服务性和设置系统文件后,就行选择 kubectl 强制性通过检查了。


  1. 应用部署。

    便用一下命令提示符应运部署安排标准配置。
 kubectl apply -f hello-app-deployment.yaml
这将组建享有自定义量的坐骑和翻滚系统更新对策的推进,保证 应用编译程序的需用性和可工作管理性。


2. 申请服务。

接下去来,采用服务质量设置。
 kubectl apply -f hello-app-service.yaml
这将设备一名 LoadBalancer 性质的服务管理,将您的APP步骤公开透明到互下载客户端络网。请勿事项,运行环境 LoadBalancer 并获取一个静态 IP ip地址会须得一段落用时。


  1. 检查负载均衡器状态。

    视频监控您的工作动用的状态。
 kubectl get service zufarexplainedit-hello-app-service
安排内部 IP 后,您就近乎做准备好采访您的用途程序代码了。


  1. 访问您的应用程序。

    便用 Web 看器进入都分配好的第三方 IP 地此,后跟:8080。时光后面,网站将弹出,并提示“HelloWorld”qq信息。请切记,刚开始弹出可能需几五秒。


    Hello应用网页截图


使用 kubectl 命令进行清理

当您须得彻底清除 Kubernetes 条件中的成本时,就能够操作以内 kubectl 系统命令来管用删去召开会议、Pod 和服务保障。


1. 删除所有部署

要卸载几乎所有布署,能够操作以上操作命令。
 kubectl delete deployments --all
此运作可保持云计算平台中不保留其他活动组织的部署安排事列。


2. 删除所有 Pod

若必须册除任何 Pod,无论怎样患者有无由研究部署标准化管理,能够以用到下类操作命令。
 kubectl delete pods --all
清空 Pod 能能益处开启集群式心态或者新部署工作做到位备考。


3.删除所有服务

要去除将广泛软件包流程图泄露给wifi网络的服务性,您能否实用下面的系统命令。
 kubectl delete services --all
删掉服务保障机会会引致关机,之所以在坚持实际操作的时候请了解其影响到。

删除 Amazon EKS 集群

要删除与使用eksctl创建的指定 Amazon EKS 集群关联的所有资源(包括工作线程节点、网络组件和其他资源),您可以使用以下命令。

 eksctl delete cluster --name {your cluster name} --region {your region name}
给我来看是的。
 eksctl delete cluster --name zufarexplainedit --region eu-north-1
保证 您肯定要停下集体,担心此运营就是不不可逆转的,有时候会引发数据资料缺失。



步骤 14:在“KubernetesServer”AWS EC2 虚拟服务器实例中添加并配置新用户

现在,让我们向“KubernetesServer” AWS EC2 虚拟服务器实例添加一个新的ansible-admin用户。


因为这,请在使用此命令行。
 sudo useradd ansible-admin


然后,设置ansible-admin用户的密码。

 sudo passwd ansible-admin


此外,您需要通过编辑sudoers文件来配置用户权限。

 sudo visudo


“ansible-admin ALL=(ALL) ALL”添加到此sudoers文件中。

AWS EC2 虚拟服务器实例终端的屏幕截图,其中包含指向管理员权限的指针


另外,您需要编辑/etc/ssh/sshd_config文件以启用密码身份验证。

 sudo vi /etc/ssh/sshd_config 


AWS EC2 虚拟服务器实例终端的屏幕截图,其中包含指向管理设置的指针


然而您是需要开始读取服务于来开始某些更换。
 sudo service sshd reload


实行此系统命令的报告是,您将得到:

AWS EC2 虚拟服务器实例终端的屏幕截图,其中包含指向 sshd 重新加载结果的指针


现再,您应该运行此系统运行命令来不要为大部分某个系统运行命令生成 sudo。
 sudo su - ansible-admin


步骤 15:在 AWS EC2 虚拟服务器实例中生成密钥

您计划在本文中进一步管理远程服务器,例如K8s EC2 虚拟服务器实例。这就是为什么您需要设置 SSH 密钥。


 ssh-keygen


强制执行此指令的然而是,您将看到了:

AWS EC2 Virtual Server 实例终端的屏幕截图,其中包含指向 ssh-keygen 结果的指针


当今 SSH win7密匙已提取并可供采用。

步骤 16:为 Ansible 配置对 localhost 的无密码 SSH 身份验证

Ansible 为了更好地自然执行程序无线服务项目的器上的的任务。无密匙 SSH 真实身份确认使 Ansible 就可以联系到这样的服务项目的器,而无须带有大量手动复制粘贴密匙。继续执行此运行命令,的使用 ansible-admin 微信用户的 SSH 密匙创立了从您的求算的机到另外一只台求算的机(举个例子 IP 地止 172.31.34.41 的求算的机)的平安联接。


 sudo ssh-copy-id -i /home/{your user name}/.ssh/id_rsa.pub {your user name}@{your host address}


就我们来说,它看上去像这般。
 sudo ssh-copy-id -i /home/ansible-admin/.ssh/id_rsa.pub [email protected] 


无密码ssh认证安装成功结果截图


现在您可以看到“添加的密钥数量:1” 。表示无密码SSH认证安装成功完成。


步骤 17:在 AnsibleServer EC2 实例中配置 Ansible 主机

当您运行 Ansible playbook 时,您可以指定它应该运行的主机。在此步骤中,您需要指定 KubernetesServer EC2 实例主机。为此,您需要重复在“ [模块 6]:Ansible”中传递的相同步骤。


我门利用连接以下的运行命令来快速搜索 KubernetesServer EC2 实验总结主机箱。
 sudo ifconfig 


“ifconfig”文件的屏幕截图


找到了 KubernetesServer EC2 例子虚拟主机系统后,能完成执行工作下例下令将其加入到 Ansible 虚拟主机系统文件名中。
 sudo vi /etc/ansible/hosts 


ansible 和 kubernetes 主机的“hosts”文件的屏幕截图


您还行增添“[kubernetes]”最为规范

第 18 步:为 Kubernetes 任务创建新的 Ansible playbook

如今 Kubernetes 已全部设为结束之后,都会慢慢用了,您都会为您的管路制造一款 分为 Kubernetes 日常任务的新 Ansible playbook。该剧本模板将让 Ansible 用 kubectl 命令提示符在 Kubernetes 云计算平台上运转您的利用系统软件。


您能够那么做:


  1. 首先创建一个新的 Ansible playbook 文件。只需使用这个命令即可。
 touch kubernetes-hello-app.yml


  1. 然后,编辑新制作的hello-app.yml文件。使用此命令打开它进行编辑。
 vi kubernetes-hello-app.yml


  1. 在文件中,输入以下内容:
 --- - hosts: kubernetes tasks: - name: deploy regapp on kubernetes command: kubectl apply -f hello-app-deployment.yaml - name: create service for regapp command: kubectl apply -f hello-app-service.yaml - name: update deployment with new pods if image updated in docker hub command: kubectl rollout restart deployment.apps/zufarexplainedit-hello-app
用在 Kubernetes 作业的 Ansible playbook 已可供选用。


步骤 19:将 Kubernetes 任务的新 Ansible playbook 与 Jenkins 集成

在 Kubernetes、Ansible 和使用在 Kubernetes 作业的 Ansible playbook 均已设定及时并可不可运转,您可不可将其与 Jenkins 整合。


  1. 转到 JenkinsServer → Jenkins 仪器仪表板 → 新的项目。
  2. 創建其名为“CD-Job”的新 Jenkins Freestyle 工作。


    Jenkins 新的 freestyle 项目“CD-Job”的屏幕截图


  3. 单击“确实”按纽。
  4. 转到“引入后进行”个部分。
  5. 单击“增加勾勒后操控”按健。
  6. 进行“完成 SSH 发送给营造零件”页面设置。
  7. 选定 “AnsibleServer”成为 SSH 服務器。
  8. 将此命令提示符加到“exec command”键入中。


 sudo -u ansible-admin ansible-playbook /opt/docker/kubernetes-hello-app.yml


  1. 单击“软件应用”和“另存”旋钮。
  2. 转到 Jenkins 汽车仪表盘板→“CI_CD_Pipeline”→手机配置→“建设方案后操作方法”地方。
  3. 单击“加上打造后进行”按健。
  4. 选择“融合其余该项目”页面设置。
  5. 转到“构造 其它的项目流程”部份。
  6. 选用“仅在融合稳固时闪避”高级设置。
  7. 将“CD-Job”使用到“要引入的好项目”显示中。



    “构建其他项目”部分的屏幕截图


  8. 单击“使用”和“储存”旋钮。


现再您能观点管线早已已经完整但会能动用了。


第 20 步:测试最终管道版本

当今是测验不可能供水管道板本的之前了。


导航仪到 Jenkins → Jenkins 电子仪表板 →“CI_CD_Pipeline”。


单击“即时创设”按健。


要察看没想到,请察看构造 操控台运行日志。


构建控制台日志的屏幕截图


您会还要注意到引入抑制台运行日志中引起了“CD-Job”,因此以后方式符号为“成功的英文”。 4前者,您就能够前去游玩 Dockerhub 核对新 Docker 镜象的调用。接下来,您会运行手机网络观看器考察您的利用小程序。键入分配比例的异常 IP 门店地址,后跟“:8080”。稍作接下来,网页将弹出,提示“HelloWorld”发消息。


结论

这点現代 CI/CD 地埋管的设定越来越好!你做得越来越优秀,你是一个个认为的人物!


感谢的话语您的每件事全力以赴!




关于作者

Zufar Sunagatov是一位经验丰富的高级软件工程师,热衷于设计现代软件系统。


祖法尔·苏纳加托夫


  • 为 Citi(伦敦)、MTS(莫斯科)等公司使用 Java、Kotlin、AWS、Docker 和 Kubernetes 开发高性能分布式系统()。
  • 从头开始创立了 Ice Latte,一个开源在线市场(您可以加入 Zufar 的团队并在 GitHub 上为他的项目做出贡献:https: )。
  • 建立了 ZufarExplainedIT 社区,与他人分享他的知识和经验(您可以关注 Zufar 的 IT Telegram 社区: )。
  • 在ADPlist上辅导超过3000分钟并进行了60场课程,培养有抱负的人才()。
  • 作为会议和 IT YouTube 频道的演讲者,吸引观众参与,分享宝贵的见解(他的 YouTube 视频示例包括: 、 )。
  • 撰写了非常受欢迎的 IT 文章,每篇浏览量超过 7000 次(他的文章示例包括: “微服务架构模式第 1 部分:分解模式” 、 )。


바카라사이트 바카라사이트 온라인바카라