使用 Packer 自动执行 VMware vsphere 模板

在这篇博客文章中,我想向您展示如何使用 Packer 自动执行 VMware vsphere 模板。我喜欢它,因为packer可以在其他平台上使用,如Hyper-V,Azure,AWS或soagar for vmware Workstation或Virtual Box。通过这篇文章,我想向您展示如何为VMware vsphere自动创建Windows Server 2016和Windows Server 2019模板。
今天,我将首先在 vmware vsphere 上创建和部署。由于我想尽可能简单快捷地自动提供模板,因此在这种情况下的先决条件是可以直接从ISO完成。
我将这些模板用于各种测试环境,也适用于数据中心或客户的日常工作。您还可以使用这些模板作为 Citrix 虚拟应用程序和桌面或 VMware Horizon 环境的基础。

为什么要自动创建模板?

原因不是很简单。在许多环境中,模板创建一次,然后一次又一次地扩展。但是,这导致模板积累越来越多的垃圾并变得越来越大。因此,一次又一次地创建模板是有意义的。
此外,我想为我的环境中的不同语言提供相同的模板。对于不同的操作系统,例如对于 Microsoft Windows Server,模板中的设置对于所有版本和语言都应相同。

老实说,我是Evergreen环境的忠实朋友,因为否则你永远无法真正了解系统上到底定制了什么。

是管理员的朋友!

 

为什么使用打包程序创建模板?

在我看来,packer非常容易学习,并且与许多平台兼容。实际上,我最终选择了Packer,这是为VMware Workstation创建模板的唯一工具。我在家里的 LAB 环境运行在 VMware Workstation 和 Microsoft Azure 上。至少我没有找到另一个。如果您需要有关 Packer 的更多信息,请访问网站 https://www.packer.io/ 。在那里,您还可以获得很多语法示例。

我需要什么才能开始?

首先,您只需要包装工。通过使用完成的巧克力包装,整个事情可以更容易地设置。
要获取有关巧克力的更多信息,请 https://chocolatey.org/

首先,我安装巧克力。我在管理模式下通过Powershell所做的整个事情。

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

现在,我们必须重新启动Powershell,然后在管理模式下再次启动它。然后插入以下命令以安装 Packer 和所需的 Packer 插件。还要安装 Windows 更新的预配插件,因为我们希望自动更新创建的模板。

#install Packer Version 1.5.5

choco install packer --version=1.5.5

#install Packer Windows Update Provisioner

choco install Packer-Provisioner-Windows-Update

如果要测试系统上是否正确安装了 Packer,可以在 Powershell 中使用以下命令

packer version

您现在应该看到已安装的 Packer 版本。在我们的例子中,它是Packer版本1.5.5。

随着 Packer 的安装,我们现在已经奠定了基础,您可以使用 Packer 自动执行 VMware vsphere 模板。现在我们可以继续了!现在,我们希望开始使用 Packer 创建自动化的 VMware vsphere 模板。

开始使用 Packer 自动执行我们的第一个 VMware vsphere 模板

如果你愿意,你可以从Github克隆我的存储库。在这里,我提供了现成的模板。

GitHub - thomaspreischl/vsphere_packer_templates: this repository contains packer scripts to automatically create, preconfigure and deploy vm templates in vmware vsphere

在此存储库中,您可以找到适用于 Windows Server 2019 和 Windows Server 2016 的模板部署文件。如果您已将存储库克隆到PC,我们可以根据需要继续准备脚本。

为您的环境准备脚本文件

在开始使用 Packer 自动执行 VMware vsphere 模板之前,我们必须为您的环境准备脚本和文件。首先,为以后要部署的操作系统下载所需的模板非常重要。在我的情况下,这是德语版的Microsoft Windows Server 2019。您可以从 MSDN 帐户或 Microsoft 评估中心下载映像:https://www.microsoft.com/evalcenter/。

下载 ISO 文件后,必须将 ISO 上传到 VMWare vsphere 环境的其中一个数据存储。请确保 vcenter 帐户和我们稍后使用的主机能够访问 ISO 文件。

编辑环境的变量 .json 文件

如果您已上传 iso,则可以继续执行下一步。现在,我们将 variables.json 文件复制到 *mycopy*_variables.json。我们现在可以根据需要编辑变量文件。请填写登录帐户,密码等。我认为这是自我推崇的。如果没有,请给我留言,我会帮助你。

{


    "vsphere-server": "YOUR vCenterIP",
        "vsphere-user": "administrator@vsphere.local",
        "vsphere-password": "YOUR_Password",
        
        "vsphere-datacenter": "YOUR_Dataceneter",
        "vsphere-cluster": "YOUR_Cluster",
        "vsphere-network": "YOUR_Network",
        "vsphere-datastore": "Your_Datastore",
        "vsphere-folder": "Your_vmfolder",
          
          "vm-name": "Win2019-Template-Base",
          "vm-cpu-num": "2",
          "vm-mem-size": "4096",
          "vm-disk-size": "40960",
          "winadmin-password": "Your WindowsPassword",
          "os_iso_path": "[Area12_Auto-Tier_LUN1] ISO/Windows Server 2019/SW_DVD9_Win_Server_STD_CORE_2019_64Bit_German_DC_STD_MLF_X21-96583.ISO",
          "winrm_username": "Administrator",
            
        

    }

调整变量文件后,我们将其保存,现在调整自动取消操作.xml它位于文件夹w2019.base中。在这里,我们可能必须更改操作系统的语言以及Tempaltes操作系统的登录密码。

在自动取消操作中更新密码.xml

请在自动取消操作中的以下位置输入您的密码,该密码已存储在"winadmin-password"下.xml:

<AutoLogon>
                <Password>
                    <Value>####YOUR_PASSWORD####</Value>
                    <PlainText>true</PlainText>
                </Password>
                <LogonCount>2</LogonCount>
                <Username>Administrator</Username>
                <Enabled>true</Enabled>
            </AutoLogon>

并编辑此部分:

<UserAccounts>
                <AdministratorPassword>
                    <Value>####YOUR_PASSWORD####</Value>
                    <PlainText>true</PlainText>
                </AdministratorPassword>
            </UserAccounts>

我们模板的语言设置和时区

如果要使用不同语言的 Packer 自动执行 VMware vsphere 模板,还可以复制 win2019.base 文件夹,并根据需要编辑语言设置和时区。

要编辑语言,请更新自动取消.xml的以下部分。您只需将"de-DE"部分替换为要使用的语言代码,例如"en-US"。

您可以在此处找到包含 Windows 语言代码的列表:https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/

<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
                <UILanguage>de-DE</UILanguage>
            </SetupUILanguage>
            <InputLocale>de-DE</InputLocale>
            <SystemLocale>de-DE</SystemLocale>
            <UILanguage>de-DE</UILanguage>
            <UserLocale>de-DE</UserLocale>
        </component>

要编辑时区,您必须将"浪漫标准时间"更新到您的时区。更新此部分:

<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <TimeZone>Romance Standard Time</TimeZone>
        </component>

在这里,您可以获得包含Windows os的所有时区名称的列表:https://docs.microsoft.com/windows-hardware/manufacture/desktop/default-time-zones

根据我们的要求进行所有设置后,我们可以尝试整个事情。

使用 Packer 自动执行 VMware vsphere 模板 – 让我们来试一趟吧!

所有设置都已完成。我们放松地坐在办公桌前。咖啡是空的...

现在我们开始我们的第一次跑步,可以放松一下,喝杯咖啡,我希望我现在没有承诺太多

要使用打包器自动执行 vmware vsphere 模板,我们只需在模板的文件夹中进行更改并开始构建打包器即可。我将在下面为您提供一些调试和故障排除的提示。

使用 Packer 自动执行 VMware vsphere 模板 - 运行作业

现在我们必须等待一段时间,模板现在将被安装,更新和完成。当然,您可以在 vCenter 控制台中观看整个过程,并在这样做的同时享用咖啡。

使用 Packer 自动执行 VMware vsphere 模板 - 模板 GUI

如果作业成功完成,您将在 vcenter 的相应文件夹中找到该模板。

使用 Packer 自动执行 VMware vsphere 模板 - 模板

故障排除提示

在这里,您可以找到如何获取更多信息并排查包装工作业的快速概述。

要在调试模式下启动作业,您可以使用:

packer build xxx YOUR Variables, Files and so on xxx -debug

如果要覆盖工件,可以使用参数"-force"。

如果要将 UI 输出的时间戳输出为行前缀。您可以使用:"-时间戳-ui"

有关更多信息,请查看:https://www.packer.io/guides

链接到 Git 存储库

在这里,您可以再次找到指向存储库的链接

:https://github.com/thomaspreischl/vsphere_packer_templates

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值