Nota: questo è un obiettivo d’esame RHCE 7.
In questo tutorial, il server NFS è chiamato nfsserver.example.com e il client NFS nfsclient.example.com.
Configurazione del server NFS
Installazione di un server NFS:
# yum groupinstall -y file-server
Aggiungi nuove regole per il firewall:
# firewall-cmd --permanent --add-service=nfs success
Nota: NFSv4 è la versione utilizzata all’esame e non richiede alcuna configurazione aggiuntiva del firewall. Tuttavia, al di là degli obiettivi dell’esame, se prevedi di utilizzare NFSv3, dovrai anche eseguire questi comandi:
# firewall-cmd --permanent --add-service=mountd # firewall-cmd --permanent --add-service=rpc-bind
Ricarica la configurazione del firewall:
# firewall-cmd --reload success
Attiva i servizi NFS all’avvio:
# systemctl enable rpcbind nfs-server
Nota: nfs-idmap/nfs-idmapd (le modifiche sono avvenute con RHEL 7.1) e i servizi nfs-lock vengono avviati automaticamente dal servizio nfs-server. nfs-idmap/nfs-idmapd è richiesto da NFSv4 ma non consente alcuna corrispondenza UID/GID tra client e server. Viene utilizzato solo quando si imposta ACL per nome o per visualizzare nomi di utenti/gruppi.
Tutti i controlli delle autorizzazioni vengono ancora eseguiti con l’UID/GID utilizzato dal server (vedere questo thread su nfs-idmap per ulteriori dettagli).
Avvia i servizi NFS:
# systemctl start rpcbind nfs-server
Nota 1: per impostazione predefinita vengono utilizzati 8 thread NFS (RPCNFSDCOUNT = 8 nel file /etc/sysconfig/nfs). Questo dovrebbe essere aumentato in un ambiente di produzione almeno a 32 (fonte: http://initrd.org/wiki/NFS_Setup).
Nota 2: Facoltativamente, per abilitare il supporto NFS con SELinux Label, modificare il file /etc/sysconfig nfs e incollare la seguente riga (source): RPCNFSDARGS = “- V 4.2”
Creare le directory e assegnare i diritti di accesso:
# mkdir -p /home/tools # chmod 0777 /home/tools # mkdir -p /home/guests # chmod 0777 /home/guests
Assegnare i contesti SELinux corretti alle nuove directory:
# yum install -y setroubleshoot-server # semanage fcontext -a -t public_content_rw_t "/home/tools(/.*)?" # semanage fcontext -a -t public_content_rw_t "/home/guests(/.*)?" # restorecon -R /home/tools # restorecon -R /home/guests
Nota: il contesto public_content_rw_t non è l’unico disponibile, puoi anche utilizzare i contesti public_content_ro_t (sola lettura) o nfs_t (maggiormente limitatativo) in base alle tue esigenze.
Controlla i booleani SELinux usati per NFS:
# semanage boolean -l | egrep "nfs|SELinux" SELinux boolean State Default Description xen_use_nfs (off , off) Allow xen to use nfs virt_use_nfs (off , off) Allow virt to use nfs mpd_use_nfs (off , off) Allow mpd to use nfs nfsd_anon_write (off , off) Allow nfsd to anon write ksmtuned_use_nfs (off , off) Allow ksmtuned to use nfs git_system_use_nfs (off , off) Allow git to system use nfs virt_sandbox_use_nfs (off , off) Allow virt to sandbox use nfs logrotate_use_nfs (off , off) Allow logrotate to use nfs git_cgi_use_nfs (off , off) Allow git to cgi use nfs cobbler_use_nfs (off , off) Allow cobbler to use nfs httpd_use_nfs (off , off) Allow httpd to use nfs sge_use_nfs (off , off) Allow sge to use nfs ftpd_use_nfs (off , off) Allow ftpd to use nfs sanlock_use_nfs (off , off) Allow sanlock to use nfs samba_share_nfs (off , off) Allow samba to share nfs openshift_use_nfs (off , off) Allow openshift to use nfs polipo_use_nfs (off , off) Allow polipo to use nfs use_nfs_home_dirs (off , off) Allow use to nfs home dirs nfs_export_all_rw (on , on) Allow nfs to export all rw nfs_export_all_ro (on , on) Allow nfs to export all ro
Nota 1: la colonna State mostra rispettivamente la configurazione booleana corrente e la colonna Default la configurazione booleana permanente.
Nota 2: Qui siamo interessati a nfs_export_all_rw, nfs_export_all_ro e potenzialmente use_nfs_home_dirs booleans.
Nota3: il valore booleano di nfs_export_all_ro consente di condividere i file tramite NFS in modalità di sola lettura, ma non impedisce loro di essere utilizzati in modalità di lettura-scrittura. È il ruolo di nfs_export_all_rw booleano per consentire la modalità di lettura-scrittura.
Se necessario, assegnare l’impostazione corretta ai booleani SELinux:
# setsebool -P nfs_export_all_rw on # setsebool -P nfs_export_all_ro on # setsebool -P use_nfs_home_dirs on
Modifica il file /etc/exports e aggiungi le seguenti righe con il nome (o l’indirizzo IP) dei client:
/home/tools nfsclient.example.com(rw,no_root_squash) /home/guests nfsclient.example.com(rw,no_root_squash)
Nota: per favore, non mettere nessuno spazio prima della parentesi di apertura, questo cambierebbe completamente il significato della linea!
Esporta le directory:
# exportfs -avr exporting nfsclient.example.com:/home/guests exporting nfsclient.example.com:/home/tools # systemctl restart nfs-server
Nota: questo ultimo comando non dovrebbe essere necessario in futuro. Ma, per il momento, evita il riavvio.
Controlla la tua configurazione:
# showmount -e localhost Export list for localhost: /home/guests nfsclient.example.com /home/tools nfsclient.example.com
Nota: è possibile testare ciò che viene esportato dal server NFS da un client remoto con il comando showmount -e nfsserver.example.com, ma è prima necessario arrestare Firewalld sul server NFS (o aprire le porte 111 udp e 20048 tcp sul Server NFS).
Configurazione client NFS
Sul lato client, i comandi sono:
# yum install -y nfs-utils # mount -t nfs nfsserver.example.com:/home/tools /mnt
Pingback: Altri Requisiti per conseguire l' RHCSA | prometheusproject
Pingback: Altri Requisiti per conseguire l' RHCSA - prometheusproject
Pingback: Obiettivi esame RHCE 7 - prometheusproject