----- "Kenneth Stailey" <kstailey@xxxxxxxxx> wrote: > --- On Wed, 11/10/10, Laine Stump <laine@xxxxxxxxx> wrote: > > > From: Laine Stump <laine@xxxxxxxxx> > > Subject: Re: Updating Multiple VM Guests? > > To: libvirt-users@xxxxxxxxxx > > Date: Wednesday, November 10, 2010, 1:27 PM > > On 11/10/2010 01:20 PM, Kenneth > > Stailey wrote: > > > > > > --- On Wed, 11/10/10, Laine Stump<laine@xxxxxxxxx> > > wrote: > > > > > >> From: Laine Stump<laine@xxxxxxxxx> > > >> Subject: Re: Updating Multiple VM > > Guests? > > >> To: libvirt-users@xxxxxxxxxx > > >> Date: Wednesday, November 10, 2010, 12:41 PM > > >> On 11/10/2010 11:59 AM, Kenneth > > >> Stailey wrote: > > >>> Hi, > > >>> > > >>> The libvirt.org FAQ says that "virsh edit" is > > the > > >> recommended way of updating the libvirt xml. > > >>> If a change has to be made to many VMs "virsh > > edit" is > > >> tedious, time-consuming and likely to be prone to > > careless > > >> errors. > > >>> Is there a command line approach to updating > > multiple > > >> VMs? > > >> > > >> How about: > > >> > > >> for g in guest1 guest2 > > guest3 guest4; do > > >> virsh dumpxml > > --inactive $g > > >>> /tmp/g.xml > > >> # do whatever sed/etc > > commands you > > >> want here > > >> virsh define > > /tmp/g.xml > > >> done > > >> > > >> (or something like that, anyway :-) > > > The "sed, etc." is a mistake since XML does not have > > guaranteed format. > > > > > > I suppose XMLStarlet could be used. > > > > > > http://xmlstar.sourceforge.net/ > > > > Yeah. sed is just my general purpose "replacement for > > editing by hand" > > token ;-) > > > > Something that is xml-aware would obviously be a much > > better choice. > > It's too painful to get right anyway. I just used this: > > #! /bin/bash > > # hack to fixup qemu version numbers in libvirt xml > > if [ `id -un` != root ]; then > echo this script only works as root > exit 1 > fi > > cd /dev/shm > > for i in `virsh list --all | awk '/running|shut off/ {print $2}'` > do > virsh dumpxml $i > $i.xml > sed -i.bak -e 's/pc-0.11/pc-0.12/' $i.xml yep, for case simple like this, sed is good enough to get it done. :-) > virsh define $i.xml > done > > > > _______________________________________________ > libvirt-users mailing list > libvirt-users@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvirt-users