@@ -10,10 +10,6 @@ set -x
10
10
if [ -z " $EUID " ]; then
11
11
EUID=` id -u`
12
12
fi
13
- if [ $EUID -ne 0 ] ; then
14
- echo " This script must be run as root" 1>&2
15
- exit 1
16
- fi
17
13
18
14
# Grab our libs
19
15
. " ` dirname $0 ` /setup-lib.sh"
@@ -41,16 +37,16 @@ maybe_install_packages lvm2 maybe_install_packages thin-provisioning-tools
41
37
# First try to make LVM volumes; fall back to mkextrafs.pl /storage. We
42
38
# use /storage later, so we make the dir either way.
43
39
#
44
- mkdir -p ${STORAGEDIR}
40
+ $SUDO mkdir -p ${STORAGEDIR}
45
41
echo " STORAGEDIR=${STORAGEDIR} " >> $LOCALSETTINGS
46
42
# Check to see if we already have an `emulab` VG. This would occur
47
43
# if the user requested a temp dataset. If this happens, we simple
48
44
# rename it to the VG name we expect.
49
- vgdisplay emulab
45
+ $SUDO vgdisplay emulab
50
46
if [ $? -eq 0 ]; then
51
47
if [ ! emulab = $VGNAME ]; then
52
- vgrename emulab $VGNAME
53
- sed -i -re " s/^(.*)(\/dev\/emulab)(.*)$/\1\/dev\/$VGNAME \3/" /etc/fstab
48
+ $SUDO vgrename emulab $VGNAME
49
+ $SUDO sed -i -re " s/^(.*)(\/dev\/emulab)(.*)$/\1\/dev\/$VGNAME \3/" /etc/fstab
54
50
fi
55
51
LVM=1
56
52
echo " VGNAME=${VGNAME} " >> $LOCALSETTINGS
@@ -69,15 +65,15 @@ elif [ -z "$LVM" ] ; then
69
65
# Well, now there's a new partition layout; try it.
70
66
if [ " $ARCH " = " aarch64" -o " $ARCH " = " ppc64le" ]; then
71
67
maybe_install_packages gdisk
72
- sgdisk -i 1 /dev/sda
68
+ $SUDO sgdisk -i 1 /dev/sda
73
69
if [ $? -eq 0 ] ; then
74
70
nparts=` sgdisk -p /dev/sda | grep -E ' ^ +[0-9]+ +.*$' | wc -l`
75
71
if [ $nparts -lt 4 ]; then
76
72
newpart=` expr $nparts + 1`
77
- sgdisk -N $newpart /dev/sda
78
- partprobe /dev/sda
73
+ $SUDO sgdisk -N $newpart /dev/sda
74
+ $SUDO partprobe /dev/sda
79
75
if [ $? -eq 0 ] ; then
80
- partprobe /dev/sda
76
+ $SUDO partprobe /dev/sda
81
77
# Add the new partition specifically
82
78
MKEXTRAFS_ARGS=" ${MKEXTRAFS_ARGS} -s $newpart "
83
79
fi
@@ -88,33 +84,33 @@ elif [ -z "$LVM" ] ; then
88
84
#
89
85
# See if we can try to use an LVM instead of just the 4th partition.
90
86
#
91
- lsblk -n -P -b -o NAME,FSTYPE,MOUNTPOINT,PARTTYPE,PARTUUID,TYPE,PKNAME,SIZE | perl -e ' my %devs = (); while (<STDIN>) { $_ =~ s/([A-Z0-9a-z]+=)/;\$$1/g; eval "$_"; if (!($TYPE eq "disk" || $TYPE eq "part")) { next; }; if (exists($devs{$PKNAME})) { delete $devs{$PKNAME}; } if ($FSTYPE eq "" && $MOUNTPOINT eq "" && ($PARTTYPE eq "" || $PARTTYPE eq "0x0") && (int($SIZE) > 3221225472)) { $devs{$NAME} = "/dev/$NAME"; } }; print join(" ",values(%devs))."\n"' > /tmp/devs
87
+ $SUDO lsblk -n -P -b -o NAME,FSTYPE,MOUNTPOINT,PARTTYPE,PARTUUID,TYPE,PKNAME,SIZE | perl -e ' my %devs = (); while (<STDIN>) { $_ =~ s/([A-Z0-9a-z]+=)/;\$$1/g; eval "$_"; if (!($TYPE eq "disk" || $TYPE eq "part")) { next; }; if (exists($devs{$PKNAME})) { delete $devs{$PKNAME}; } if ($FSTYPE eq "" && $MOUNTPOINT eq "" && ($PARTTYPE eq "" || $PARTTYPE eq "0x0") && (int($SIZE) > 3221225472)) { $devs{$NAME} = "/dev/$NAME"; } }; print join(" ",values(%devs))."\n"' > /tmp/devs
92
88
DEVS=` cat /tmp/devs`
93
89
if [ -n " $DEVS " ]; then
94
- pvcreate $DEVS && vgcreate $VGNAME $DEVS
90
+ $SUDO pvcreate $DEVS && vgcreate $VGNAME $DEVS
95
91
if [ ! $? -eq 0 ]; then
96
92
echo " ERROR: failed to create PV/VG with '$DEVS '; falling back to mkextrafs.pl"
97
- vgremove $VGNAME
98
- pvremove $DEVS
93
+ $SUDO vgremove $VGNAME
94
+ $SUDO pvremove $DEVS
99
95
DONE=0
100
96
else
101
97
DONE=1
102
98
fi
103
99
fi
104
100
105
101
if [ $DONE -eq 0 ]; then
106
- /usr/local/etc/emulab/mkextrafs.pl ${MKEXTRAFS_ARGS}
102
+ $SUDO /usr/local/etc/emulab/mkextrafs.pl ${MKEXTRAFS_ARGS}
107
103
if [ $? -ne 0 ]; then
108
- /usr/local/etc/emulab/mkextrafs.pl ${MKEXTRAFS_ARGS} -f
104
+ $SUDO /usr/local/etc/emulab/mkextrafs.pl ${MKEXTRAFS_ARGS} -f
109
105
if [ $? -ne 0 ]; then
110
- /usr/local/etc/emulab/mkextrafs.pl -f ${STORAGEDIR}
106
+ $SUDO /usr/local/etc/emulab/mkextrafs.pl -f ${STORAGEDIR}
111
107
LVM=0
112
108
fi
113
109
fi
114
110
fi
115
111
116
112
# Get integer total space (G) available.
117
- VGTOTAL=` vgs -o vg_size --noheadings --units G $VGNAME | sed -ne ' s/ *\([0-9]*\)[0-9\.]*G/\1/p' `
113
+ VGTOTAL=` $SUDO vgs -o vg_size --noheadings --units G $VGNAME | sed -ne ' s/ *\([0-9]*\)[0-9\.]*G/\1/p' `
118
114
echo " VGNAME=${VGNAME} " >> $LOCALSETTINGS
119
115
echo " VGTOTAL=${VGTOTAL} " >> $LOCALSETTINGS
120
116
echo " LVM=${LVM} " >> $LOCALSETTINGS
@@ -130,29 +126,29 @@ if [ $LVM -eq 1 ]; then
130
126
LV_SIZE=` perl -e " print 0.75 * $vgt ;" `
131
127
echo " LV_SIZE=${LV_SIZE} " >> $LOCALSETTINGS
132
128
133
- # lvcreate -l 75%FREE -n $LVNAME $VGNAME
134
- lvcreate -L ${LV_SIZE} G -n $LVNAME $VGNAME
129
+ # $SUDO lvcreate -l 75%FREE -n $LVNAME $VGNAME
130
+ $SUDO lvcreate -L ${LV_SIZE} G -n $LVNAME $VGNAME
135
131
136
132
if [ -f /sbin/mkfs.ext4 ]; then
137
- mkfs.ext4 /dev/$VGNAME /$LVNAME
133
+ $SUDO mkfs.ext4 /dev/$VGNAME /$LVNAME
138
134
echo " /dev/$VGNAME /$LVNAME ${STORAGEDIR} ext4 defaults 0 0" \
139
- >> /etc/fstab
135
+ | $SUDO tee -a /etc/fstab
140
136
else
141
137
mkfs.ext3 /dev/$VGNAME /$LVNAME
142
138
echo " /dev/$VGNAME /$LVNAME ${STORAGEDIR} ext3 defaults 0 0" \
143
- >> /etc/fstab
139
+ | $SUDO tee -a /etc/fstab
144
140
fi
145
- mount ${STORAGEDIR}
141
+ $SUDO mount ${STORAGEDIR}
146
142
fi
147
143
148
144
#
149
145
# Redirect some Docker/k8s dirs into our extra storage.
150
146
#
151
147
for dir in docker kubelet ; do
152
- mkdir -p $STORAGEDIR /$dir /var/lib/$dir
153
- mount -o bind $STORAGEDIR /$dir /var/lib/$dir
148
+ $SUDO mkdir -p $STORAGEDIR /$dir /var/lib/$dir
149
+ $SUDO mount -o bind $STORAGEDIR /$dir /var/lib/$dir
154
150
echo " $STORAGEDIR /$dir /var/lib/$dir none defaults,bind 0 0" \
155
- >> /etc/fstab
151
+ | $SUDO tee -a /etc/fstab
156
152
done
157
153
158
154
logtend " disk-space"
0 commit comments