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." }