summaryrefslogtreecommitdiffstats
path: root/satellit_installer/includes/50-install_dnbd3-server.inc
blob: 8e69db2a2e825db1d8c198d36392279c06c00698 (plain) (blame)
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
install_dnbd3-server_service() {
	echo "# copying dnbd3-server service file..."
	cp -p "$BASEDIR/static_files/dnbd3/dnbd3-server.service" /etc/systemd/system/dnbd3-server.service || perror "failed."
	echo "# Linking dnbd3-server service file into (/etc/systemd/system/)multi-user.target.wants..."
	ln -s /etc/systemd/system/dnbd3-server.service /etc/systemd/system/multi-user.target.wants/dnbd3-server.service \
		|| perror "Could not link dnbd3-server service file into multiuser target!"
	# For accessing stage4 on master server via SSL tunnel
	echo "# copying dnbd3-master-proxy service file..."
	cp -p "$BASEDIR/static_files/dnbd3/dnbd3-master-proxy.service" /etc/systemd/system/dnbd3-master-proxy.service || perror "failed."
	echo "# Linking dnbd3-master-proxy service file into (/etc/systemd/system/)multi-user.target.wants..."
	ln -s /etc/systemd/system/dnbd3-master-proxy.service /etc/systemd/system/multi-user.target.wants/dnbd3-master-proxy.service \
		|| perror "Could not link dnbd3-master-proxy service file into multiuser target!"
}

install_dnbd3-server() {
	# $1: directory to install dnbd3-server to
	echo "# Installing dnbd3 server... "
	mkdir -p "$1" || perror "mkdir '$1' failed"
	# Build server
	mkdir -p "$BASEDIR/tmp"
	git clone https://git.openslx.org/dnbd3.git "$BASEDIR/tmp/dnbd3" || perror "Could not clone dnbd3"
	mkdir "$BASEDIR/tmp/dnbd3/build"
	cd "$BASEDIR/tmp/dnbd3/build" || perror "Build dir == where?"
	cmake -DBUILD_FUSE_CLIENT=OFF -DBUILD_KERNEL_MODULE=OFF -DBUILD_STRESSTEST=OFF -DBUILD_SERVER=ON -DCMAKE_BUILD_TYPE=Release .. || perror "cmake failed"
	make dnbd3-server || perror "Building dnbd3-server failed"
	cp dnbd3-server "$1/" || perror "Could not copy dnbd3-server binary to $1"
	cd - &>/dev/null

	# Copy config files
	mkdir -p /etc/dnbd3-server || perror "mkdir /etc/dnbd3-server failed"
	for i in rpc.acl server.conf alt-servers; do
		cp -p "$BASEDIR/static_files/dnbd3/$i" "/etc/dnbd3-server/$i" \
			|| perror "Could not copy $i to /etc/dnbd3-server"
		chmod 644 "/etc/dnbd3-server/$i"
	done
	chown -R root:root "$1"

	install_dnbd3-server_service "/etc/systemd/system/"
	echo "# dnbd3-server ok."
}