| #!/bin/bash |
| |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| |
| # This script looks at a configuration file (disk.cfg) and at the type |
| # of machine it's running on to build a drive configuration, which it writes in |
| # /tmp/disk_config |
| # |
| # ks.cfg will then pick it up with an %include /tmp/harddrive |
| |
| hardware=`dmidecode -s system-product-name | grep -v '^#' | sed -e 's/\r//g' | sed -e 's/\n//g'` |
| |
| # This is where Traffic Ops GenIso.pm writes disk.cfg. |
| # Well, more specifically it's where kickstart mounts |
| # what GenIso writes. |
| config_location='/mnt/stage2/ks_scripts/disk.cfg' |
| |
| # This is the file that ks.cfg looks for (e.g what this script writes): |
| disk_config_loc='/tmp/drive_config' |
| |
| boot_drives='' |
| |
| if [ -e $config_location ] |
| then |
| source $config_location |
| elif [ -e 'disk.cfg' ] |
| then |
| source 'disk.cfg' # This is for testing outside of kickstart envs. |
| fi |
| |
| boot_drives_old=$boot_drives |
| case $hardware in |
| SSG-6047R-*) |
| if [ "$boot_drives" == '' ] |
| then |
| boot_drives='sdb,sdc' |
| fi |
| first_drive=`echo $boot_drives | awk -F, ' { print $1 } '` |
| second_drive=`echo $boot_drives | awk -F, ' { print $2 } '` |
| |
| cat <<EOF >> $disk_config_loc |
| # $hardware and $boot_drives_old |
| # Disk config |
| clearpart --all --initlabel --drives=$boot_drives |
| bootloader --location=mbr --driveorder=$boot_drives --append="crashkernel=auto" |
| |
| ignoredisk --only-use=$boot_drives |
| |
| part raid.boot.b --size=500 --ondisk=$first_drive |
| part raid.boot.c --size=500 --ondisk=$second_drive |
| part swap --size=2048 --ondisk=$first_drive |
| part swap --size=2048 --ondisk=$second_drive |
| part raid.root.b --size=1 --grow --ondisk=$first_drive |
| part raid.root.c --size=1 --grow --ondisk=$second_drive |
| raid /boot --fstype=ext4 --device=md0 --level=1 raid.boot.b raid.boot.c |
| raid / --fstype=ext4 --device=md1 --level=1 raid.root.b raid.root.c |
| EOF |
| ;; |
| *) |
| if [ "$boot_drives" == "" ] |
| then |
| boot_drives='sda' |
| fi |
| cat <<EOF1 >> $disk_config_loc |
| # $hardware and $boot_drives_old |
| # Disk config |
| bootloader --location=mbr |
| clearpart --all --initlabel |
| zerombr yes |
| ignoredisk --only-use=$boot_drives |
| part /boot --fstype=ext4 --label=boot --size=500 |
| part swap --size=4000 |
| part / --fstype=ext4 --label=root --size=1 --grow |
| EOF1 |
| ;; |
| esac |