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

如何用Ansible自动化Libvirt虚拟机Domain XML的更新与验证

用Ansible自动化配置Libvirt虚拟机XML以支持增量备份

要实现Libvirt虚拟机的增量备份自动化,需要给Domain XML添加两个关键配置:

  • 顶级<domain>标签中的qemu命名空间声明
  • <qemu:capabilities>下的<qemu:add>元素

以下是完整的Ansible自动化流程,替代手动virsh edit操作:

步骤1:读取现有Domain XML

先把目标虚拟机的XML配置读取到Ansible变量中,后续用于修改:

- name: 读取目标虚拟机的XML配置
  community.general.virsh:
    command: dumpxml
    name: "{{ target_vm_name }}"
  register: vm_xml_raw
  become: true

步骤2:修改XML配置

使用community.general.xml模块处理XML,添加命名空间和所需元素:

- name: 为Domain XML添加qemu命名空间
  community.general.xml:
    xmlstring: "{{ vm_xml_raw.stdout }}"
    xpath: /domain
    attribute: xmlns:qemu
    value: "http://libvirt.org/schemas/domain/qemu/1.0"
    state: present
  register: modified_xml_namespace
  become: true

- name: 添加qemu:capabilities容器元素
  community.general.xml:
    xmlstring: "{{ modified_xml_namespace.xmlstring | default(vm_xml_raw.stdout) }}"
    xpath: /domain/qemu:capabilities
    state: present
    namespaces:
      qemu: http://libvirt.org/schemas/domain/qemu/1.0
  register: modified_xml_capabilities
  become: true

- name: 配置增量备份capability属性
  community.general.xml:
    xmlstring: "{{ modified_xml_capabilities.xmlstring | default(modified_xml_namespace.xmlstring) | default(vm_xml_raw.stdout) }}"
    xpath: /domain/qemu:capabilities/qemu:add
    attribute: capability
    value: incremental-backup
    state: present
    namespaces:
      qemu: http://libvirt.org/schemas/domain/qemu/1.0
  register: final_modified_xml
  become: true

步骤3:重新定义Domain

将修改后的XML写回Libvirt,完成配置更新:

- name: 重新定义虚拟机配置
  community.general.virsh:
    command: define
    xml: "{{ final_modified_xml.xmlstring }}"
  become: true

关键说明

  • 确保已安装community.general集合:执行ansible-galaxy collection install community.general完成安装
  • 所有操作需要root权限,Playbook中需通过become: true提升权限
  • 整个流程具备幂等性:如果目标命名空间或元素已存在,不会重复执行修改操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:25:09