1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
| #!/usr/bin/perl -w
# Set Hostname Jumpstart
use strict;
sub hit_enter {
print "Hit enter to continue\n";
<STDIN>;
print "\033[2J";
}
sub get_hostname {
my %towns_list = (
'Paris' => 'PA',
'New-York' => 'NY',
'Hong-Kong' => 'HK',
'London' => 'LD',
'Frankfurt' => 'FK',
'Mumbai' => 'MB',
'Sao-Polo' => 'SP',
);
my %sites_list = (
'Office' => 'OFC',
'Redbus' => 'RED',
'Telehouse' => 'TLH',
'DTC' => 'DTC',
'iAdvantage' => 'IAD',
'Nutley' => 'NUT',
'Level3' => 'LV3',
'Equinix' => 'EQX',
'Tata' => 'TAT',
);
my %usage_list = (
'Production' => 'PRD',
'UAT' => 'UAT',
'DMZ' => 'DMZ',
);
sub select_list {
my $counter=-1;
my %hash_list = @_;
my @keys = keys %hash_list;
# Clear screen
print "\033[2J";
print "In which country this machine is hosted or will be host and will be used ?\n\n";
# Get all keys from hash
while ((my $key) = each %hash_list ) {
$counter++;
print "$counter - $key\n";
}
print "\nChoose the number corresponding to your choice :\n";
chomp (my $choice_number = <STDIN>);
# Verify answer
if (($choice_number =~ /\d+/) and ($choice_number <= $counter)) {
# Add choice to chosen hostname
my $chosen=$hash_list{$keys[$choice_number]};
return $chosen;
} else {
print "\nYour answer is not correct, you need to enter a number between 0 and $counter\n";
&hit_enter;
&select_list;
}
}
sub srv_number {
print "\033[2J";
print "What is the server number ?\n";
chomp (my $server_number = <STDIN>);
if ($server_number =~ /\d+/) {
return $server_number;
} else {
print "\nYour answer is not correct, you need to enter a number\n";
&hit_enter;
&srv_number;
}
}
my $full_hostname = &select_list(%towns_list).'-';
$full_hostname = $full_hostname.&select_list(%sites_list).'-';
$full_hostname = $full_hostname.'SRV-';
$full_hostname = $full_hostname.&select_list(%usage_list).'-';
$full_hostname = $full_hostname.&srv_number;
sub write_hostname2tmp {
open (HOSTNAME, ">/tmp/set_hostname") or warn "Couldn't write $_[0] to temp file : $!\n";
print HOSTNAME "$_[0]\n";
close (HOSTNAME);
}
print "\033[2J";
print "Is $full_hostname the correct name for this server ? (y/n)\n";
if (<STDIN> =~ /y|yes/i) {
&write_hostname2tmp($full_hostname);
} else {
print "Would you like to retry (r) or set manually the hostname (s) ? (r/s)\n";
if (<STDIN> =~ /s/i) {
print "Type the full required name and hit enter when finished :\n";
chomp ($full_hostname = <STDIN>);
&write_hostname2tmp;
} else {
&get_hostname;
}
}
}
# Start configuration
print "\033[2J";
print "\n########################################################\n";
print "#\t\t\t\t\t\t #\n";
print "#\t\t\tTEST\t\t\t #\n";
print '# Solaris Environnement Installation for Datacenters #';
print "\n#\t\t\t\t\t\t #";
print "\n########################################################\n\n";
print "Before starting installation, you need to enter a set of informations.\n(answer to all questions, you can Ctrl+C to stop now)\n\n";
&hit_enter;
&get_hostname; |
Partager