blog_hero_Automatisch NFS shares mappen

Automatisch NFS shares mappen

Oct 13 2023

Waarom AutoFS gebruiken?

Soms wil je mappen of bestanden beschikbaar maken naar meerdere toestellen. Een handige manier om dat te doen is via NFS(Network File System). Dit procotol bestaat al even en ondertussen zitten we aan versie 4 in het gebruik hiervan. In grote lijnen is het heel simpel om een NFS share te delen over het netwerk:

  • Maak een map aan die je wilt delen
  • Zorg dat NFS geïnstalleerd is (nfs-utils) en activeeer de service (systemctl enable --now nfs-server)
  • Vul de te delen map in /etc/exports (/pad/naar/map <toegestane IP-range voor toegang>(<opties>))
  • activeer de NFS configuratie (exportfs -arv)

De toegestane IP-range kan ook een IP-adres zijn maar vaak wil je meerdere toestellen toegang geven. vb 192.168.64.0/24. De opties

Daarna kunnen we de map mounten. Dat proces is, net als een andere mount, vaak gebonden aan een admin gebruiker. Niet erg handig als de NFS map als home folder moet dienen. Daarnaast willen we ook niet dat als een gebruiker zich afmeld, dat de home folder (die zich op een ander toestel bevindt) nog steeds beschikbaar is.

Je voelt het al aankomen maar dit zijn enkele voordelen van AutoFS. Als onze share goed opgebouwd is, kunnen we verschillende gebruikers laten aanmelden en worden hun homedrives automatisch gekoppeld aan de juiste NFS-share. Als ze afmelden, worden de verbindingen automatisch verbroken. De grote voordelen zijn dus:

  • NFS shares zijn niet permanent verbonden. Verbindingen worden automatisch verbroken.
  • AutoFS wordt geconfigureerd op de client. Op serverzijde is er niets nodig.
  • NFS shares zijn beshikbaar voor alle gebruikers, gegeven dat de rechten op de share dat toestaan.

Configuratie: direct share

Eerst moeten we autofs installeren. In RHEL en afgeleiden kunnen we dat met:

sudo dnf install -y autofs

Als je dit nog niet gedaan hebt, moet je op je NFS-server ook firewall regels toestaan. In principe is de nfs service voldoende. De anderen gaan ons vooral helpen in de verbindingen testen.

sudo firewall-cmd --add-service={nfs,mountd,rpc-bind} --permanent
sudo firewall-cmd --reload

Nu kunnen we de configuratie terugvinden in /etc/auto.master maar wij maken onze aanpassingen in een nieuw bestand onder /etc/auto.master.d/. De naam van dat bestand maakt niet uit. Maak er iets beduidend van. Laat de naam verder ook eindigen op .autofs. Zo zal het systeem de configuratie goed oppikken.

Voor we dit nu helemaal gaan opzetten, kunnen we best eerst manueel onze NFS share testen;

showmount -e <IP-adres van server>
sudo mount -t nfs4 <IP-adres van server>:/map/naar/share /map/naar/mountpoint
sudo umount /map/naar/mountpoint

In ons configuratie bestand onder /etc/auto.master.d/ kunnen we nu de autofs configuratie gaan opzetten. Als voorbeeld neem ik het bestand /etc/auto.master.d/temp.autofs. Hierin zetten we het pad naar de map waarin onze share gemount zal worden. Voor de map /home/bob gaan we dus /home invullen. Als we in root willen mappen, moeten we /- invullen. Daarachter gaan we nu het pad naar een ander bestand opgeven waarin we onze configuratie gaan invullen. In mijn geval heb ik gekozen voor /etc/share.misc maar de naamgeving maakt helemaal niet uit.

/etc/auto.master.d/temp.autofs

/home /etc/share.misc

/etc/share.misc

bob -rw,soft,intr  <IP-adres van server>:/map/naar/share

Als we nu de autofs service starten, kunnen we meteen naar onze map gaan en de inhoud van de share te zien krijgen. Leuk maar nog niet erg handig als we homedrives daar willen plaatsen.

Configuratie: indirect share

Om nu variabel een share te kunnen mappen, moeten we de configuratie verder tweaken. We willen namelijk een indirect share mappen in plaats van een direct share.

Op de NFS server zorgen we eerst dat er mappen zijn voor onze gebruikers.

mkdir -p /media/share/bob /media/share/<users>

Zorg dat de users op beide servers dezelfde User ID hebben. Dat maakt het rechten beheer een pak makkelijker.

Nu gaan we de /etc/share.misc verder aanpassen. Het mountpoint bob vervangen we nu met een wildcard: *. Ook achteraan de share gaan we een & invullen. Hier wordt de naam van de map automatisch ingevuld. We hebben dus nog steeds de mountpoint /home/bob die verwijst naar bob map in de NFS share. Ook ga je gemerkt hebben dat we hier de opties verwijderd hebben. Als je deze laat staan, werkt het niet meer.

* <IP-adres van server>:/map/naar/share/&

Weer een mysterie minder!