【问题标题】:Azure VM provisioning from custom VHD using saltstack使用 saltstack 从自定义 VHD 预配 Azure VM
【发布时间】:2018-03-09 17:53:22
【问题描述】:

我正在使用盐云配置文件从自定义 vhd 在 azure 上配置 vm,但大约需要 40 分钟,然后说“”

配置失败。虚拟机“customtestpsvm”的操作系统配置没有 在规定的时间内完成。 VM 可能仍会完成配置 成功地。请稍后检查配置状态.. OSProvisioningTimedOut

"

我执行的步骤如下:-

  1. 在门户上创建 azure vm。
  2. RDP 进入该虚拟机并进行必要的修改(开放端口和所有)和系统准备。
  3. 使用 Start-AzureStorageBlobCopy powershell 命令将 VM 的 OSDisk VHD 复制到 Blob 存储。
  4. 等待复制完成。
  5. 然后使用 vhd 的 uri(在 blob 存储中)作为盐云配置文件中的图像。

我使用的盐分如下:-

azure-win:
  cleanup_data_disks: True
  cleanup_disks: True
  cleanup_interfaces: True
  cleanup_vhds: True
  deploy: False
  expire_group_cache: 86400
  expire_interface_cache: 3600
  expire_network_cache: 3600
  expire_offer_cache: 604800
  expire_publisher_cache: 604800
  expire_sku_cache: 604800
  expire_subnet_cache: 3600
  expire_version_cache: 604800
  image: https://crimasterdisks791.blob.core.windows.net/vhds/custompsimage.vhd
  location: EastUS
  network: AzureARM-SanRamon-New
  network_resource_group: AzureARM-SanRamon-New-ResGrp
  os_disk_size_gb: 140
  provider: P_Azure
  resource_group: AzureARM-SanRamon-New-ResGrp
  security_group: cri-azure
  size: Basic_A1
  win_password: Spam99$$
  win_username: azureuser
  storage_account: crimasterdisks791
  subnet: ARM-Subnet1

【问题讨论】:

    标签: azure salt-stack


    【解决方案1】:

    请参阅以下链接中提到的建议。 https://github.com/saltstack/salt/issues/38907 https://github.com/saltstack/salt/issues/41315

    自定义 Salt 执行、状态和其他模块可以使用 Salt 文件服务器分发到 Salt minions。 在主服务器上通过 file_roots 选项定义的任何环境的根目录下都可以使用与模块类型相对应的目录。 目录前加下划线:https://docs.saltstack.com/en/latest/ref/file_server/dynamic-modules.html

    Azure 是 Microsoft 提供的一种云服务,提供虚拟机、SQL 服务、媒体服务等。本文档介绍如何使用 Salt Cloud 在 Azure 上创建安装了 Salt 的虚拟机。 https://docs.saltstack.com/en/latest/topics/cloud/azure.html

    配置操作。这就是您遇到此问题的原因,这可能是由于多种原因(取决于 VM 配置、位置、大小)

    您能否尝试导入以下内容:https://github.com/saltstack/salt/blob/develop/salt/cloud/clouds/azurearm.py#L77-L112 这些是 azurearm 所需的所有依赖项。因此,如果您有正确的依赖关系,这将有助于缩小范围。 你可以通过在你的 salt-cloud 盒子上运行 python -c 'import azure.storage' 来测试这些导入。如果您在其中任何一个上遇到导入错误,那么您就缺少该依赖项。

    【讨论】:

    • 当我使用 Marketplace 映像时,配置运行良好。
    【解决方案2】:

    按照https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sa-copy-generalized?toc=%2Fazure%2Fvirtual-machines%2Fwindows%2Ftoc.json的步骤解决了 但是要使其正常工作,还需要在 salt 代码中进行一项更改,

    对于自定义图像,os_type 参数取决于 win_installer 参数,

    if vm_['image'].startswith('http'):
    # https://{storage_account}.blob.core.windows.net/{path}/{vhd}
    source_image = VirtualHardDisk(vm_['image'])
    img_ref = None
    if win_installer:
    os_type = 'Windows'
    else:
    os_type = 'Linux'
    

    但是如果我们将 deploy 设置为 False,我们不会提供 win_installer,如果是 windows 自定义图像,os_type 也会设置为 Linux,这就是它失败的原因。

    我对代码 n 做了一些更改,直接在配置文件中提供了 os_type 以使其工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-06
      • 2016-11-12
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      相关资源
      最近更新 更多