[fedora-virt] ANNOUNCE: Augeas support added to libguestfs
Richard W.M. Jones
rjones at redhat.com
Thu Apr 9 12:34:29 UTC 2009
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
More information about the virt
mailing list