2014-09-22 2 views
4

Я пытаюсь определить виртуальную машину с помощью модуля virt и XML-файла. Эта задача:Ansible: virt module Ошибка XML

- name: Define VM using the XML file 
    virt: command=define 
     name={{ new_vm_name }} 
     xml={{ vm_images_path }}/{{ new_vm_xml }} 
    remote_user: root 
    delegate_to: "{{ hyperv }}" 

терпит неудачу с этой ошибкой:

failed: [vm-002 -> nat] => {"failed": true} 
msg: (domain_definition):1: Start tag expected, '<' not found 
/var/lib/libvirt/images//vm-002-ver1.1.0-00042.xml 

в то время как это работает:

- name: Define VM using the XML file 
    command: virsh define {{ vm_images_path }}/{{ new_vm_xml }} 
    remote_user: root 
    delegate_to: "{{ hyperv }}" 

XML файл является одинаковым в обоих случаях ни малейшего представления о том, почему первая терпит неудачу ? Я всегда предпочитаю использовать модули, чем пользовательские команды, поэтому я бы очень хотел, чтобы первая работала.

+0

Вы пытались указать параметры 'xml =' и/или 'name ='? – Mxx

+0

Извините за поздний ответ @Mxx, но не работает. У меня такая же ошибка! Спасибо за вашу помощь. –

ответ

3

Параметр xml модуля virt принимает XML-строку, а не имя файла.

Вы можете добиться того, что вы хотите, как это:

- name: Define VM using the XML file 
    virt: command=define 
     name={{ new_vm_name }} 
     xml={{ lookup('template', './libvirt_create_template.j2') }} 
    remote_user: root 
    delegate_to: "{{ hyperv }}" 

Файл вы ссылаетесь в поиске находится на сервере управления анзибля (то есть, где вы запустите playbooks).

С помощью поиска по шаблону вы можете указать, какие конкретные параметры виртуальной машины заменяются значениями из инвентаря для виртуальной машины, которую вы устанавливаете.

Смежные вопросы