Difference between revisions of "OPS335 NFS Lab"

From CDOT Wiki
Jump to: navigation, search
m (Adding more explanation for & and * questions)
(Updated for Fedora 17.)
Line 1: Line 1:
 
[[Category:OPS335]][[Category:OPS335 Labs]]
 
[[Category:OPS335]][[Category:OPS335 Labs]]
 
==NFS and Automount==
 
==NFS and Automount==
In this lab you'll set up a Fedora 16 host as an NFS (Network File System) server. Then you'll set up a Fedora 16 guest VM (Virtual Machine) that will import its /home directory from this host.
+
In this lab you'll set up a Fedora 17 host as an NFS (Network File System) server. Then you'll set up a Fedora 17 guest VM (Virtual Machine) that will import its /home directory from this host.
{{Admon/important|Prerequisites|Before you begin make sure your Fedora 16 host and virtual machines are up to date (yum update).<br />
+
{{Admon/important|Prerequisites|Before you begin make sure your Fedora 17 host and virtual machines are up to date (yum update).<br />
Ensure both host and VM's have firewalls set up according to prior labs. And ensure you are using your learnid account (the first user created - this will be <b>critical</b> for success) }}
+
Ensure both host and VM's have firewalls set up according to prior labs. And ensure you are using your learnid account (the first user created - this will be
===Part A: Setting up the Guest VM===
+
<b>critical</b> for success) }}
 +
===Part A: Setting up the NFS Server on the Host===
 +
On your Fedora host machine perform the following tasks:
 +
*edit /etc/exports so that it contains ONLY the following line (where 192.168.x.4 is the IP address of your guest VM):
 +
  /home 192.168.x.4(rw,root_squash,insecure)
 +
 
 +
*Edit the file /etc/idmapd.conf and uncomment and change the following lines:
 +
Verbosity = 3
 +
Domain = <learn-id>.org
 +
*Restart the nfs-idmap daemon.
 +
systemctl restart nfs-idmap.service
 +
*Start your nfs server with the command:
 +
systemctl start nfs-server.service
 +
*Run and record the output of the following commands:
 +
exportfs
 +
 
 +
showmount -e
 +
 
 +
NOTE: You'll have to adjust your firewall on the host to get NFS to work. Run netstat to determine the ports needed.
 +
 
 +
===Part B: Setting up the Guest VM===
 
*Ensure the VM guest network is functioning properly. You can use the "host cbc.ca" command to see if DNS queries are being answered.  
 
*Ensure the VM guest network is functioning properly. You can use the "host cbc.ca" command to see if DNS queries are being answered.  
 
*Ensure you have full connectivity to the internet.
 
*Ensure you have full connectivity to the internet.
Line 12: Line 32:
 
*Add the following line to the bottom of the /etc/fstab file on vm03
 
*Add the following line to the bottom of the /etc/fstab file on vm03
 
  192.168.x.1:/home  /home nfs defaults 0 0
 
  192.168.x.1:/home  /home nfs defaults 0 0
 +
{{Admon/important|Warning:|Do not change any other lines in this file.  Do not change any lines in /etc/fstab on your host machine.  Doing so can make your machine fail to boot.}}
 
*Edit the file /etc/idmapd.conf and uncomment and change the following lines:
 
*Edit the file /etc/idmapd.conf and uncomment and change the following lines:
 
  Verbosity = 3
 
  Verbosity = 3
Line 18: Line 39:
 
  systemctl restart nfs-idmap.service
 
  systemctl restart nfs-idmap.service
 
*Check /var/log/messages for output when troubleshooting.
 
*Check /var/log/messages for output when troubleshooting.
**You will see an error here ''nfsdopenone: Opening /proc/net/rpc/nfs4.nametoid/channedl failed: errno 2 (No such file or directory)'', but that's ok.
+
**If you followed the previous labs correctly, your vm should be sending log messages to your host.
 +
**You may see an error here ''nfsdopenone: Opening /proc/net/rpc/nfs4.nametoid/channedl failed: errno 2 (No such file or directory)'', but that's ok.
 
*Logout of vm03 and shut it down.
 
*Logout of vm03 and shut it down.
  
===Part B: Setting up the NFS Server on the Host===
 
On your Fedora host machine perform the following tasks:
 
*edit /etc/exports so that it contains ONLY the following line (where 192.168.x.4 is the IP address of your guest VM):
 
  /home 192.168.x.4(rw,root_squash,insecure)
 
 
*Edit the file /etc/idmapd.conf and uncomment and change the following lines:
 
Verbosity = 3
 
Domain = <learn-id>.org
 
*Restart the nfs-idmap daemon.
 
systemctl restart nfs-idmap.service
 
*Start your nfs server with the command:
 
systemctl start nfs-server.service
 
NOTE: You'll have to adjust your firewall on the host to get NFS to work. Run netstat to determine the ports needed.
 
 
====Testing NFS mounts on your VM====
 
====Testing NFS mounts on your VM====
*Start up vm03 and login using your learnid.
+
*Restart vm03 and login using your learnid.
*On your host PC run and record the output of the following commands:
 
exportfs
 
  
showmount -e
+
*Check that the home directory is mounted
*Now on vm03
 
 
  mount | grep /home
 
  mount | grep /home
 +
**If it is not, try running 'mount /home' as root.
 
*On vm03, create an empty file using the touch command.
 
*On vm03, create an empty file using the touch command.
 
  touch empty_file_created_on_vm03
 
  touch empty_file_created_on_vm03
Line 50: Line 57:
  
 
===Part C: Setting up Automount on the VM===
 
===Part C: Setting up Automount on the VM===
On vm03 as root performt he following tasks:
+
On vm03 as root perform the following tasks:
 
*Comment or remove the line from /etc/fstab that you entered earlier.
 
*Comment or remove the line from /etc/fstab that you entered earlier.
 
*Install automount
 
*Install automount
Line 66: Line 73:
 
*And ensure the service will start at boot:
 
*And ensure the service will start at boot:
 
  systemctl enable autofs.service
 
  systemctl enable autofs.service
*Log out of vm03 and back on the host start the nfs server.
+
*Log out of vm03.
 +
*Restart the nfs server on your host.
 
*Log into vm03 using your learn account.
 
*Log into vm03 using your learn account.
 
*Open a terminal and enter the command:
 
*Open a terminal and enter the command:
Line 94: Line 102:
 
#What port did you have to open?
 
#What port did you have to open?
 
#What does the idmapd daemon provide?
 
#What does the idmapd daemon provide?
#What boolean did you need to change in order for SE Linux to allow NFS home directories to function properly?
 

Revision as of 14:40, 14 January 2013

NFS and Automount

In this lab you'll set up a Fedora 17 host as an NFS (Network File System) server. Then you'll set up a Fedora 17 guest VM (Virtual Machine) that will import its /home directory from this host.

Important.png
Prerequisites
Before you begin make sure your Fedora 17 host and virtual machines are up to date (yum update).

Ensure both host and VM's have firewalls set up according to prior labs. And ensure you are using your learnid account (the first user created - this will be

critical for success)

Part A: Setting up the NFS Server on the Host

On your Fedora host machine perform the following tasks:

  • edit /etc/exports so that it contains ONLY the following line (where 192.168.x.4 is the IP address of your guest VM):
 /home 192.168.x.4(rw,root_squash,insecure)
  • Edit the file /etc/idmapd.conf and uncomment and change the following lines:
Verbosity = 3
Domain = <learn-id>.org
  • Restart the nfs-idmap daemon.
systemctl restart nfs-idmap.service
  • Start your nfs server with the command:
systemctl start nfs-server.service
  • Run and record the output of the following commands:
exportfs
showmount -e

NOTE: You'll have to adjust your firewall on the host to get NFS to work. Run netstat to determine the ports needed.

Part B: Setting up the Guest VM

  • Ensure the VM guest network is functioning properly. You can use the "host cbc.ca" command to see if DNS queries are being answered.
  • Ensure you have full connectivity to the internet.
  • Be sure to set the firewall on both your VM and host according to prior labs. Use the command iptables-save to verify.
  • Install the NFS software on both vm03 and your host using the command
yum install nfs-utils
  • Add the following line to the bottom of the /etc/fstab file on vm03
192.168.x.1:/home  	/home	nfs	defaults	0 0
Important.png
Warning:
Do not change any other lines in this file. Do not change any lines in /etc/fstab on your host machine. Doing so can make your machine fail to boot.
  • Edit the file /etc/idmapd.conf and uncomment and change the following lines:
Verbosity = 3
Domain = <learn-id>.org
  • Restart the nfs-idmap daemon.
systemctl restart nfs-idmap.service
  • Check /var/log/messages for output when troubleshooting.
    • If you followed the previous labs correctly, your vm should be sending log messages to your host.
    • You may see an error here nfsdopenone: Opening /proc/net/rpc/nfs4.nametoid/channedl failed: errno 2 (No such file or directory), but that's ok.
  • Logout of vm03 and shut it down.

Testing NFS mounts on your VM

  • Restart vm03 and login using your learnid.
  • Check that the home directory is mounted
mount | grep /home
    • If it is not, try running 'mount /home' as root.
  • On vm03, create an empty file using the touch command.
touch empty_file_created_on_vm03
  • Now shutdown vm03.
  • Now on your host PC, run the following command:
ls -l
  • You should see the file you just created on vm03.

Part C: Setting up Automount on the VM

On vm03 as root perform the following tasks:

  • Comment or remove the line from /etc/fstab that you entered earlier.
  • Install automount
yum install autofs
  • Move the existing file /etc/auto.master:
mv /etc/auto.master /etc/auto.master.orig
  • This is a great way to keep a back up in case you need to restore the file in the future. Now create another:
vi /etc/auto.master
  • Add only the following line:
/home   /etc/auto.home   --timeout=60
  • Create the file /etc/auto.home and add ONLY the following line:
*        -fstype=nfs,rw,nosuid,soft      192.168.x.1:/home/&
  • Start autofs with the command
systemctl start autofs.service
  • And ensure the service will start at boot:
systemctl enable autofs.service
  • Log out of vm03.
  • Restart the nfs server on your host.
  • Log into vm03 using your learn account.
  • Open a terminal and enter the command:
mount | grep home
  • How does it differ from the previous mount?
  • Create another empty file with the name
touch another_empty_file_from_vm03
  • Run and record the output of the command
df -hT
  • Back on the host run and record the output of:
ls -l
  • You should see the files you created on vm03.
  • You may encounter errors with SELinux during the lab. It is required that you leave it running. Use the following commands to determine what booleans need to be flipped.
audit2allow < /var/log/audit/audit.log
audit2why < /var/log/audit/audit.log

Completing the Lab

Answer the following questions in your log book:

  1. What does the no_root_squash option for an NFS mount mean?
  2. Explain the meaning of the defaults option to the mount command. What do the numbers mean at the end?
  3. What is the function of the 'exportfs' command?
  4. What is the purpose of the 'showmount' command?
  5. What is the meaning of the "timeout=60" phrase:
  6. What is the meaning of the asterisk (*) in the file /etc/auto.home?
  7. What is the meaning of the ampersand (&) in the file /etc/auto.home?
  8. What is the role of the /etc/mtab file on the host?
  9. What port did you have to open?
  10. What does the idmapd daemon provide?