GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come configurare il demone autofs su CentOS 7/Rhel 7

Obiettivo

Scopri come sfruttare il demone autofs per montare automaticamente dispositivi e condivisioni remote.

Requisiti

  • Privilegi di root per installare il pacchetto autofs e modificare i file di configurazione

Difficoltà

FACILE

Introduzione

Montaggio e smontaggio manuale di dispositivi come unità USB esterne o NFS remoto o Samba le condivisioni possono essere attività noiose da eseguire durante l'amministrazione di una macchina. Gli autofs daemon può aiutarci a montare automaticamente un filesystem quando necessario e a smontarlo dopo un determinato periodo di tempo. In questo tutorial vedremo il concetto di base relativo all'automounter e come configurarlo.

Installazione di Autofs

La prima cosa da fare è installare autofs pacchetto. È disponibile nei repository ufficiali CentOS7 e Rhel7, quindi non ci resta che usare yum gestore di pacchetti per ottenerlo:

$ sudo yum install autofs

Il prossimo passo è avviare autofs demone e abilitalo all'avvio:

$ sudo systemctl enable --now autofs

La configurazione del demone autofs

Il demone autofs viene configurato manipolando alcuni file, ognuno con il proprio scopo specifico. Quello che fondamentalmente dobbiamo fare è fornire alcune istruzioni al demone, per fargli sapere come dovrebbe gestire i punti di montaggio e i dispositivi (questo è ciò che chiamiamo una map ), e facoltativamente un insieme di opzioni che possono essere utilizzate per modificarne il comportamento. Vediamo quali sono questi file di configurazione e qual è il loro ruolo.

Il file /etc/sysconfig/autofs

Il /etc/sysconfig/autofs file è il file di configurazione principale per autofs demone e contiene le sue impostazioni globali. Questo è il contenuto del file in un'installazione predefinita di CentOS 7.5:

#
# Init syatem options
#
# If the kernel supports using the autofs miscellanous device
# and you wish to use it you must set this configuration option
# to "yes" otherwise it will not be used.
#
USE_MISC_DEVICE="yes"
#
# Use OPTIONS to add automount(8) command line options that
# will be used when the daemon is started.
#
#OPTIONS=""
#

Possiamo modificare il comportamento del demone rimuovendo il commento alla riga 13 e passando gli argomenti della riga di comando sotto forma di stringa, come valore di OPTIONS variabile.

Facciamo un esempio:diciamo di voler cambiare l'intervallo di tempo predefinito dopo il quale il demone dovrebbe smontare automaticamente un filesystem:il valore predefinito è 300 secondi o 5 minuti. Leggendo il manuale di autofs (automount(8) ), possiamo vedere che per modificare questo parametro dovremmo usare il --timeout opzione, che prende come parametro l'intervallo di tempo espresso in seconds :

 -t , --timeout 
        Set the global minimum timeout, in  seconds,  until  directories
        are unmounted. The default is 10 minutes. Setting the timeout to
        zero disables umounts completely.  The internal program  default
        is 10 minutes, but the default installed configuration overrides
        this and sets the timeout to 5 minutes  to  be  consistent  with
        earlier autofs releases.

Supponiamo ad esempio di voler cambiare il timeout di smontaggio predefinito a 10 minuti, è così che dovremmo cambiare il /etc/sysconfig/autofs file:

OPTIONS="--timeout=600"

Dopo aver salvato le modifiche, dovremmo riavviare il demone affinché la nuova configurazione abbia effetto. Possiamo vedere come è stata adottata la nuova opzione di timeout controllando lo stato del demone con systemctl :

$ systemctl status autofs
autofs.service - Automounts filesystems on demand
   [...]
   CGroup: /system.slice/autofs.service
           └─6452 /usr/sbin/automount --timeout=600 --foreground --dont-check-daemon
   [...]

Il file /etc/auto.master

Il auto.master è molto importante, poiché contiene la master map dell'automounter . Ogni mappa associa un punto di montaggio a un file di configurazione in cui sono descritti i filesystem da montare, quindi in pratica descrive un'altra mappa. Viene creata una mappa utilizzando la seguente sintassi:

<mountpoint> <configuration file> <options>

La configurazione dice al demone che il dato mountpoint è gestito dalle mappe impostate nel configuration file specificato , applicando le opzioni fornite, che possono sovrascrivere quelle globali (questo può essere utile, ad esempio, per fornire un timeout di smontaggio specifico per ogni punto di montaggio). Vediamo un esempio concreto:se diamo un'occhiata alla riga 7 del file, possiamo vedere la seguente mappa:

/misc   /etc/auto.misc

Questa configurazione specifica che il /misc mountpoint è interessato dalle mappature descritte in /etc/auto.misc file. Vediamo come sono configurate quelle mappe dando un'occhiata.

Il file /etc/auto.misc

Come abbiamo visto in /etc/auto.master file, il /misc mountpoint è associato a /etc/auto.misc file di configurazione. Ora lo esamineremo, per capire come viene definita una mappa per un dispositivo. Questo è il contenuto predefinito del file:

#
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# Details may be found in the autofs(5) manpage

cd		-fstype=iso9660,ro,nosuid,nodev	:/dev/cdrom

[...]

La sintassi utilizzata per la configurazione è la seguente:

<key> <mount options> <filesystem>

La prima cosa che dobbiamo specificare è la key . Il valore di questo parametro, verrà utilizzato, nel caso di indirect maps (tra un minuto faremo diversi tipi di mappe) come il nome della sottodirectory che verrà creata se non esiste, sotto il punto di montaggio principale, che in questo caso è /misc . Il /dev/cdrom dispositivo, verrà quindi automaticamente montato sul /misc/cd directory.

Il secondo elemento da fornire è l'elenco delle opzioni di montaggio che dovrebbero essere applicate:in questo esempio il -fstype è stata usata l'opzione per specificare il tipo di filesystem, insieme a ro , nosuid e nodev .

Infine dobbiamo specificare la posizione del filesystem. In questo caso, trattandosi di un percorso locale, deve essere preceduto da un : carattere (due punti).

Nel caso di un NFS remoto condividi, avremmo scritto 192.168.1.39:/srv/nfs_share invece, dove 192.168.1.39 è l'indirizzo della macchina remota (è possibile utilizzare anche il nome host), e /srv/nfs_share è il percorso della directory condivisa su di esso.

Quando ci riferivamo a una condivisione samba, avremmo dovuto invece fornire -fstype=cifs come opzione, specificando l'ip della macchina remota e il percorso della directory condivisa nel seguente formato:

://192.168.1.39/srv/samba_share

Mappe indirette, dirette e host

Abbiamo menzionato una indirect map prima, vediamo ora nel dettaglio le diverse tipologie di mappe. Ci sono tre tipi di mappa che possiamo usare:direct , indirect e host mappe:un esempio di indirect map è ciò che abbiamo appena visto nel file /etc/auto.master, per il /misc punto di montaggio.

Una mappa è chiamata indiretta, perché la key parametro specificato nel file di configurazione (/etc/auto.misc in questo caso) associato al punto di montaggio (/etc/misc ), verrà utilizzato come nome della directory relativa a quel punto di montaggio in cui si trova il filesystem (:/dev/cdrom nel nostro esempio) verrà montato.

Una direct map , è sempre specificato con la seguente sintassi nel file auto.master:

/- /etc/auto.misc

Quando /- è usato come punto di montaggio in una mappa, ciò significa che stiamo usando una mappa diretta. In questo caso, il key elemento della sintassi utilizzata nel file di configurazione associato al punto di montaggio, deve essere un percorso assoluto. Pertanto, nell'esempio sopra, avremmo scritto:

/cd -fstype=iso9660,ro,nosuid,nodev	:/dev/cdrom

Finalmente possiamo trovare una host map esempio nel file /etc/auto.master, alla riga 13:

/net	-hosts

Tale mappa è definita di default; Come funziona? Quando viene specificata una mappa host, l'automounter crea una sottodirectory sotto il punto di montaggio specificato (/net in questo caso) per ogni macchina elencata nel /etc/hosts che esporta un NFS Condividere. Questo è possibile grazie a /etc/auto.net script, che esamineremo ora. Ciascuna delle directory condivise verrà montata per impostazione predefinita con nosuid e nodev opzioni.

Gli script /etc/auto.net e /etc/auto.smb

Ci sono due script molto utili inclusi in autofs installazione:/etc/auto.net e /etc/auto.smb . Questi script sono fondamentalmente dei wrapper, rispettivamente, di showmount e smbclient programmi, utilizzati per scoprire le condivisioni NFS e samba disponibili. Produrranno risultati in un formato che può essere utilizzato dall'automounter.

Il /etc/auto.net lo script può essere utilizzato per avere una panoramica e per leggere le condivisioni NFS. Possiamo invocare lo script specificando il nome host o l'indirizzo ip del server che vogliamo cercare come argomento:

$ sudo /etc/auto.net 192.168.1.39

Ora, immagina che venga trovata una condivisione. Il comando restituirà un output simile a questo:

/shared 192.168.1.39:/shared

Ciò significherebbe che sulla macchina con ip 192.168.1.39, il /shared la directory è condivisa tramite NFS. Basato su host map abbiamo trovato nel file /etc/auto.master saremo in grado di accedere alla condivisione su /net/192.168.1.39/shared . Questo perché, come abbiamo detto prima, quando si utilizza una mappa host, per ogni macchina nel file /etc/hosts che esporta una condivisione NFS, viene creata una sottodirectory in /net.

Il /etc/auto.smb funziona in modo simile. Se vogliamo che le condivisioni samba nella nostra rete vengano montate automaticamente dall'automounter, proprio come accade per le condivisioni NFS, la prima cosa che dobbiamo fare è aggiungere questa mappa nel /etc/auto.master file:

/cifs /etc/auto.smb

Dopo aver aggiunto la mappa, dovremmo riavviare il demone:

sudo systemctl restart autofs

A questo punto, grazie al /etc/auto.smb script, per ogni macchina che esporta una o più condivisioni smb nella nostra rete, verrà creata una directory in /cifs . Ad esempio, immagina che su una macchina con ip 192.168.122.32 abbiamo un /srv/samba directory condivisa tramite samba. Se vogliamo verificarlo, possiamo eseguire /etc/auto.smb script contro l'ip di quella macchina. Ecco l'output:

$ /etc/auto.smb 192.168.122.32
-fstype=cifs,guest \
	 "/sambadir" "://192.168.122.32/sambadir"

Come detto prima, lo script è un wrapper attorno a smbclient e produce un output che può essere utilizzato dall'automounter. La directory condivisa sarà disponibile, nel nostro filesystem locale, all'interno del /cifs/192.168.122.32/ creato automaticamente directory:

$ ls /cifs/192.168.122.32
sambadir

Montaggio e smontaggio pigri

Per ottimizzare il numero di punti di montaggio creati, l'automounter utilizza una tecnica chiamata lazy mounting . Invece di montare un dispositivo non appena è disponibile o scoperto, attenderà fino a quando un utente tenterà di accedere al filesystem:solo allora verrà eseguita l'operazione di montaggio. Lo stesso accade per il processo di smontaggio:un dispositivo viene smontato automaticamente dopo un timeout specificato.


Cent OS
  1. Come aggiornare CentOS 7.0/7.1/7.2/7.3/7.4/7.5/7.6 a CentOS 7.7

  2. Come installare e configurare HAProxy su CentOS/RHEL 7/6

  3. CentOS / RHEL 7:come configurare il server dei nomi solo cache

  4. CentOS / RHEL 6,7 :Come configurare hugepages

  5. Come configurare la registrazione firewalld in CentOS/RHEL 8

Come configurare l'indirizzo IP statico in CentOS 7 / RHEL 7

Come configurare l'indirizzo IP statico in CentOS 8 / RHEL 8

Come installare e configurare Ansible su CentOS 8 / RHEL 8

Come configurare l'indirizzo IP statico di rete su RHEL/CentOS 8/7

Come installare e configurare GlusterFS su CentOS 7/CentOS 8

Come configurare il server VNC su CentOS/RHEL 6