Augeas, meet libguestfs. Libguestfs is a library I'm writing which lets you examine and modify virtual machine disk images, so you can perform sysadmin tasks on virtual machines without needing to bring them up or log into them.
As of a few minutes ago, libguestfs now supports Augeas, so you can use Augeas to edit configuration files within the virtual machine. You will need the git version of libguestfs to get this at the moment, or it will appear in version 0.7 when I release it. http://et.redhat.com/~rjones/libguestfs/ http://git.et.redhat.com/?p=libguestfs.git;a=summary Here's an example session using the shell tool, editing the /etc/hosts file from a RHEL 5.2 virtual machine: $ guestfish -a RHEL52PV32.img -m /dev/VolGroup00/LogVol00 Welcome to guestfish, the libguestfs filesystem interactive shell for editing virtual machine filesystems. Type: 'help' for help with commands 'quit' to quit the shell ><fs> aug-init / 0 ><fs> aug-match /augeas/* /augeas/root /augeas/save /augeas/files ><fs> aug-match /files//error ><fs> aug-match /augeas//error ><fs> aug-match /augeas/root/* ><fs> aug-match /files/etc/* /files/etc/ldap.conf /files/etc/aliases /files/etc/yum.repos.d /files/etc/yum.conf /files/etc/sysconfig /files/etc/default /files/etc/inittab /files/etc/sysctl.conf /files/etc/hosts /files/etc/pam.d /files/etc/logrotate.d /files/etc/samba /files/etc/xinetd.conf /files/etc/xinetd.d /files/etc/fstab /files/etc/ssh /files/etc/exports ><fs> aug-match /files/etc/hosts/* /files/etc/hosts/comment[1] /files/etc/hosts/comment[2] /files/etc/hosts/1 /files/etc/hosts/2 ><fs> cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 ><fs> aug-get /files/etc/hosts/comment[1] Do not remove the following line, or various programs ><fs> help aug-insert aug-insert - insert a sibling Augeas node aug-insert <path> <label> <before> Create a new sibling "label" for "path", inserting it into the tree before or after "path" (depending on the boolean flag "before"). "path" must match exactly one existing node in the tree, and "label" must be a label, ie. not contain "/", "*" or end with a bracketed index "[N]". ><fs> aug-insert /files/etc/hosts/comment[2] comment false ><fs> aug-match /files/etc/hosts/* /files/etc/hosts/comment[1] /files/etc/hosts/comment[2] /files/etc/hosts/comment[3] /files/etc/hosts/1 /files/etc/hosts/2 ><fs> aug-set /files/etc/hosts/comment[3] HELLO ><fs> aug-save ><fs> cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. # HELLO 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 ><fs> help Command Description help display a list of commands or help on a command quit quit guestfish alloc allocate an image add-cdrom add a CD-ROM disk image to examine add-drive add an image to examine or modify aug-close close the current Augeas handle aug-defnode define an Augeas node aug-defvar define an Augeas variable aug-get look up the value of an Augeas path aug-init create a new Augeas handle aug-insert insert a sibling Augeas node aug-load load files into the tree aug-match return Augeas nodes which match path aug-mv move Augeas node aug-rm remove an Augeas path aug-save write all pending Augeas changes to disk aug-set set Augeas path to value cat list the contents of a file config add qemu parameters get-autosync get autosync mode get-path get the search path get-verbose get verbose mode kill-subprocess kill the qemu subprocess launch launch the qemu subprocess list-devices list the block devices list-partitions list the partitions ll list the files in a directory (long format) ls list the files in a directory lvs list the LVM logical volumes (LVs) lvs-full list the LVM logical volumes (LVs) mount mount a guest disk at a position in the filesystem pvs list the LVM physical volumes (PVs) pvs-full list the LVM physical volumes (PVs) read-lines read file as lines set-autosync set autosync mode set-path set the search path set-verbose set verbose mode sync sync disks, writes are flushed through to the disk image touch update file timestamps or create a new file vgs list the LVM volume groups (VGs) vgs-full list the LVM volume groups (VGs) Use -h <cmd> / help <cmd> to show detailed help for a command. Rich. -- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://et.redhat.com/~rjones/virt-top _______________________________________________ augeas-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/augeas-devel
