Update nfs host example setup script.
This commit is contained in:
@@ -8,16 +8,18 @@ SCRIPT_DIR="$(dirname "$SCRIPT_PATH")"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
|
||||
usage() {
|
||||
echo "Usage: setup-nfs-host.sh [server] [media-path] [options]"
|
||||
echo "Usage: setup-nfs-host.sh [server] [media-path]"
|
||||
echo ""
|
||||
echo "Set up NFS server on the specified host."
|
||||
echo ""
|
||||
echo "Creates a 'wildcloud' system user and exports the media path with"
|
||||
echo "all_squash so all NFS clients write as 'wildcloud' on the server."
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " setup-nfs-host.sh box-01 /data/media"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " -h, --help Show this help message"
|
||||
echo " -e, --export-options Set the NFS export options"
|
||||
|
||||
}
|
||||
|
||||
@@ -28,15 +30,6 @@ while [[ $# -gt 0 ]]; do
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
-e|--export-options)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "Error: --export-options requires a value"
|
||||
exit 1
|
||||
else
|
||||
NFS_EXPORT_OPTIONS="$2"
|
||||
fi
|
||||
shift 2
|
||||
;;
|
||||
-*)
|
||||
echo "Unknown option $1"
|
||||
usage
|
||||
@@ -75,15 +68,8 @@ if [[ -z "${NFS_MEDIA_PATH}" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set default for NFS_EXPORT_OPTIONS if not already set
|
||||
if [[ -z "${NFS_EXPORT_OPTIONS}" ]]; then
|
||||
export NFS_EXPORT_OPTIONS="*(rw,sync,no_subtree_check,no_root_squash)"
|
||||
echo "Using default NFS_EXPORT_OPTIONS: ${NFS_EXPORT_OPTIONS}"
|
||||
fi
|
||||
|
||||
echo "Target NFS host: ${NFS_HOST}"
|
||||
echo "Media path: ${NFS_MEDIA_PATH}"
|
||||
echo "Export options: ${NFS_EXPORT_OPTIONS}"
|
||||
|
||||
# Function to check if we're running on the correct host
|
||||
check_host() {
|
||||
@@ -120,27 +106,38 @@ install_nfs_server() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to create wildcloud system user
|
||||
create_wildcloud_user() {
|
||||
if id wildcloud >/dev/null 2>&1; then
|
||||
echo "wildcloud user already exists: $(id wildcloud)"
|
||||
else
|
||||
echo "Creating wildcloud system user..."
|
||||
sudo useradd --system --no-create-home --shell /bin/false wildcloud
|
||||
echo "Created wildcloud user: $(id wildcloud)"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to create media directory
|
||||
create_media_directory() {
|
||||
echo "Creating media directory: ${NFS_MEDIA_PATH}"
|
||||
|
||||
# Create directory if it doesn't exist
|
||||
sudo mkdir -p "${NFS_MEDIA_PATH}"
|
||||
|
||||
# Set appropriate permissions
|
||||
# Using 755 for directory, allowing read/execute for all, write for owner
|
||||
sudo chown -R wildcloud:wildcloud "${NFS_MEDIA_PATH}"
|
||||
sudo chmod 755 "${NFS_MEDIA_PATH}"
|
||||
|
||||
echo "Media directory created with appropriate permissions"
|
||||
echo "Directory info:"
|
||||
ls -la "${NFS_MEDIA_PATH}/"
|
||||
echo "Media directory created:"
|
||||
ls -la "$(dirname "${NFS_MEDIA_PATH}")/"
|
||||
}
|
||||
|
||||
# Function to configure NFS exports
|
||||
configure_nfs_exports() {
|
||||
echo "Configuring NFS exports..."
|
||||
|
||||
local export_line="${NFS_MEDIA_PATH} ${NFS_EXPORT_OPTIONS}"
|
||||
local uid gid
|
||||
uid=$(id -u wildcloud)
|
||||
gid=$(id -g wildcloud)
|
||||
local export_options="*(rw,sync,no_subtree_check,all_squash,anonuid=${uid},anongid=${gid})"
|
||||
local export_line="${NFS_MEDIA_PATH} ${export_options}"
|
||||
local exports_file="/etc/exports"
|
||||
|
||||
# Backup existing exports file
|
||||
@@ -264,7 +261,8 @@ show_usage_instructions() {
|
||||
echo
|
||||
echo "=== NFS/SMB Host Setup Complete ==="
|
||||
echo
|
||||
echo "NFS and SMB servers are now running on this host with media directory: ${NFS_MEDIA_PATH}"
|
||||
echo "NFS and SMB servers are now running on this host."
|
||||
echo "Media directory: ${NFS_MEDIA_PATH} (owned by wildcloud, uid=$(id -u wildcloud))"
|
||||
echo
|
||||
echo "Access methods:"
|
||||
echo "1. NFS (for Kubernetes): Use setup-nfs-k8s.sh to register with cluster"
|
||||
@@ -293,6 +291,7 @@ show_usage_instructions() {
|
||||
main() {
|
||||
check_host
|
||||
install_nfs_server
|
||||
create_wildcloud_user
|
||||
create_media_directory
|
||||
configure_nfs_exports
|
||||
start_nfs_services
|
||||
|
||||
Reference in New Issue
Block a user