#!/usr/bin/perl ################################################################ #### #### Script: createlpar.pl #### #### Author: Chris Narcouzi #### Email: cnarcouzi@ne.rr.com #### #### Date: 2008/05/04 #### ################################################################ # system("clear"); my $user = "hscroot"; my $hmc = "hmc01"; my $MS="Server-9133-55A-SN012345A"; my ($x); # ----- Client LPAR default values ----- my $CLIENT_NAME="vio99b"; # Name of the partition my $CLIENT_PROFIL="Normal"; # Name of the profile my $CLIENT_ENV="vioserver"; # Operating environment my $CLIENT_MINMEM="128"; # Minimum memory in megabyte my $CLIENT_DESMEM="512"; # Desired memory in megabyte my $CLIENT_MAXMEM="768"; # Maximum memory in megabyte my $CLIENT_PMODE="shared"; # shared or ded my $CLIENT_SMODE="uncap"; # cap or uncap my $CLIENT_SWEIGHT="0"; # Value between 0 and 255 my $CLIENT_MINPU="0.1"; # Min processing units my $CLIENT_DESPU="0.5"; # Des processing units my $CLIENT_MAXPU="1.0"; # Max processing units my $CLIENT_MINVP="1"; # Min virtual CPU my $CLIENT_DESVP="2"; # Des virtual CPU my $CLIENT_MAXVP="2"; # Max virtual CPU my $CLIENT_VSLOT="99"; # Number of virtual slots my $CLIENT_IOSLOT="21020004//1"; # Virtual Ethernet adapter #my $CLIENT_VETH="2/0/10//1/0,3/0/99//0/0,4/0/20//1/0,5/0/98//0/0"; # Virtual Ethernet adapter my $CLIENT_VETH="2/0/10//1/0"; # Virtual Ethernet adapter my $CLIENT_VSCSI="30/server/3//30/0,40/server/4//40/0,50/server/5//50/0"; # Virtual SCSI client adapter my $CLIENT_START="0"; # Start with manages system or not my $CLIENT_BOOT="norm"; # Boot mode = normal my $CLIENT_PWR="none"; # Power controlling partition my $CLIENT_CON="0"; # Connection monitoring my $CLIENT_IOPOOL="none"; # IOPOOLAnd here's the little script: print "hmc: $hmc\n"; print "server: $MS\n\n"; print "Creating VIO Server $CLIENT_NAME ...\n"; print "creating profile ..."; $x=system("ssh $user\@$hmc \"mksyscfg -m $MS -r lpar -i 'name=$CLIENT_NAME,profile_name=$CLIENT_PROFIL,lpar_env=$CLIENT_ENV,min_mem=$CLIENT_MINMEM,desired_mem=$CLIENT_DESMEM,max_mem=$CLIENT_MAXMEM,proc_mode=$CLIENT_PMODE,sharing_mode=$CLIENT_SMODE,min_proc_units=$CLIENT_MINPU,desired_proc_units=$CLIENT_DESPU,max_proc_units=$CLIENT_MAXPU,min_procs=$CLIENT_MINVP,desired_procs=$CLIENT_DESVP,max_procs=$CLIENT_MAXVP,uncap_weight=$CLIENT_SWEIGHT,lpar_io_pool_ids=$CLIENT_IOPOOL,auto_start=$CLIENT_START,boot_mode=$CLIENT_BOOT,power_ctrl_lpar_ids=$CLIENT_PWR,conn_monitoring=$CLIENT_CON,max_virtual_slots=$CLIENT_VSLOT'\""); print " done\n"; print "creating first Virtual Ethernet ..."; $veth1=system("ssh $user\@$hmc \"chsyscfg -m $MS -r prof -i 'name=$CLIENT_PROFIL,lpar_name=$CLIENT_NAME,virtual_eth_adapters+=\"2/0/10//1/0\"'\""); print " done\n"; print "creating second Virtual Ethernet ..."; $veth2=system("ssh $user\@$hmc \"chsyscfg -m $MS -r prof -i 'name=$CLIENT_PROFIL,lpar_name=$CLIENT_NAME,virtual_eth_adapters+=\"3/0/99//0/0\"'\""); print " done\n"; print "creating third Virtual Ethernet ..."; $veth3=system("ssh $user\@$hmc \"chsyscfg -m $MS -r prof -i 'name=$CLIENT_PROFIL,lpar_name=$CLIENT_NAME,virtual_eth_adapters+=\"4/0/20//1/0\"'\""); print " done\n"; print "creating fourth Virtual Ethernet ..."; $veth4=system("ssh $user\@$hmc \"chsyscfg -m $MS -r prof -i 'name=$CLIENT_PROFIL,lpar_name=$CLIENT_NAME,virtual_eth_adapters+=\"5/0/98//0/0\"'\""); print " done\n"; print "creating first Virtual scsi ..."; $vscsi1=system("ssh $user\@$hmc \"chsyscfg -m $MS -r prof -i 'name=$CLIENT_PROFIL,lpar_name=$CLIENT_NAME,virtual_scsi_adapters+=\"30/server/3//30/0\"'\""); print " done\n"; print "creating second Virtual scsi ..."; $vscsi2=system("ssh $user\@$hmc \"chsyscfg -m $MS -r prof -i 'name=$CLIENT_PROFIL,lpar_name=$CLIENT_NAME,virtual_scsi_adapters+=\"40/server/4//40/0\"'\""); print " done\n"; print "creating third Virtual scsi ..."; $vscsi3=system("ssh $user\@$hmc \"chsyscfg -m $MS -r prof -i 'name=$CLIENT_PROFIL,lpar_name=$CLIENT_NAME,virtual_scsi_adapters+=\"50/server/5//50/0\"'\""); print " done\n"; # # select and create I/O adapters # chomp( @slot = `ssh hscroot\@hmc01 "lshwres -m $MS -r io --rsubtype slot -F unit_phys_loc:bus_id:phys_loc:description:lpar_name:drc_index`); my ($prev_unit)=""; for ($k=0; $k<=$#slot; ++$k ) { # print "slot[ $k ] = $slot[ $k ]\n"; ($unit,$bus,$slot,$description,$lpar_name,$drc_index) = split( /:/, $slot[ $k ] ); if ($unit ne $prev_unit) { print "\n$unit\n"; print"-----------------\n"; $prev_unit = $unit } if ($bus < 10) { print "$k. \t $bus:$slot \t\t $description ==> $lpar_name\n"; } else { print "$k. \t $bus:$slot \t $description ==> $lpar_name\n"; } } print "\ncntrl^c to EXIT\n"; print "=======>"; chomp( $slots1 = ); @slots1 = split( /,/, $slots1 ); for ($j=0; $j<=$#slots1; ++$j ) { # print "slots1[ $j ] = $slots1[ $j ]\n"; my $i = $slots1[ $j ]; # print "slot[ $i ] = $slot[ $i ]\n"; ($unit,$bus,$slot,$description,$lpar_name,$drc_index) = split( /:/, $slot[ $i ] ); my $CLIENT_IOSLOT="$drc_index//1"; # my $CLIENT_IOSLOT="21020004//1"; print "creating $unit:$bus:$slot ..."; `ssh hscroot\@hmc01 chsyscfg -m $MS -r prof -i name=Normal,lpar_name=$CLIENT_NAME,io_slots+=$CLIENT_IOSLOT`; print " done\n"; }