【发布时间】:2019-08-11 00:37:00
【问题描述】:
这里是 Ansible 新手:
我目前正在创建一个旨在启动、停止和重新启动 vm 的 ansible playbook。我需要根据来自同一输入参数变量的特定值执行不同的 shell 命令。当我尝试停止 VM 时,我假设 playbook 在运行 Start VM 任务时已停止。我将如何解决这个问题?
#Start the VM
- name: Start the VM
shell: virsh start "{{ vmname }}"
register: vmstate_start
when: state == "start"
- debug:
msg: "{{ vmstate_start.stdout }}"
#Stop the VM
- name: Stop the VM
shell: virsh shutdown "{{ vmname }}"
register: vmstate_stop
when: state == "stop"
- debug:
msg: "{{ vmstate_stop.stdout }}"
#Restart the VM
- name: Restart the VM
shell: virsh reboot "{{ vmname }}"
register: vmstate_reboot
when: state == "reboot"
- debug:
msg: "{{ vmstate_reboot.stdout }}"
致命:[111.111.1.1]:失败! => {"msg": "该任务包含一个带有未定义变量的选项。错误是:'dict object' has no attribute 'stdout'\n\n错误似乎在 '/root//ansible/kvm- vm-start-stop/kvm-vm-start-top.yaml':第 65 行,第 7 列,但可能\n位于文件中的其他位置,具体取决于确切的语法问题。\n\n违规行似乎是:\n \n\n - 调试:\n ^ 此处\n"}
【问题讨论】:
-
这与 Bash 有什么关系?这是您的 YAML 中的问题,不是吗?