---
title:  "Automatisch NFS shares mappen"
excerpt: 'NFS shares zijn handig en als die automatisch gemapped worden is dat nog veel handiger!'
coverImage: '/AutoFS/cover_AutoFS.png'
date:   '2023-10-13T20:00:00.000Z'
author: Eli Winderickx
hero_image: /cover_AutoFS.png
category: Linux,NFS,Configuratie,Expert Tip
---
## 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: 
```bash
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.

```bash
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;
```bash
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. 

```bash
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!