|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 04/11] osstest: add support for installing bare metal FreeBSD
On Wed, 2015-02-18 at 17:18 +0100, Roger Pau Monne wrote:
> - Add a list of FreeBSD ftp mirrors and iterate over them in order to
> find a working one.
I didn't actually see this, and in general we try and avoid dependencies
on random 3rd party webservices. Can we mirror FreeBSD locally like we
do with Debian?
> diff --git a/production-config b/production-config
> index 515bd98..fefc467 100644
> --- a/production-config
> +++ b/production-config
> @@ -86,6 +86,8 @@ HostProp_GenEtherPrefixBase 5a:36:0e:00
> # :00:01 guest number in job appended
> # ^^ xor'd with low 8 bits of flight
>
> +FreeBSDVersion current
I think for the final deployment we would want a specific version here.
IIRC the "current" stuff used with DiVersion is vestigial and no longer
used (or perhaps a standalone-mode-ism).
(or perhaps there is something which that graphic from 00/11 should be
telling me which I can't decipher)
> +exit 0 if $ho->{SharedReady};
I suppose this is some clever way to avoid unnecessary reinstalls?
> +sub get_mfsbsd() {
> +
> + # Figure out the path to the mfsBSD image we have to use.
> + # This can either come from a previous buildjob or from
> + # a pre-seeded image.
> +
> + if ($r{freebsd_buildjob}) {
> + # We are going to use the build output from a previous job.
> + return get_stashed('path_mfsbsd.img', $r{freebsd_buildjob});
> + } else {
> + # We are going to use a pre-seeded version.
> + return "$c{Images}/freebsd/$c{FreeBSDVersion}/$r{arch}/mfsbsd.img";
> + }
> +}
> +
> +sub get_set($) {
> + my ($set) = @_;
> +
> + if ($r{freebsd_buildjob}) {
> + # We are going to use the build output from a previous job.
> + return get_stashed("path_$set", $r{freebsd_buildjob});
> + } else {
> + # We are going to use a pre-seeded version.
> + return "$c{Images}/freebsd/$c{FreeBSDVersion}/$r{arch}/$set";
> + }
> +}
Isn't get_mfsbsd the same as get_set("mfsbsd.img") ?
> +
> +sub setup_sets() {
> + my $webfolder =
> "$c{WebspaceFile}/$c{WebspaceCommon}/freebsd/$ho->{Name}";
> +
> + # Link the sets to the public http folder
> + rmtree($webfolder);
> + mkpath($webfolder);
> + foreach my $set (@sets) {
> + my $set_src = abs_path(get_set($set));
> + logm("Using install set: $set_src");
> + symlink $set_src,"$webfolder/$set" or die "Unable to create symlink:
> $!";
This relies on the webserver and the controller having a shared NFS view
of the world, which I'm not sure is always true?
> + logm('Setting root shell to /bin/sh');
> + target_cmd_root($ho, 'chsh -s /bin/sh', 100);
Did you not already do this and/or can't you do it while tailoring
rather than after first boot?
> + logm('Adding osstest user');
> + target_cmd_root($ho, 'pw useradd osstest -m', 100);
> + target_cmd_root($ho, <<END, 100);
> + set -e
> + chsh -s /bin/sh osstest
> + mkdir -p /home/osstest/.ssh
> + cat <<ENDKEYS >/home/osstest/.ssh/authorized_keys
> +$authkeys
> +ENDKEYS
> +END
Likewise.
> + logm('OK: install completed');
That was remarkably painless, I thought it would be much worse!
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |