为 Packer 配置 ESXi 先决条件

我目前正在为使用 ESXi 的客户进行 Packer 构建过程。我上一次在 Packer 上工作是在一年前,我很快意识到为了成功构建,我忘记了很多东西。使用新版本的产品体验新的错误和细微差别也很有趣。所以我想我可以记录一些我的经验来成功构建。我认为这很容易变成一个多部分的帖子,所以我会尽量按顺序记录我的过程。

如果您是新手,请快速回顾一下 Packer。Packer 是由给您带来 Terraform 和 Vagrant --HashiCorp 的好人带来的。它是一个相对较小的单个文件可执行文件,您可以使用它通过脚本以编程方式构建图像。然后,您可以拍摄这些图像并将它们上传到 AWS、Azure,或者在我的例子中是 VMware ESXi。

虽然 Packer 可以很好地与 Vagrant 和 VirtualBox 等工具配合使用。作为 VMware 顾问,我想在构建过程中利用 ESXi。但在开始构建 Packer 之前,我们需要在 ESXi 上设置一些先决条件。

我们需要做的第一件事是为我们的构建指定一个 ESXi 主机。我们需要主机而不是 vCenter 的原因是 Packer 将通过 SSH 连接到主机并使用各种 vim-cmd 命令来完成它的工作。有了主机后,需要完成三个步骤,如下所示。
 

启用 SSH
首先我们需要在我们的主机上启用 SSH。有许多不同的方法可以做到这一点。两种最简单的方法是通过 ESXi 主机 Web 客户端,或者由内部的 vCenter 管理。

对于主机 Web 客户端,在浏览器中导航到 https://esxi_host/ui 并使用 root 帐户登录。导航到“管理”窗格并选择“服务”选项卡。向下滚动到TSM-SSH并单击开始。在操作下,您可能还想将策略更改为使用主机启动和停止。

在 vCenter 中有点不同。找到您指定的主机。选择配置选项卡。向下滚动到安全配置文件,然后单击编辑。将出现一个新窗口。滚动并找到SSH,选择启动并将启动策略更改为使用主机启动和停止

启用 GuestIPHack
接下来我们需要在 ESXi 主机上运行一个命令。此命令的作用是允许 Packer 通过 ARP 数据包检查推断来宾 VM 的 IP 地址。

通过 SSH 连接到 ESXi 主机(例如使用 putty)并运行以下命令。

1
esxcli system settings advanced set -o /Net/GuestIPHack -i 1


在 ESXi 上打开 VNC 防火墙端口
最后,Packer 使用 VNC 向来宾 VM 发出引导命令。我相信默认范围是 5900 -- 6000。5900 是 VNC 的默认值,但如果您正在执行多个构建或端口正在使用中,Packer 将在该范围内循环,直到找到可用的范围。

在主机上运行以下命令,让我们修改和保存firewall service.xml文件。

1
2
3
chmod 644 /etc/vmware/firewall/service.xml
chmod +t /etc/vmware/firewall/service.xml
vi /etc/vmware/firewall/service.xml

滚动到文件的最后和最后一行的正上方 /ConfigRoot 按 i (插入)并添加以下内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<service id="1000">
  <id>packer-vnc-custom</id>
  <rule id="0000">
    <direction>inbound</direction>
    <protocol>tcp</protocol>
    <porttype>dst</porttype>
    <port>
      <begin>5900</begin>
      <end>6000</end>
    </port>
  </rule>
  <enabled>true</enabled>
  <required>true</required>
</service>

ESC并输入:wq! 保存并退出文件。

恢复service.xml文件的权限并重启防火墙。

1
2
chmod 444 /etc/vmware/firewall/service.xml
esxcli network firewall refresh

您可以通过返回 Web 客户端中的主机并检查“安全配置文件”部分来检查是否成功进行了更改。只会显示第一个端口,而不显示范围。您还可以在主机上使用以下命令来确认和查看端口设置的整个范围。

1
2
esxcli network firewall ruleset list
esxcli network firewall ruleset rule list


这些是您真正需要对 ESXi 主机进行的三个更改才能使 Packer 构建成功运行。我试图详细介绍每个步骤,以解释每个更改的作用。实际上,它应该只需要几分钟即可实施。

在一些安全环境中,我看到 SSH 设置了超时。如果您在启用 SSH 后发现 SSH 被禁用。您需要删除超时,因为 SSH 需要保持启用状态。您还需要确认没有外部防火墙阻止 Packer 访问 VNC 端口范围。

在以后的文章中,我将详细介绍配置 Windows Server 以运行 Packer 和导入/导出 OVF 图像的先决条件。

原文地址:https://blog.csdn.net/allway2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340