* Try to hack around libvirt's stateful use of /etc/libvirt. (Routine
operations such as creating VMs modify the contents of /etc/libvirt.) svn path=/nixos/trunk/; revision=26644
This commit is contained in:
parent
ef80abc886
commit
1e2c0d6284
1 changed files with 18 additions and 1 deletions
|
@ -63,7 +63,24 @@ in
|
|||
''
|
||||
mkdir -p /var/log/libvirt/qemu -m 755
|
||||
rm -f /var/run/libvirtd.pid
|
||||
'';
|
||||
|
||||
mkdir -p /var/lib/libvirt -m 700
|
||||
mkdir -p /var/lib/libvirt/dnsmasq -m 700
|
||||
|
||||
# Libvirt unfortunately writes mutable state (such as
|
||||
# runtime changes to VM, network or filter configurations)
|
||||
# to /etc. So we can't use environment.etc to make the
|
||||
# default network and filter definitions available, since
|
||||
# libvirt will then modify the originals in the Nix store.
|
||||
# So here we copy them instead. Ugly.
|
||||
for i in $(cd ${pkgs.libvirt}/etc && echo \
|
||||
libvirt/qemu/networks/*.xml libvirt/qemu/networks/autostart/*.xml \
|
||||
libvirt/nwfilter/*.xml );
|
||||
do
|
||||
mkdir -p /etc/$(dirname $i) -m 755
|
||||
cp -fpd ${pkgs.libvirt}/etc/$i /etc/$i
|
||||
done
|
||||
''; # */
|
||||
|
||||
exec = "${pkgs.libvirt}/sbin/libvirtd --daemon --verbose";
|
||||
|
||||
|
|
Loading…
Reference in a new issue