/[smeserver]/cdrom.image/sme10/Packages/base/sme-kickstart.cfg
ViewVC logotype

Annotation of /cdrom.image/sme10/Packages/base/sme-kickstart.cfg

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.6 - (hide annotations) (download)
Tue Dec 29 15:12:14 2020 UTC (3 years, 10 months ago) by chrissn
Branch: MAIN
Changes since 1.5: +7 -7 lines
Automatic RAID configuration in kickstart [SME:10918]

1 unnilennium 1.1 # System authorization information
2     auth --enableshadow --passalgo=sha512
3 unnilennium 1.4
4 chrissn 1.5 # We do not want SELinux
5 unnilennium 1.1 selinux --disabled
6 unnilennium 1.4
7 chrissn 1.5 # Services to activate
8 unnilennium 1.3 services --disabled=lm_sensors
9 unnilennium 1.4
10 chrissn 1.5 # Default root pass, will be changed in post-install process anyway
11     rootpw --lock
12 unnilennium 1.1
13 chrissn 1.5 # Accept EULA
14 unnilennium 1.4 eula --agreed
15    
16 chrissn 1.5 # Partitioning from pre section
17 unnilennium 1.3 %include /tmp/part-include
18 unnilennium 1.1
19 chrissn 1.5 # Disable kdump
20 unnilennium 1.4 %addon com_redhat_kdump --disable
21     %end
22    
23    
24 chrissn 1.5 # Add netinstall repos
25     repo --name=smeos --baseurl=http://mirror.canada.pialasse.com/releases/testing/10/smeos/x86_64/
26     repo --name=smeupdates --baseurl=http://mirror.canada.pialasse.com/releases/testing/10/smeupdates/x86_64/
27    
28     # Packages to install
29     %packages
30     @^minimal
31     @base
32     @core
33     -chrony
34     -kexec-tools
35     %end
36    
37 unnilennium 1.3
38 chrissn 1.5 # Partitioning in pre-install
39     %pre --interpreter=/bin/bash --log=/var/log/ks.pre01.log
40    
41     # Minimum size of hard drive needed specified in GB
42 unnilennium 1.4 MINSIZE=5
43 unnilennium 1.3
44 unnilennium 1.4 # Number of detected drives
45     NDEV=0
46 unnilennium 1.3
47 chrissn 1.5 # Loop through block devices and keep those over MINSIZE
48     # TODO: Only pair up drives of the same size
49 unnilennium 1.4 for DEV in $(lsblk -nl | grep disk | cut -d' ' -f1); do
50     if [ -d /sys/block/$DEV ]; then
51     REMOVABLE=`cat /sys/block/$DEV/removable`
52 unnilennium 1.3 if (( $REMOVABLE == 0 )); then
53 unnilennium 1.4 SIZE=`cat /sys/block/$DEV/size`
54 unnilennium 1.3 GB=$(($SIZE/2**21))
55     if [ $GB -gt $MINSIZE ]; then
56 unnilennium 1.4 DRIVES[$NDEV]=$DEV
57     ((NDEV++))
58 unnilennium 1.3 fi
59     fi
60     fi
61     done
62    
63 chrissn 1.5 # Declare useful variables
64     printf -v DRIVELIST ",%s" "${DRIVES[@]}"
65     DRIVELIST=${DRIVELIST:1}
66     LEVEL=1
67     SPARE=0
68    
69     # Error if detection has failed and fall back
70     if [ ${#DRIVES[@]} == 0 ] ; then
71     echo "No drive suitable for installation found! Reverting to Anaconda defaults."
72    
73     cat > /tmp/part-include <<EOF
74     # Clear the Master Boot Record
75     zerombr
76    
77     # Clear current partitions
78     clearpart --all --initlabel
79 unnilennium 1.3
80 chrissn 1.5 # Automatically create partitions using LVM
81     autopart --lvm --nohome
82 unnilennium 1.3 EOF
83    
84 chrissn 1.5 # Otherwise clear detected devices and set up bootloader
85 unnilennium 1.3 else
86 chrissn 1.5 cat > /tmp/part-include <<EOF
87     # Clear the Master Boot Record
88     zerombr
89    
90     # Clear current partitions and install bootloader
91     clearpart --all --drives=$DRIVELIST --initlabel
92     ignoredisk --only-use=$DRIVELIST
93     bootloader --location=mbr --driveorder=$DRIVELIST
94     EOF
95    
96     # If single disk then set up partitioning without RAID
97     # NOTE: From this point we're appending to part-include
98     if [ ${#DRIVES[@]} == 1 ] ; then
99    
100     # Include the EFI partition if necessary
101     if [ -d /sys/firmware/efi ] ; then
102     printf "part /boot/efi --fstype=efi --size=200 --ondisk=%s\n" "${DRIVES[0]}" >> /tmp/part-include
103     fi
104    
105     cat >> /tmp/part-include <<EOF
106     part /boot --fstype=xfs --size=500 --ondisk=${DRIVES[0]} --label=BOOT
107     part pv.01 --size=4300 --grow --ondisk=${DRIVES[0]}
108     volgroup main pv.01
109     logvol / --fstype=xfs --name=root --vgname=main --grow --size=3000 --label=ROOT
110     logvol swap --fstype=swap --name=swap --vgname=main --recommended --label=SWAP
111     EOF
112    
113     # Otherwise multiple disks - prepare for RAID
114     else
115 unnilennium 1.3
116 chrissn 1.5 # Define EFI, boot and LVM RAID partitions
117     for i in "${!DRIVES[@]}"; do
118     if [ -d /sys/firmware/efi ] ; then
119     printf "part raid.%s0 --size=200 --ondisk=%s\n" "$i" "${DRIVES[$i]}" >> /tmp/part-include
120     fi
121     printf "part raid.%s1 --size=500 --ondisk=%s\n" "$i" "${DRIVES[$i]}" >> /tmp/part-include
122     printf "part raid.%s2 --size=4300 --grow --ondisk=%s\n" "$i" "${DRIVES[$i]}" >> /tmp/part-include
123     done
124    
125     # Compute RAID level
126     # from https://wiki.contribs.org/Raid
127     # 2 Drives - Software RAID 1
128     # 3 Drives - Software RAID 1 + 1 Hot-spare
129 chrissn 1.6 # 4 Drives - Software RAID 6
130     # 5+ Drives - Software RAID 6 + 1 Hot-spare
131 chrissn 1.5
132     if [ ${#DRIVES[@]} == 2 ] ; then
133     LEVEL=1
134     SPARE=0
135     elif [ ${#DRIVES[@]} == 3 ] ; then
136     LEVEL=1
137     SPARE=1
138 chrissn 1.6 elif [ ${#DRIVES[@]} == 4 ] ; then
139     LEVEL=6
140     SPARE=0
141 chrissn 1.5 else
142     LEVEL=6
143     SPARE=1
144     fi
145 unnilennium 1.3
146 chrissn 1.5 # Set up RAID devices
147     printf -v EFIDEVS "raid.%s0 " "${!DRIVES[@]}"
148     printf -v BOOTDEVS "raid.%s1 " "${!DRIVES[@]}"
149     printf -v ROOTDEVS "raid.%s2 " "${!DRIVES[@]}"
150    
151     # Include the EFI partition if necessary
152     if [ -d /sys/firmware/efi ] ; then
153 chrissn 1.6 printf "raid /boot/efi --fstype=efi --level=1 --spares=0 --device=md9 %s\n" "$EFIDEVS" >> /tmp/part-include
154 chrissn 1.5 fi
155 unnilennium 1.3
156 chrissn 1.6 printf "raid /boot --fstype=xfs --level=1 --spares=0 --device=md0 %s\n" "$BOOTDEVS" >> /tmp/part-include
157 chrissn 1.5 printf "raid pv.01 --level=%s --spares=%s --device=md1 %s\n" "$LEVEL" "$SPARE" "$ROOTDEVS" >> /tmp/part-include
158 unnilennium 1.3
159 chrissn 1.5 # Set up LVM
160     cat >> /tmp/part-include <<EOF
161     volgroup main pv.01
162     logvol / --fstype xfs --name=root --vgname=main --grow --size=3000 --label=ROOT
163     logvol swap --fstype swap --name=swap --vgname=main --recommended --label=SWAP
164     EOF
165 unnilennium 1.3
166 chrissn 1.5 fi
167     fi
168 unnilennium 1.1
169     %end
170    
171    
172 chrissn 1.5 # SME events in post-install
173 unnilennium 1.4 %post --interpreter=/usr/bin/bash --log=/var/log/ks.post02.log
174 chrissn 1.5 /sbin/rsyslogd;
175     sleep 2;
176     /sbin/e-smith/signal-event post-install;
177 unnilennium 1.2 sleep 2;
178     /sbin/e-smith/db configuration set UnsavedChanges no;
179 unnilennium 1.1 touch /forcequotacheck
180 chrissn 1.5 %end
181 unnilennium 1.1
182 unnilennium 1.4
183     %post --nochroot --log=/mnt/sysimage/var/log/ks.post01.log
184     #!/bin/bash
185     sysimage="/mnt/sysimage"
186     cp -r /tmp/anaconda.log ${sysimage}/root/
187     %end

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed