############################################################### # DELETE LVM_DELETE IF EXISTS - CUSTOM PARTITION INST ############################################################### LVM_DELETE_EXIST=`lvscan | grep "delete"` echo "LVSCAN: $LVM_DELETE_EXIST" if [ -n "$LVM_DELETE_EXIST" ];then echo "DELETE LVM STARTED" lvremove -f /dev/vg0/lvm_delete > /dev/null 2>&1 echo "DELETE LVM COMPLETED" fi ############################################################### echo "Running Software Installations" # Activate SSH package sudo apt-get -y install openssh-server #Install bc for calcluating ip address sudo apt-get -y install bc #Enable and start network service sudo systemctl enable systemd-networkd sudo systemctl start systemd-networkd # Fix for E3-1240V3 IPMI Hang sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"/g' /etc/default/grub sudo update-grub wget -q -O /dev/null 'http://192.168.200.2/automation/completeKickstartInstallationStep.php?kickstartInstallationId=71842&securityKey=qunmcnqbwxpybodyyipccuirkpsbhxud&identifier=ubuntu18_04_ready_mode_partition_b&percentComplete=50&message=Installing%20Software' # Install Software wget -q -O /dev/null 'http://192.168.200.2/automation/updateKickstartInstallationStatus.php?kickstartInstallationId=71842&securityKey=qunmcnqbwxpybodyyipccuirkpsbhxud&percentComplete=95&message=Setting%20up%20SNMP' #Install mdadm sudo apt install mdadm -y sudo apt-get install snmpd -y mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig service snmpd stop # Default Secured Servers echo 'rocommunity iuhet08532h\nsyslocation "PNAP, SecuredServers"\nsyscontact support@securedservers.com' > /etc/snmp/snmpd.conf sed -i 's/ 127.0.0.1//g' /etc/default/snmpd sed -i 's/snmpd.pid/snmpd.pid -c \/etc\/snmp\/snmpd.conf/g' /etc/default/snmpd wget -q -O /dev/null 'http://192.168.200.2/automation/updateKickstartInstallationStatus.php?kickstartInstallationId=71842&securityKey=qunmcnqbwxpybodyyipccuirkpsbhxud&percentComplete=99&message=Completing%20Installation' ####################################################################### # Make partititons on 2nd disk ####################################################################### DISK_WITH_FS="nvme0n1" DISK_TO_CREATE_PARTITIONS="nvme1n1" echo "DISK_WITH_FS---------------------------------------$DISK_WITH_FS" echo "DISK_TO_CREATE_PARTITIONS---------------------------------------$DISK_TO_CREATE_PARTITIONS" sleep 10s EFI_ON_0_DISK=`fdisk -l /dev/nvme0n1 | grep "/dev/nvme0n1p1" | awk '{print $6}'` #/dev/nvme1n1p1 2048 1050623 1048576 512M EFI System echo "EFI---------------------------------------$EFI_ON_0_DISK" if [ "$EFI_ON_0_DISK" != "EFI" ];then DISK_TO_CREATE_PARTITIONS="nvme0n1" DISK_WITH_FS="nvme1n1" fi echo "DISK_WITH_FS---------------------------------------$DISK_WITH_FS" echo "DISK_TO_CREATE_PARTITIONS---------------------------------------$DISK_TO_CREATE_PARTITIONS" sleep 20s echo "GET END SECTOR---------------------------------------" END_SECTOR=`fdisk -l /dev/$DISK_WITH_FS | grep "n1p5" | awk '{print $3}'` echo "END_SECTOR---------------------------------------$END_SECTOR" sleep 10s fdisk /dev/$DISK_TO_CREATE_PARTITIONS << FDISK_CMDS g w FDISK_CMDS sleep 10s fdisk /dev/$DISK_TO_CREATE_PARTITIONS << FDISK_CMDS n 1 2048 1050623 w FDISK_CMDS mkfs.vfat /dev/$DISK_TO_CREATE_PARTITIONS\p1 echo "p1 creted---------------------------------------" sleep 20s fdisk /dev/$DISK_TO_CREATE_PARTITIONS << FDISK_CMDS n 2 1050624 8390655 w FDISK_CMDS mkfs.ext4 /dev/$DISK_TO_CREATE_PARTITIONS\p2 echo "p2 creted---------------------------------------" sleep 20s fdisk /dev/$DISK_TO_CREATE_PARTITIONS << FDISK_CMDS n 3 8390656 142608383 w FDISK_CMDS echo "p3 creted---------------------------------------" sleep 20s fdisk /dev/$DISK_TO_CREATE_PARTITIONS << FDISK_CMDS n 4 142608384 1610614783 w FDISK_CMDS echo "p4 creted---------------------------------------" sleep 20s fdisk /dev/$DISK_TO_CREATE_PARTITIONS << FDISK_CMDS n 5 1610614784 $END_SECTOR w FDISK_CMDS echo "p5 creted---------------------------------------" echo "---------------------------------------$PARTITIONS ARE CREATED" PARTITION_5=/dev/$DISK_TO_CREATE_PARTITIONS\p5 echo "PARTITION_5---------------------------------------$PARTITION_5" mkfs.ext4 $PARTITION_5 mount $PARTITION_5 /var/lib/mysql UUID=`blkid | grep "$PARTITION_5" | awk '{print $2}' | sed 's/\"//g'` echo "UUID---------------------------------------$UUID" echo "$UUID /var/lib/mysql ext4 defaults 0 2" >> /etc/fstab sleep 20s ############################################################################################### BACKEND_INTERFACE=$(ip ntable | grep dev | sort | uniq | sed -e 's/^.*dev //;/^lo/d' | head -n 1 | tail -n 1 | xargs) echo detected backend interface name: $BACKEND_INTERFACE FRONTEND_INTERFACE=$(ip ntable | grep dev | sort | uniq | sed -e 's/^.*dev //;/^lo/d' | head -n 2 | tail -n 1 | xargs) #Prepare Variables touch /etc/netplan/01-netplan2.yaml lastmask="" lastnet="" #Parse Given API Vars frontend_gateway_temp=66.85.158.137 frontend_netmask_temp=255.255.255.248 strnet=${frontend_gateway_temp%.*} lastnet=${frontend_gateway_temp##*.} lastmask=${frontend_netmask_temp##*.} #Get CIDR Notation and Amount of Addresses cidrbits=$(echo "obase=2;ibase=10;$lastmask"|bc|grep -o "1" | wc -l) cidrnet=$((cidrbits+24)) echo $cidrnet addrs="" addrcount=$((255-lastmask-2)) while [ $addrcount -ge 1 ] do addrs=$addrs"$strnet.$((lastnet+addrcount))/$cidrnet, " addrcount=$((addrcount-1)) done addrs=${addrs%,*} #remove last "," character from the string #Create Netplan Configuration printf "%s\n" "network:" > /etc/netplan/01-netplan2.yaml printf "%s\n" " version: 2" >> /etc/netplan/01-netplan2.yaml printf "%s\n" " renderer: networkd" >> /etc/netplan/01-netplan2.yaml printf "%s\n" " ethernets:" >> /etc/netplan/01-netplan2.yaml printf "%s\n" " $FRONTEND_INTERFACE:" >> /etc/netplan/01-netplan2.yaml printf "%s\n" " addresses: [ $addrs ]" >> /etc/netplan/01-netplan2.yaml printf "%s\n" " gateway4: 66.85.158.137" >> /etc/netplan/01-netplan2.yaml printf "%s\n" " nameservers:" >> /etc/netplan/01-netplan2.yaml printf "%s\n" " search: [ xensub.net, xencall.com ]" >> /etc/netplan/01-netplan2.yaml printf "%s\n" " addresses: [ 204.11.49.218, 1.1.1.1, 8.8.8.8 ]" >> /etc/netplan/01-netplan2.yaml #this should blacklist the mei and mei_me modules as per ticket 848112 - #echo "\n#blacklisting the mei modules\n\n" >> /target/etc/modprobe.d/blacklist.conf #echo "blacklist mei" >> /target/etc/modprobe.d/blacklist.conf #echo "blacklist mei_me" >> /target/etc/modprobe.d/blacklist.conf # finally attempt to inject root sh key #messenger "**** CONFIGURING AUTHORIZED KEYS ****" ## Inject public ssh key to root user in *any case* bacause it is just one ssh key and it is for root user messenger "sshKey is not defined, nothing inserted to authorized_keys" #Create a netplan script touch /netplan.sh chmod +x /netplan.sh echo "#!/bin/sh -e" > /netplan.sh echo "netplan apply" >> /netplan.sh echo rm -f /netplan.sh >> /netplan.sh echo "exit 0" >> /netplan.sh ############################################################################ # SET NIC0 AS 1ST BOOT DEVICE UEFI ############################################################################ echo "CREATE 1ST BOOT DEVICE SCRIPT" touch /setNetworkFisrtBootBiosUefi.sh chmod +x /setNetworkFisrtBootBiosUefi.sh echo "#!/bin/sh -e" > /setNetworkFisrtBootBiosUefi.sh echo "IP4=\`efibootmgr | grep \"IP4\"\`" >> /setNetworkFisrtBootBiosUefi.sh echo "if [ -z \"\$IP4\" ];then" >> /setNetworkFisrtBootBiosUefi.sh #echo "NIC0=\`efibootmgr | grep \"UEFI PXE: IPv4\" | head -n 1 | sed 's/*.*//' | sed 's/Boot//g'\`" >> /setNetworkFisrtBootBiosUefi.sh echo "NIC0=\`efibootmgr | grep \"IPv4\" | head -n 1 | sed 's/*.*//' | sed 's/Boot//g'\`" >> /setNetworkFisrtBootBiosUefi.sh echo "else" >> /setNetworkFisrtBootBiosUefi.sh #echo "NIC0=\`efibootmgr | grep \"UEFI: IP4\" | head -n 1 | sed 's/*.*//' | sed 's/Boot//g'\`" >> /setNetworkFisrtBootBiosUefi.sh echo "NIC0=\`efibootmgr | grep \"IP4\" | head -n 1 | sed 's/*.*//' | sed 's/Boot//g'\`" >> /setNetworkFisrtBootBiosUefi.sh echo "fi" >> /setNetworkFisrtBootBiosUefi.sh echo "BOOT_ORDER_NO_NIC0=\`efibootmgr | awk '/BootOrder/ { print \$2 }' | sed \"s/,\$NIC0//g\"\`" >> /setNetworkFisrtBootBiosUefi.sh echo "NEW_BOOT_ORDER=\"\$NIC0,\$BOOT_ORDER_NO_NIC0\"" >> /setNetworkFisrtBootBiosUefi.sh echo "$NEW_BOOT_ORDER" echo "efibootmgr -o \$NEW_BOOT_ORDER" >> /setNetworkFisrtBootBiosUefi.sh echo "rm -f /setNetworkFisrtBootBiosUefi.sh" >> /setNetworkFisrtBootBiosUefi.sh echo "exit 0" >> /setNetworkFisrtBootBiosUefi.sh echo "CREATE 1ST BOOT DEVICE SCRIPT COMPLETED" ########################################################################### # SET RAID1 ############################################################################ echo "CREATE RAID1 SCRIPT HAS STARTED" touch /createRaid1.sh chmod +x /createRaid1.sh echo "#!/bin/sh -e" > /createRaid1.sh echo "echo \"Y\" | mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/nvme0n1p4 /dev/nvme1n1p4" >> /createRaid1.sh echo "sleep 10" >> /createRaid1.sh echo "pvcreate /dev/md1" >> /createRaid1.sh echo "vgcreate vg1 /dev/md1" >> /createRaid1.sh echo "lvcreate -l 100%FREE -n clientdata vg1" >> /createRaid1.sh echo "sleep 10" >> /createRaid1.sh echo "mkfs.ext4 /dev/vg1/clientdata" >> /createRaid1.sh echo "mkdir /disk2" >> /createRaid1.sh echo "mount /dev/vg1/clientdata /disk2" >> /createRaid1.sh echo "sleep 10" >> /createRaid1.sh echo "echo \"/dev/mapper/vg1-clientdata /disk2 ext4 defaults 0 2\" >> /etc/fstab" >> /createRaid1.sh echo "mdadm --detail --scan >> /etc/mdadm/mdadm.conf" >> /createRaid1.sh echo "update-initramfs -u" >> /createRaid1.sh echo "sed -i 's/remount-ro/remount-ro,noatime/g' /etc/fstab" >> /createRaid1.sh echo "sed -i 's/defaults/defaults,noatime/g' /etc/fstab" >> /createRaid1.sh echo "rm -f /createRaid1.sh" >> /createRaid1.sh echo "exit 0" >> /createRaid1.sh echo "CREATE RAID1 SCRIPT HAS COMPLETED" ############################################################################# # Add the startup script to firstboot touch /etc/rc.local chmod +x /etc/rc.local echo "#!/bin/sh -e" > /etc/rc.local echo "sh /netplan.sh" >> /etc/rc.local echo "sh /setNetworkFisrtBootBiosUefi.sh" >> /etc/rc.local echo "sh /createRaid1.sh" >> /etc/rc.local echo "rm -f /etc/rc.local" >> /etc/rc.local echo "reboot" >> /etc/rc.local echo "exit 0" >> /etc/rc.local #Find the user for password expiration script USER='' USER=pnap13143 # Just one user? #Set password expiration in 2 days chage -M 2 root chage -M 2 "$USER" # All done here wget -T 30 -O /dev/null 'http://192.168.200.2/automation/completeKickstartInstallation.php?kickstartInstallationId=71842&securityKey=qunmcnqbwxpybodyyipccuirkpsbhxud' echo "Done"