如何将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
相关产品推荐
相关产品推荐

