You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Packer中的vm_name变量传入Ansible以修改Windows主机名

问题:将Packer的vm_name变量传入Ansible以修改Windows主机名

我需要把Packer变量文件中定义的vm_name变量传递给Ansible,通过Playbook将Windows虚拟机的主机名修改为与VM名称一致。以下是相关配置及遇到的问题:

Packer变量文件(variables.pkr.hcl)片段

vm_name                         = "Pod-1-RDS-01"
vm_version                      = 16

Packer构建文件(windows.pkr.hcl)的Ansible参数配置

在配置Ansible的extra_arguments时,我加入了传递vm_name变量的配置:

extra_arguments = [
      "--connection", "winrm",
      "--extra-vars", "ansible_shell_type=powershell ansible_shell_executable=None", "'vm_name=${var.vm_name}'"]

构建命令

执行的Packer构建命令:

packer build -force -on-error=ask -var-file variables.pkr.hcl windows.pkr.hcl

期望的Ansible Playbook操作

成功传递变量后,希望通过以下Playbook任务修改主机名:

tasks:
    - name: 将主机名修改为{{ vm_name }}
      ansible.windows.win_hostname:
        name: "{{ vm_name }}"
        register: res
    - name: 重启虚拟机
      ansible.windows.win_reboot:
      when: res.reboot_required

遇到的问题

把vm_name添加到extra_arguments后,原本正常的构建流程出现异常,无法完成变量传递和主机名修改。

内容的提问来源于stack exchange,提问作者vBrit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:55:20