gpt4 book ai didi

windows - 如何使用 Packer 在 Azure 中构建具有大文件的镜像?

转载 作者:行者123 更新时间:2023-12-03 02:05:15 26 4
gpt4 key购买 nike

我想在 Windows 2019 上的 Azure 中使用大文件构建镜像。该文件包含我创建图像所需的工件。虚拟机运行一切顺利,直到我尝试将 200MB 文件复制到主机。预计需要 11 个小时。就在那时,我发现了 WinRM 及其文件复制限制。

然后我发现了 http_directory 参数,用于通过 http 将文件复制到主机,但这对于 azure-arm 构建器不可用。

然后我发现我可以使用 SSH。问题是我无法从 ssh 配置程序启动并切换到 WinRM 配置程序来运行我的 ps1 配置脚本。我读到我可以从 ssh 开始,拍摄图像,然后用 WinRM 启动它。不理想。

我遇到了这个软件:“https://github.com/winfsp/sshfs-win” - 但我不知道配置的主机直接访问其配置的加壳主机的方法。

我遇到了 winrmcp,但它看起来很旧,如果我能弄清楚如何让它运行,它就不太可能工作。

我倾向于 blob 存储,但这似乎是一种逃避。

启动 Windows 2019 Server、将 200MB 文件复制到其中并运行 ps1 脚本的最佳方式是什么?

最佳答案

您可以尝试使用 Ansible 配置程序复制文件。它要快得多。当我复制 10MB 文件时,文件配置程序花费了大约 4 分钟,但 Ansible 配置程序只用了 15 秒。

加壳文件:

source "azure-arm" "example" {
use_azure_cli_auth = true
os_type = "Windows"
communicator = "winrm"
image_offer = "WindowsServer"
image_publisher = "MicrosoftWindowsServer"
image_sku = "2016-Datacenter"
managed_image_name = "image"
managed_image_resource_group_name = "rg"
location = "westeurope"
vm_size = "Standard_D2_v2"

winrm_insecure = true
winrm_timeout = "5m"
winrm_use_ssl = true
winrm_username = "packer"
}

build {
sources = ["sources.azure-arm.example"]

provisioner "ansible" {
playbook_file = "./copy.yml"
extra_arguments = [
"-e", "ansible_winrm_server_cert_validation=ignore",
"-e", "ansible_winrm_transport=ntlm"
]
user = "packer"
use_proxy = false
}
}

Ansible 剧本 - copy.yml:

---
- name: Copy file to Windows host
hosts: all

tasks:
- name: Copy file
win_copy:
src: ./10MB.bin
dest: C:\10MB.bin

关于windows - 如何使用 Packer 在 Azure 中构建具有大文件的镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75064445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com