Automating NFS Mounts with Autofs on Raspberry Pi for Docker Swarm
When managing a Docker Swarm on a fleet of Raspberry Pis, ensuring consistent and reliable access to shared storage across your nodes is crucial. This is where Autofs comes into play. Autofs is a utility that automatically mounts network file systems when they’re accessed, making it an ideal solution for managing persistent storage in a Docker Swarm environment. In this blog post, we’ll walk through the process of installing and configuring Autofs on a Raspberry Pi to use with an NFS server for shared storage.
Step 1: Setting Up the NFS Server
Before configuring Autofs, you need an NFS server that hosts your shared storage. If you haven’t already set up an NFS server, you can do so by installing the nfs-kernel-server
package on your Raspberry Pi designated as the NFS server:
sudo apt install nfs-kernel-server -y
Then, configure the NFS export by editing the /etc/exports
file and adding the following line to share the /data
directory:
/data 192.168.0.0/24(rw,sync,no_subtree_check,no_root_squash)
Restart the NFS server to apply the changes:
sudo /etc/init.d/nfs-kernel-server restart
Verify the export with:
sudo exportfs
Step 2: Installing Autofs on Client Raspberry Pis
On each Raspberry Pi client that needs access to the NFS share, install Autofs:
sudo apt update -y
sudo apt install autofs -y
Reboot the Raspberry Pi to ensure all updates are applied:
sudo reboot
Step 3: Configuring Autofs
After installing Autofs, you’ll need to configure it to automatically mount the NFS share. Edit the /etc/auto.master
file and add a line for the mount point:
/- /etc/auto.data --timeout=60
Create and edit /etc/auto.data
to specify the NFS share details:
/data -fstype=nfs,rw 192.168.0.220:/data
This configuration tells Autofs to mount the NFS share located at 192.168.0.220:/data
to /data
on the client Raspberry Pi.
Step 4: Starting and Testing Autofs
Enable and start the Autofs service:
sudo systemctl enable autofs
sudo systemctl start autofs
Check the status to ensure it’s running without issues:
sudo systemctl status autofs
To test, simply access the /data
directory on the client Raspberry Pi. Autofs should automatically mount the NFS share.
cd /data
ls
If you see the contents of your NFS share, the setup is successful. Autofs will now manage the mount points automatically, ensuring your Docker Swarm has seamless access to shared storage.
Conclusion
By leveraging Autofs with NFS on Raspberry Pi, you can streamline the management of shared volumes in your Docker Swarm, enhancing both reliability and efficiency. This setup minimizes the manual intervention required for mounting shared storage, making your Swarm more resilient to reboots and network changes. Happy Swarming!