summaryrefslogtreecommitdiffstats
path: root/installer/slxos-setup
diff options
context:
space:
mode:
Diffstat (limited to 'installer/slxos-setup')
-rwxr-xr-xinstaller/slxos-setup402
1 files changed, 0 insertions, 402 deletions
diff --git a/installer/slxos-setup b/installer/slxos-setup
deleted file mode 100755
index 8812a19b..00000000
--- a/installer/slxos-setup
+++ /dev/null
@@ -1,402 +0,0 @@
-#! /usr/bin/perl
-# -----------------------------------------------------------------------------
-# Copyright (c) 2006..2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-use strict;
-use warnings;
-
-my $abstract = q[
-slxos-setup
- This script installs an operating system into a folder that can be used as
- a stage1 system for OpenSLX.
-];
-
-use Encode;
-use Getopt::Long qw(:config pass_through);
-use Pod::Usage;
-
-# add the folder this script lives in and the lib-folder to perl's
-# search path for modules:
-use FindBin;
-use lib "$FindBin::RealBin";
-use lib "$FindBin::RealBin/../lib";
-
-use lib "$FindBin::RealBin/../config-db";
- # development path to config-db
-
-use OpenSLX::Basics;
-use OpenSLX::OSSetup::Engine;
-use OpenSLX::Utils;
-
-my %option;
-
-GetOptions(
- 'help|?' => \$option{helpReq},
- 'man' => \$option{manReq},
- 'version' => \$option{versionReq},
-) or pod2usage(2);
-pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $option{helpReq};
-if ($option{manReq}) {
- # avoid dubious problem with perldoc in combination with UTF-8 that
- # leads to strange dashes and single-quotes being used
- $ENV{LC_ALL} = 'POSIX';
- pod2usage(-verbose => 2)
-}
-if ($option{versionReq}) {
- system('slxversion');
- exit 1;
-}
-
-if ($> != 0) {
- die _tr("Sorry, this script can only be executed by the superuser!\n");
-}
-
-openslxInit();
-
-my $action = shift @ARGV || '';
-
-# create ossetup-engine for given distro and start it:
-my $engine = OpenSLX::OSSetup::Engine->new;
-if ($action =~ m[^import]i) {
- my $vendorOSName = shift @ARGV;
- if (!defined $vendorOSName) {
- print STDERR _tr("You need to give the name of the vendor-os you'd like to import!\n");
- pod2usage(2);
- }
- # we chdir into the script's folder such that all relative paths have
- # a known starting point:
- chdir($FindBin::RealBin)
- or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!);
- $engine->initialize($vendorOSName, 'import');
- if (!-e $engine->{'vendor-os-path'}) {
- die _tr("'%s' doesn't exist, giving up!\n", $engine->{'vendor-os-path'});
- }
- $engine->addInstalledVendorOSToConfigDB();
-} elsif ($action =~ m[^update]i) {
- my $vendorOSName = shift @ARGV;
- if (!defined $vendorOSName) {
- print STDERR _tr("You need to give the name of the vendor-os you'd like to update!\n");
- pod2usage(2);
- }
- # we chdir into the script's folder such that all relative paths have
- # a known starting point:
- chdir($FindBin::RealBin)
- or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!);
- $engine->initialize($vendorOSName, 'update');
- $engine->updateVendorOS();
-} elsif ($action =~ m[^shell]i) {
- my $vendorOSName = shift @ARGV;
- if (!defined $vendorOSName) {
- print STDERR _tr("You need to give the name of the vendor-os you'd like to start of shell for!\n");
- pod2usage(2);
- }
- # we chdir into the script's folder such that all relative paths have
- # a known starting point:
- chdir($FindBin::RealBin)
- or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!);
- $engine->initialize($vendorOSName, 'shell');
- $engine->startChrootedShellForVendorOS();
-} elsif ($action =~ m[^install]i) {
- my $vendorOSName = shift @ARGV;
- if (!defined $vendorOSName) {
- print STDERR _tr("You need to give the name of the vendor-os you'd like to install!\n");
- pod2usage(2);
- }
- # we chdir into the script's folder such that all relative paths have
- # a known starting point:
- chdir($FindBin::RealBin)
- or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!);
- $engine->initialize($vendorOSName, 'install');
- $engine->installVendorOS();
-} elsif ($action =~ m[^clone]i) {
- my $source = shift @ARGV;
- my $vendorOSName = shift @ARGV;
- if (!defined $source || !defined $vendorOSName) {
- print STDERR _tr("You need to specify exactly one source and one vendor-OS-name!\n");
- pod2usage(2);
- }
- # we chdir into the script's folder such that all relative paths have
- # a known starting point:
- chdir($FindBin::RealBin)
- or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!);
- $engine->initialize($vendorOSName, 'clone');
- $engine->cloneVendorOS($source);
-} elsif ($action =~ m[^remove]i) {
- my $vendorOSName = shift @ARGV;
- if (!defined $vendorOSName) {
- print STDERR _tr("You need to specify exactly one vendor-OS-name!\n");
- pod2usage(2);
- }
- # we chdir into the script's folder such that all relative paths have
- # a known starting point:
- chdir($FindBin::RealBin)
- or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!);
- $engine->initialize($vendorOSName, 'remove');
- $engine->removeVendorOS();
-} elsif ($action =~ m[^list-se]i) {
- my $vendorOSName = shift @ARGV;
- if (!defined $vendorOSName) {
- print STDERR _tr("You need to specify exactly one vendor-OS-name!\n");
- pod2usage(2);
- }
- # we chdir into the script's folder such that all relative paths have
- # a known starting point:
- chdir($FindBin::RealBin)
- or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!);
- $engine->initialize($vendorOSName, 'install');
- print _tr("List of supported selections for '%s':\n", $vendorOSName);
- print join('', map { "\t$_\n" }
- sort keys %{$engine->{'distro-info'}->{selection}});
-} elsif ($action =~ m[^list-su]i) {
- print _tr("List of supported distros:\n");
- print join('', map {
- "\t$_"
- .(' 'x(20-length($_)))
- ."\t($supportedDistros{$_})\n"
- }
- sort keys %supportedDistros);
-} elsif ($action =~ m[^list-in]i) {
- print _tr("List of installed vendor-OSes:\n");
- print join(
- '',
- map {
- my $vendorOS = decode('utf8', $_);
- $vendorOS =~ s[^.+/][];
- "\t$vendorOS\n";
- }
- grep { -d $_ }
- sort glob("$openslxConfig{'private-path'}/stage1/*")
- );
-} else {
- vlog(0, _tr(unshiftHereDoc(<<' END-OF-HERE'), $0));
- You need to specify exactly one action:
- clone
- import-into-db
- install
- list-installed
- list-selections
- list-supported
- remove
- shell
- update
- Try '%s --help' for more info.
- END-OF-HERE
-}
-
-
-
-=head1 NAME
-
-slxos-setup - OpenSLX-script to install a vendor-OS.
-
-=head1 SYNOPSIS
-
-slxos-setup [options] <action> <action-params> ...
-
-=head3 Options
-
- --help brief help message
- --log-level=<int> level of logging verbosity (0-3)
- --man show full documentation
- --version show version
-
-=head3 Actions
-
-=over 8
-
-=item B<< clone <rsync-source-uri> <vendor-os-name> >>
-
-clones an existing operating system via rsync
-
-=item B<< import-into-db <vendor-os-name> >>
-
-imports a vendor-OS into the openslx-db
-
-=item B<< install <vendor-os-name> >>
-
-installs a vendor-OS into a folder
-
-=item B<< list-installed >>
-
-show installed vendor-OSes
-
-=item B<< list-selections <vendor-os-name> >>
-
-show available selections for given vendor-OS
-
-=item B<< list-supported >>
-
-show supported distros
-
-=item B<< remove <vendor-os-name> >>
-
-removes an installed vendor-OS
-
-=item B<< shell <vendor-os-name> >>
-
-starts a chrooted shell for an installed vendor-OS
-
-=item B<< update <vendor-os-name> >>
-
-updates an installed vendor-OS
-
-=back
-
-=head1 DESCRIPTION
-
-B<slxos-setup> installs an operating system into a folder which
-will be used as a OpenSLX-stage1-system (a.k.a. a I<vendor-OS>).
-
-You can either install a vendor-OS from scratch (causing the required
-packages to be downloaded or copied from a local source). Installing
-is supported for several different LINUX distributions, but not for all
-of them.
-
-Alternatively, a locally installed operating system can be cloned
-into a vendor-OS.
-
-When invoking slxos-setup, you have to pass it the name of the vendor-OS
-you wish to create.
-
-=head1 OPTIONS
-
-=over 8
-
-=item B<--help>
-
-Prints a brief help message and exits.
-
-=item B<--man>
-
-Prints the manual page and exits.
-
-=item B<--version>
-
-Prints the version and exits.
-
-=item B<vendor-os-name>
-
-The vendor-os-name is the name of the vendor-OS that shall be installed,
-cloned, imported or updated. It corresponds to a folder in the OpenSLX-
-stage1-path (usually /var/opt/openslx/stage1).
-The general format of a vendor-os-name is:
-
- <distro-name>-<release-version>
-or
- <distro-name>-<release-version>-<selection>
-
-The distro-name is something like 'suse' or 'fedora', and the release-version
-is a numerical version, e.g. '10.1' or '6'.
-
-If you specify a selection, too, you state that you want all the packages
-that are provided by the specific selection (many distributions offer several
-different package selections for installation, like 'kde' or 'gnome').
-If you do not specify any selection, you will get the default selection of
-that distribution.
-
-If you pass an unknown selection, you will see a list of the selections
-that are available. The available selections for any vendor-OS can be requested
-via the 'list-selections' action.
-
-In clone-mode, it is a good idea to specify some unique string as the selection
-part of the vendor-os-name, such that you will easily recognize the vendor-OS
-at a later stage. We recommend something like '-cloned-from-<name-of-rsync-source>'.
-
-=item B<rsync-source-uri>
-
-When cloning a vendor-OS, slxos-setup needs to know where to fetch
-the existing OS-files from. Please check the 'rsync' docs for what
-format an rsync-uri has.
-
-=back
-
-=head1 EXAMPLES
-
-=head3 Installing a Vendor-OS
-
-=over 8
-
-=item B<< slxos-setup install suse-11.1 >>
-
-Installs the distro suse-11.1 as a new vendor-OS.
-
-=item B<< slxos-setup install suse-11.1-gnome >>
-
-Installs the 'gnome'-selection of distro suse-11.1 as a new
-vendor-OS.
-
-=back
-
-=head3 Cloning an Operating System to Make a New Vendor-OS
-
-=over 8
-
-=item B<< slxos-setup clone my_server:/ suse-11.1-clone-my_server >>
-
-Clones the suse-11.1 system from server 'my_server' as a new
-vendor-OS, which will be named 'suse-11.1-clone-my_server'.
-
-=back
-
-=head3 Updating a Vendor-OS
-
-=over 8
-
-=item B<< slxos-setup update suse-11.1 >>
-
-Updates the (existing) vendor-OS 'suse-11.1'.
-
-=back
-
-=head3 Importing an Existing Vendor-OS into the Config-DB
-
-=over 8
-
-=item B<< slxos-setup import-into-db suse-11.1 >>
-
-Imports the (existing) vendor-OS 'suse-11.1' into the config-DB.
-
-=back
-
-=head3 Removing a Vendor-OS
-
-=over 8
-
-=item B<< slxos-setup remove suse-11.1 >>
-
-Wipes the (existing) vendor-OS 'suse-11.1' from disk and removes it
-from the config-DB, too.
-
-=back
-
-=head1 SEE ALSO
-
-slxsettings, slxos-export, slxconfig, slxconfig-demuxer
-
-=head1 GENERAL OPENSLX OPTIONS
-
-Being a part of OpenSLX, this script supports several other options
-which can be used to overrule the OpenSLX settings:
-
- --db-name=<string> name of database
- --db-spec=<string> full DBI-specification of database
- --db-type=<string> type of database to connect to
- --locale=<string> locale to use for translations
- --log-level=<int> level of logging verbosity (0-3)
- --logfile=<string> file to write logging output to
- --private-path=<string> path to private data
- --public-path=<string> path to public (client-accesible) data
- --temp-path=<string> path to temporary data
-
-Please refer to the C<slxsettings>-manpage for a more detailed description
-of these options.
-
-=cut