blob: 1d6b8244ac097b9dbcc57d1e344337d10843c8a8 [file] [log] [blame]
#!/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