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/