I ran into one snag when testing full backups overnight.  Exporting a large
VM failed. I checked logs and discovered that it was due to an ansible
timeout, but not in my playbook.  I increased the timeout by
creating /etc/ovirt-engine/engine.conf.d/99-ansible-playbook-timeout.conf
on hosted engine and will give it another try.

On Thu, Jan 23, 2020 at 11:52 AM Jayme <jay...@gmail.com> wrote:

> Jan,
>
> I just ran a quick test with your suggestion and it seems like it is
> working as intended.  I need to do more testing with it but it looks like
> this may well be a viable solution:
>
> ---
> - hosts: localhost
>   connection: local
>
>   vars:
>     host: hostX
>     cluster: default
>     directory: '/backup/'
>     ova_ext: ova
>     vms:
>       - ovatest
>       - ovatest2
>
>   tasks:
>     - name: Backup VMs
>       include_tasks: backup-test.yml
>       loop: "{{ vms }}"
>
>
> backup-test.yml:
>
> ---
>
> - name: "Export VM to OVA"
>   ovirt_vm:
>     auth: "{{ ovirt_auth }}"
>     name: "{{ item }}"
>     state: exported
>     cluster: "{{ cluster }}"
>     export_ova:
>         host: "{{ host }}"
>         filename: "{{ item }}.{{ ova_ext }}"
>         directory: "{{ directory }}"
>
> - name: "Wait for export to finish"
>   wait_for:
>     path: "/backup/vm.ova"  # will change to using vars here
>
> The backup folder isn't accessible from where I'm running ansible from so
> I will need to check it remotely but that should be easy to solve.
>
> On Thu, Jan 23, 2020 at 11:43 AM Jan Zmeskal <jzmes...@redhat.com> wrote:
>
>> Hi Jayme,
>>
>> let us know how it went. Anyway, if you ever run into hard timeout, don't
>> despair. It also happened to me once when working with Ansible oVirt
>> modules and I just created an issue on GitHub where I requested this
>> timeout to be changed from hard-coded value to a configurable parameter
>> with some reasonable default. It was implemented rather quickly.
>>
>> Jan
>>
>> On Thu, Jan 23, 2020 at 4:32 PM Jayme <jay...@gmail.com> wrote:
>>
>>> That may work since the file will be tmp until finished being written. I
>>> was also just looking at the ovirt event info module
>>> https://docs.ansible.com/ansible/latest/modules/ovirt_event_info_module.html#ovirt-event-info-module
>>>  --
>>> I was thinking that I might be able to watch the event info wait on the
>>> event which shows the export was successful i.e. Vm X was exported
>>> successfully as a Virtual Appliance to path....
>>>
>>> There is also the event index which could be useful in terms of getting
>>> a starting point for the event search.
>>>
>>> I thought there would be a module or API for the running oVirt task list
>>> but so far I haven't been able to find any way to get info on oVirt tasks.
>>>
>>> I'll see if I can get something working with your suggestion and keep
>>> looking at API and ansible modules to see which make sense to use.
>>>
>>> I'm also worried that timeout issues may occur if I start waiting in
>>> some cases an hour or more for very large VM backups to complete before
>>> moving on to the next with ansible.
>>>
>>> Thanks!
>>>
>>> Jayme
>>>
>>> On Thu, Jan 23, 2020 at 10:00 AM Jan Zmeskal <jzmes...@redhat.com>
>>> wrote:
>>>
>>>> Hi Jayme,
>>>>
>>>> here's my idea. I haven't tested it but I believe it should work.
>>>> 1. Create a new task file (let's call it export_vm.yaml) and include
>>>> two tasks in there:
>>>> 1.1. First task uses ovirt_vm module (pretty much what you already
>>>> have) to export VM
>>>> 1.2. Second task uses wait_for
>>>> <https://docs.ansible.com/ansible/latest/modules/wait_for_module.html>
>>>> module (specifically its path parameter) to wait until the OVA file in
>>>> /backup exists
>>>> 2. Loop over those two tasks as explained here
>>>> <https://ericsysmin.com/2019/06/20/how-to-loop-blocks-of-code-in-ansible/>
>>>> .
>>>>
>>>> Hope this helps.
>>>>
>>>> Jan
>>>>
>>>> On Wed, Jan 22, 2020 at 4:15 PM Jayme <jay...@gmail.com> wrote:
>>>>
>>>>> I wrote a simple task that is using the ovirt_vm module
>>>>> https://docs.ansible.com/ansible/latest/modules/ovirt_vm_module.html --
>>>>> it essentially loops over a list of vms and exports them to OVA.
>>>>>
>>>>> The problem I have is the task is deemed changed once it successfully
>>>>> submits the export task to oVirt. This means that if I gave it a list of
>>>>> 100 Vms I believe it would start an export task on all of them. I want to
>>>>> prevent this and have it only export one VM at a time. In order to do this
>>>>> I believe I will need to find a way for the task to wait and somehow 
>>>>> verify
>>>>> that the export was completed before submitting a task for the next VM
>>>>> export.
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> - name: Export the VM
>>>>>   ovirt_vm:
>>>>>     auth: "{{ ovirt_auth }}"
>>>>>     name: "{{ item }}"
>>>>>     state: exported
>>>>>     cluster: default
>>>>>     export_ova:
>>>>>         host: Host0
>>>>>         filename: "{{ item }}"
>>>>>         directory: /backup/
>>>>>   with_items: "{{ vms }}"
>>>>>
>>>>> _______________________________________________
>>>>> Users mailing list -- users@ovirt.org
>>>>> To unsubscribe send an email to users-le...@ovirt.org
>>>>> Privacy Statement: https://www.ovirt.org/site/privacy-policy/
>>>>> oVirt Code of Conduct:
>>>>> https://www.ovirt.org/community/about/community-guidelines/
>>>>> List Archives:
>>>>> https://lists.ovirt.org/archives/list/users@ovirt.org/message/PXYAQ7YEBQCUWCAQCFAFXB3545LNB23X/
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Jan Zmeskal
>>>>
>>>> Quality Engineer, RHV Core System
>>>>
>>>> Red Hat <https://www.redhat.com>
>>>> <https://www.redhat.com>
>>>>
>>>
>>
>> --
>>
>> Jan Zmeskal
>>
>> Quality Engineer, RHV Core System
>>
>> Red Hat <https://www.redhat.com>
>> <https://www.redhat.com>
>>
>
_______________________________________________
Users mailing list -- users@ovirt.org
To unsubscribe send an email to users-le...@ovirt.org
Privacy Statement: https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct: 
https://www.ovirt.org/community/about/community-guidelines/
List Archives: 
https://lists.ovirt.org/archives/list/users@ovirt.org/message/SGTGKY3IB67DSCNAHZIIL5SWEEQJFYJU/

Reply via email to