46 lines
1.5 KiB
Bash
Executable File
46 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Info: Script to install nfs packages
|
|
# Author: JesusPerezLorenzo
|
|
# Release: 1.1
|
|
# Date: 8-07-2024
|
|
|
|
USAGE="install.sh "
|
|
[ "$1" == "-h" ] && echo "$USAGE" && exit 1
|
|
|
|
_add_nfs_server() {
|
|
chmod 1777 /tmp
|
|
echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections
|
|
DEBIAN_FRONTEND=noninteractive sudo apt-get -y -qq install sudo nfs-server
|
|
}
|
|
|
|
# Update and add packages to installation
|
|
[ -z "$(type -P exporfs)" ] && _add_nfs_server
|
|
|
|
[ -r "env-external-nfs" ] && . env-external-nfs
|
|
|
|
WORK_PATH=${WORK_PATH:-/tmp}
|
|
|
|
if [ -z "$NFS_IP" ] || [ -z "$NFS_NET" ] || [ -z "$NFS_SHARE_PATH" ] ; then
|
|
echo "Error: IP NET SHARE_PATH not all set for NFS"
|
|
exit 1
|
|
fi
|
|
[ ! -d "$NFS_SHARE_PATH" ] && mkdir -p "$NFS_SHARE_PATH" && chmod 777 "$NFS_SHARE_PATH"
|
|
if ! grep -q "$NFS_NET" /etc/exports ; then
|
|
[ -r "exports" ] && cat exports | sudo tee -a /etc/exports && exportfs -a
|
|
fi
|
|
if [ -r "/etc/kubernetes/manifests/kube-apiserver.yaml" ] ; then
|
|
has_kubectl=$(type -P kubectl 2>/dev/null)
|
|
[ -z "$has_kubectl" ] && echo "kubectl command not found" && exit 0
|
|
if kubectl apply -f core-nfs.yaml && kubectl apply -f storage-class.yaml ; then
|
|
[ -r "deploy-external-nfs.yaml" ] && kubectl apply -f deploy-external-nfs.yaml
|
|
[ "$WORK_PATH" != "/tmp" ] && {
|
|
sudo mkdir -p "$WORK_PATH/external-nfs"
|
|
sudo mv core-nfs.yaml stroge-class.yaml deploy-external-nfs.yaml "$WORK_PATH/external-nfs"
|
|
}
|
|
exit 0
|
|
else
|
|
echo "Error kubectl install errors " && exit 1
|
|
fi
|
|
fi
|
|
|