Provide a common share between VMs to allow easy communication
Every VM now mounts a common SMB share on /tmp/shared.
This commit is contained in:
parent
0e3f03106f
commit
a025e7e7e2
|
@ -8,10 +8,13 @@ use POSIX qw(dup2);
|
||||||
use FileHandle;
|
use FileHandle;
|
||||||
use Cwd;
|
use Cwd;
|
||||||
use File::Basename;
|
use File::Basename;
|
||||||
|
use File::Path qw(make_path);
|
||||||
|
|
||||||
|
|
||||||
my $showGraphics = defined $ENV{'DISPLAY'};
|
my $showGraphics = defined $ENV{'DISPLAY'};
|
||||||
|
|
||||||
|
my $sharedDir;
|
||||||
|
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ($class, $args) = @_;
|
my ($class, $args) = @_;
|
||||||
|
@ -40,7 +43,11 @@ sub new {
|
||||||
}
|
}
|
||||||
|
|
||||||
my $tmpDir = $ENV{'TMPDIR'} || "/tmp";
|
my $tmpDir = $ENV{'TMPDIR'} || "/tmp";
|
||||||
|
unless (defined $sharedDir) {
|
||||||
|
$sharedDir = $tmpDir . "/xchg-shared";
|
||||||
|
make_path($sharedDir, { mode => 0700, owner => $< });
|
||||||
|
}
|
||||||
|
|
||||||
my $self = {
|
my $self = {
|
||||||
startCommand => $startCommand,
|
startCommand => $startCommand,
|
||||||
name => $name,
|
name => $name,
|
||||||
|
@ -123,6 +130,7 @@ sub start {
|
||||||
dup2(fileno($serialC), fileno(STDOUT));
|
dup2(fileno($serialC), fileno(STDOUT));
|
||||||
dup2(fileno($serialC), fileno(STDERR));
|
dup2(fileno($serialC), fileno(STDERR));
|
||||||
$ENV{TMPDIR} = $self->{stateDir};
|
$ENV{TMPDIR} = $self->{stateDir};
|
||||||
|
$ENV{SHARED_DIR} = $sharedDir;
|
||||||
$ENV{USE_TMPDIR} = 1;
|
$ENV{USE_TMPDIR} = 1;
|
||||||
$ENV{QEMU_OPTS} =
|
$ENV{QEMU_OPTS} =
|
||||||
"-no-reboot -monitor unix:./monitor -chardev socket,id=shell,path=./shell " .
|
"-no-reboot -monitor unix:./monitor -chardev socket,id=shell,path=./shell " .
|
||||||
|
|
|
@ -155,6 +155,14 @@ let
|
||||||
cd $TMPDIR
|
cd $TMPDIR
|
||||||
mkdir -p $TMPDIR/xchg
|
mkdir -p $TMPDIR/xchg
|
||||||
|
|
||||||
|
EXTRA_SAMBA_CONF="
|
||||||
|
[shared]
|
||||||
|
force user = $WHO
|
||||||
|
path = ''${SHARED_DIR:-$TMPDIR/xchg}
|
||||||
|
read only = no
|
||||||
|
guest ok = yes
|
||||||
|
"
|
||||||
|
|
||||||
${pkgs.vmTools.startSamba}
|
${pkgs.vmTools.startSamba}
|
||||||
|
|
||||||
# Start QEMU.
|
# Start QEMU.
|
||||||
|
@ -328,6 +336,12 @@ in
|
||||||
options = "guest,sec=none,noperm,noacl";
|
options = "guest,sec=none,noperm,noacl";
|
||||||
neededForBoot = true;
|
neededForBoot = true;
|
||||||
}
|
}
|
||||||
|
{ mountPoint = "/tmp/shared";
|
||||||
|
device = "//10.0.2.4/shared";
|
||||||
|
fsType = "cifs";
|
||||||
|
options = "guest,sec=none,noperm,noacl";
|
||||||
|
neededForBoot = true;
|
||||||
|
}
|
||||||
] ++ optional cfg.useBootLoader
|
] ++ optional cfg.useBootLoader
|
||||||
{ mountPoint = "/boot";
|
{ mountPoint = "/boot";
|
||||||
device = "/dev/disk/by-label/boot";
|
device = "/dev/disk/by-label/boot";
|
||||||
|
|
Loading…
Reference in New Issue