blob: 87bb21c9d291353575c008c7bec17da759d22913 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
#!/usr/bin/env bash
if [ ! "$USER" = "root" ]; then
echo
echo Error: must be run as root!
echo
exit 1
fi
set -e
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SPDK_DIR="$(cd "${DIR}/../../" && pwd)"
echo "SPDK_DIR = $SPDK_DIR"
# Bug fix for vagrant rsync problem
if [ -d /home/vagrant/spdk_repo ]; then
echo "Fixing permissions on /home/vagrant/spdk_repo"
chown vagrant /home/vagrant/spdk_repo
chgrp vagrant /home/vagrant/spdk_repo
fi
# Setup for run-autorun.sh
if [ ! -f /home/vagrant/autorun-spdk.conf ]; then
echo "Copying scripts/vagrant/autorun-spdk.conf to /home/vagrant"
cp ${SPDK_DIR}/scripts/vagrant/autorun-spdk.conf /home/vagrant
chown vagrant /home/vagrant/autorun-spdk.conf
chgrp vagrant /home/vagrant/autorun-spdk.conf
fi
SYSTEM=$(uname -s)
if [ "$SYSTEM" = "FreeBSD" ]; then
# Do initial setup for the system
pkg upgrade -f
${SPDK_DIR}/scripts/pkgdep.sh --all
if [ -d /usr/src/.git ]; then
echo
echo "/usr/src/ is a git repository"
echo "consider \"cd /usr/src/; git pull\" to update"
echo
else
git clone --depth 10 -b release/11.1.0 https://github.com/freebsd/freebsd.git /usr/src
fi
else
# Make sure that we get the hugepages we need on provision boot
# Note: The package install should take care of this at the end
# But sometimes after all the work of provisioning, we can't
# get the requested number of hugepages without rebooting.
# So do it here just in case
sysctl -w vm.nr_hugepages=1024
HUGEPAGES=$(sysctl -n vm.nr_hugepages)
if [ $HUGEPAGES != 1024 ]; then
echo "Warning: Unable to get 1024 hugepages, only got $HUGEPAGES"
echo "Warning: Adjusting HUGEMEM in /home/vagrant/autorun-spdk.conf"
sed "s/HUGEMEM=.*$/HUGEMEM=${HUGEPAGES}/g" /home/vagrant/autorun-spdk.conf > /home/vagrant/foo.conf
mv -f /home/vagrant/foo.conf /home/vagrant/autorun-spdk.conf
fi
# Figure out what system we are running on
if [ -f /etc/lsb-release ]; then
. /etc/lsb-release
elif [ -f /etc/redhat-release ]; then
yum update -y
yum install -y redhat-lsb
DISTRIB_ID=$(lsb_release -si)
DISTRIB_RELEASE=$(lsb_release -sr)
DISTRIB_CODENAME=$(lsb_release -sc)
DISTRIB_DESCRIPTION=$(lsb_release -sd)
fi
# Do initial setup for the system
if [ "$DISTRIB_ID" == "Ubuntu" ]; then
set -xv
export DEBIAN_PRIORITY=critical
export DEBIAN_FRONTEND=noninteractive
export DEBCONF_NONINTERACTIVE_SEEN=true
# Standard update + upgrade dance
apt-get update --assume-yes --no-install-suggests --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
apt-get upgrade --assume-yes --no-install-suggests --no-install-recommends -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
${SPDK_DIR}/scripts/pkgdep.sh --all
apt-get clean
elif [ "$DISTRIB_ID" == "CentOS" ]; then
# Standard update + upgrade dance
yum check-update
yum update -y
${SPDK_DIR}/scripts/pkgdep.sh --all
yum clean all
elif [ "$DISTRIB_ID" == "Fedora" ]; then
yum check-update
yum update -y
"$SPDK_DIR"/scripts/pkgdep.sh --all
sudo -u vagrant "$SPDK_DIR"/test/common/config/vm_setup.sh -i
yum clean all
fi
cat /dev/null > ~/.bash_history && history -c
fi
|