Difference between revisions of "OPS335 Installation Lab"

From CDOT Wiki
Jump to: navigation, search
m (Updated links for fedora)
 
(300 intermediate revisions by 7 users not shown)
Line 1: Line 1:
= Installation of Centos 6.5 =
+
[[Category:OPS335]][[Category:OPS335 Labs]]
 +
 
 +
== OBJECTIVE & PREPARATION ==
 +
 
 +
This lab is a repeat of a portion of lab1 (and some of lab2) that you already performed in OPS235 plus some newer content that relates to this week's notes. You are expected to be able to complete all this using your existing skills and knowledge or refer back to your OPS235 lab-book or OPS235 WIKI notes.
 +
 
 +
In this is lab, you will install your '''host machine''' (Centos7), '''install virtualization software''', and '''create and install 3 nested virtual machines'''.
 +
 
 +
=== Required materials ===
 +
*Centos 7 Full Installation DVD.
 +
*One Solid State Drive (SSD), mininmum capacity: 240 GB (USB 3.0). It is strongly advised you dedicate a drive for this course only.
 +
 
 +
=== Online Resources===
 +
 
 +
*[https://wiki.centos.org/TipsAndTricks#head-4c9ee55a5c9dc051bd32e795b46a3856e41a0335 Centos7 Install Tips]
 +
<br>
 +
 
 +
==INVESTIGATION 1: HOST INSTALLATION==
 +
 
 +
=== Installation instructions for CentOS 7 ===
 +
# It may be advisable to obtain the <u>latest version</u> of the CentOS 7 Full Installation DVD since there may be improvements since the last version from when you took OPS235.<br><br>
 +
# Download and burn on a DVD a copy of the CentOS 7 installation DVD (64 bit edition) from the CentOS web site or the Belmont server.<br>'''Note:''' we'll be using the 64 bit version of CentOS because all of our lab computers are equipped with Intel 64 bit mainboards and CPUs, and any computer you bought in the last few years for yourself will be 64bit as well.<br><br>
 +
#* '''Seneca's mirror of CentOS:''' https://mirror.senecacollege.ca/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso <br>This is very fast, but is only accessible from within Seneca's network  - you can't access this from home. You can burn this disc on the machines in the Open Lab.)<br><br>
 +
#* '''Outside Seneca College link (available from any Internet connection):<br>''' https://mirror.netflash.net/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso<br /><br>
 +
# You need to refer to your OPS235 notes in order to install your host machine.<br>Here is a direct link:<br> [https://wiki.cdot.senecacollege.ca/wiki/OPS245_Lab_1 OPS245 - Lab1] 
 +
<ol>
 +
<li value=4>Customize your installation following these guidelines:
 +
<ul>
 +
<li>'''Turn on networking''' and use '''host''' as the '''hostname'''.
 +
<li>Under software selection, choose '''Gnome desktop'''.
 +
<li>The partition setup is similar to what you had in OPS235:
 +
<ul>
 +
<li>Delete any old partitions.
 +
<li>Select the hard disk and indicate "I will configure partitions" and click done.
 +
<li>Click the link to '''create them (partitions) automatically''' (this will give a typical layout with /, /boot, /boot/efi, /home, etc).
 +
<li>Free up at least '''100GB''' of disk space by shrinking the '''/home''' partition (At least '''40 GB''' for root (/) and '''40GB''' for /home).  Since your machine will have far fewer users and more virtual machines than a typical installation, we will need that space elsewhere.
 +
<li>Create a new logical volume for '''/var/lib/libvirt/images''' and give it the space made available by shrinking /home (You will need enough space for up to 10 virtual machines at 8GB each plus room to compress/extract images).
 +
<li>Make certain that the existing partitions '''except swap, /boot and /boot/efi''' have the file system type '''ext4''' (not xfs).
 +
</ul>
 +
</ul>
 +
<li>After the installation starts you will also have the opportunity to create users.
 +
<ul>
 +
<li>Set the root password
 +
<li>Create a '''user account''' named with '''your MySeneca ID'''
 +
</ul>
 +
</ol>
 +
<br>
 +
 
 +
=== First boot ===
 +
 
 +
# In the current version of CentOS the first time you boot your system a graphical licence prompt comes up.<br><br>
 +
<ol><li value="2">Log in and check that you have access to the internet. If you don't - you need to get the network interface to come up on boot. Edit the appropriate config file and configure your main network interface to come up at boot.<ul><li>You can then use the '''ifup'''/'''ifdown''' commands to reset your network configuration or you can just reboot.</li></ul></li><li>Make certain that '''SELinux''' is '''enforcing''' for security reasons (this should be the default).  To make it ''enforcing'', simply edit the '''/etc/selinux/config''' file and follow the instructions inside.
 +
 
 +
{{Admon/important |SELinux in Andrew's sections|If you're in one of Andrew's sections - please disable SELinux (i.e. do the opposite of the bullet above). This will give you some extra freedom in the rest of the course to learn and experiment without being bogged down by inexplicable permission denied errors.}}
 +
</li><li>Install all updates using the '''yum update''' command.</li></ol>
 +
<br>
 +
 
 +
===Using iptables===
 +
The most recent variants of Centos and Fedora are using a service called '''firewalld''' that is intended to replace '''iptables''', however the ''iptables'' service is still in relatively common usage. In this course we will concentrate on ''iptables''.
 +
<ol><li>Disable firewalld:
 +
<source>
 +
systemctl disable firewalld
 +
systemctl stop firewalld
 +
</source>
 +
</ol>
 +
<ol><li value="2">Install and enable the IPTables services:
 +
<source>
 +
yum install iptables-services
 +
systemctl enable iptables
 +
systemctl start iptables
 +
</source>
 +
</ol>
 +
At this point you have a basic Centos system installed and updated.  This will serve as a host for the virtual machines where you will do the majority of the work in this course.  All the rest of our labs will assume you have this basic system running. If, for any reason, your system becomes corrupted during the semester, you'll have to redo this lab to be able to continue with the remaining uncompleted labs. You are responsible for YOUR system. If you do not perform back-ups you have taken this risk on yourself. Poor planning on your part does not constitute an emergency for anyone else.
 +
 
 +
'''Record steps, commands, and your observations in INVESTIGATION 1 in your OPS235 lab log-book'''
 +
 
 +
==INVESTIGATION 2: VIRTUAL MACHINE INSTALLATION==
 +
 
 +
===Configuring a VM host===
 +
 
 +
# You will need to install some software to allow your machine to act as a host for virtual machines. We'll be using the same '''libvirt''' and '''virt-manager''' you used in [https://wiki.cdot.senecacollege.ca/wiki/OPS235_Lab_2 OPS235 - Lab2].<br>You may find it helpful to refer back to the '''OPS235 notes''' to perform the following operations:
 +
#* Install the required virtualization software
 +
#* Start and enable the virtualization service
 +
#* Reboot your host machine<br><br>
 +
# Start the graphical virtual machine manager (''virt-manager''). Do this as you regular user, and don't run virt-manager from a terminal where you're logged in as root.
 +
# We will be creating our own virtual network. A default virtual network has been created for you, but you will be using a <u>custom</u> one in this course.
 +
#* Right click '''localhost (QEMU)''' and select '''Details'''.
 +
#* Click on the '''Virtual Networks''' tab.
 +
#* Stop and delete the '''default''' network.
 +
#* Use the '''plus sign''' to add a new virtual network using the following options:
 +
#:* Name your virtual network '''ops235'''
 +
#:* Use the '''last two digits of your student number for the third octet of network IP address''' (for example, if your student number is 000-000-0<b>90</b>, the network address would be 192.168.<b>90</b>.0/24.
 +
#:* Ensure the DHCP range will allow you to assign '''at least 10 static IP addresses outside it''' (note: leave the low numbers available for static addresses).
 +
#:* Choose '''Forwarding to physical network''' radio button, '''Destination: Any physical device''' and '''Mode: NAT'''
 +
#:* Ensure the network is '''started at boot'''.
 +
 
 +
<br>
 +
 
 +
=== VM Installation===
  
[[Category:OPS335]][[Category:OPS335 Labs]]
+
With the virtualization software installed and your personal network created, you are now ready to create your first virtual machine.
 +
First, It is a good idea to make certain that your host machine has been set up correctly prior to creating your first virtual machine:
 +
 
 +
#Open a separate terminal and issue the '''ip address show''' command on your host machine to know your physical network and your virtual network. Note this information for the next few steps.
 +
#Issue the following command to download Bash shell script to check your host machine's set-up prior to proceeding with this lab:<br>'''wget http://ict.senecacollege.ca/~andrew.smith/ops335/labcheck_install.sh'''<br>
 +
#Assign execute permissions, and run the script to check your work:<br>
 +
'''labcheck_install.sh'''
 +
<ol><li value="4">Use the information from the '''ip address show''' command to correctly specify the '''physical network interface''' and the '''virtual network interface'''.</li></ol>
 +
 
 +
'''NOTE:''' You will need an ISO file for CentOS 7 (the same one you burned your DVD from). It is recommended to use the command to download this image onto your host machine. In this way, you can keep it on your host machine for the remainder of this course in case you need it:
 +
 
 +
'''wget http://mirror.csclub.uwaterloo.ca/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso'''
 +
 
 +
Perform the following steps to create your first VM on your Virtual Machine Manager application:
  
== Objectives ==
+
# Create a new virtual machine named '''vm1'''.
Install Host Machine (Centos 6.5)
+
# Accept the default file type (which is '''qcow2'''). You are <u>NOT</u> required to specify the VM file pathname as you did in OPS235.
Install 3 Virtual Machines (Fedora 20)
 
Prepare for lab exercises.
 
  
== Required materials ==
 
Centos 6.5 Installation DVD
 
One SATA hard disk in a removable drive tray (minimum 160GB) - It is strongly advised you dedicate a drive for this course only.
 
Recommended - USB drive (8 GB+) for creating and storing backups (Virtual Machines, configuration files)
 
  
==Part A: Host Installation ==
+
{{Admon/tip|VM File Types ( '''.qcow2''' vs '''.img''' )|In OPS235, you selected the VM images as a '''"raw"''' image. In OPS335, you will be accepting the default image file '''".qcow2"''' (which stands for "QMENU Copy on Write version 2" ) that provides more features when manipulating stored VM images.}}
  
=== Installation instructions ===
 
#Download a copy of the Centos 6.5 installation DVD (64 bit edition) from the Centos web site or burn the DVD using Seneca's Freedom Toaster which is located in the Open Lab on the 2nd floor of the TEL building. Note: we'll be using the 64 bit version of Centos because all of our lab computers are equiped with Intel 64 bit mainboards and CPUs. We'll also be using a Fedora iso for installing the virtual machines, but you will not need to burn that to a disc.  It is faster to download the ISO and install directly from it. Finally, if you're going to burn your DVD using the Freedom Toaster then be sure to use a blank DVD-R disc. DVD+R discs sometimes fail to burn successfully.
 
#* '''Seneca's mirror of Centos:''' http://belmont.senecac.on.ca/centos <br />(This is very fast, but is only accessible from within Seneca's network  - you can't access this from home. You can burn this disc on the machines in the Open Lab.)<br />
 
#* '''Centos mirror list:''' http://isoredirect.centos.org/centos/6/isos/x86_64/<br />(Accessible from any Internet connection.)<br />
 
#Insert your HDD into the docking bay of a PC in the lab and boot the computer using your installation DVD. If possible try to use the same PC for this course for the rest of the semester. Some PCs may be configured with slight hardware variations from others which may cause problems when moving your HDD from one system to another.
 
#Perform your installation following these guidelines:
 
#*wherever possible select the default options
 
#*set your hostname to your learn ID.
 
#*set Toronto as your time zone
 
#*When given the option, click 'review and modify partition layout'.  A typical installation devotes most of the available space to a logical volume for /home.  You will have very fewer users and more virtual machines than a typical installation.  Reduce the size of lv_home (minimum 10GB), and create a new logical volume for /var (called lv_var) and give it the space made available by shrinking lv_home (You will need enough space for 6 virtual machines at 8GB each).
 
#*set the root password
 
#After completing the installation, remove the DVD and reboot from your HDD.
 
  
{{Admon/tip|Tip: Boot Menu|If you got the boot failure message, restart the computer and press [F10] to get to the boot menu, select the Hard Disk as boot device and continue. }}
+
<ol><li value="3">Since you will be installing a Linux <u>server</u> (as opposed to a Gnome Desktop workstation), you can '''use the <u>default</u> memory and CPU options for use with lab computers'''.</li><li>Set the disk image size set to '''8GB'''<br><br>Note: Since you already setup your virtual network to OPS335, your VM will be automatically connected to your new ops335 virtual network.<br><br></li><li>Note the following installation steps when you install your created VM:</li></ol>
  
=== Booting your system ===
+
::* Select the correct ''location / Time Zone''.
#create a user named with your learn ID
+
::* For Software Selection: Accept the default '''minimum install'''. None of your VMs in this course will have a GUI since GUIs needlessly consume resources and image space. <ol><li>Click '''Installation Destination''', and then click '''Done''' to confirm that an '''automatic install''' will be performed.</li><li>Click  Network & Hostname and set hostname to: '''vm1.localdomain''' and make certain the ''Ethernet connection'' is set to '''ON'''.</li><li>During installation you will be prompted to set the ''root password'' and an '''initial user account'''. For the ''initial user'', enter the same information you entered on your host machine.</li></ol>
#Login as the user you created and open a terminal window. Then use 'su' to become root and run the 'yum update' command. Logout when done. Note, you may have to reboot after all updates have completed. Now that your system is up to date, again login using your learnid and do the following:
 
#*Verify that your system date and time are correct. If not then set the correct system date and time.
 
#*Verify that your network is functioning.
 
#*Run and record the output of the 'df -hT' command.
 
#*Run and record the output of the 'cat /etc/fstab' command.
 
#*Run and record the output of the 'cat /etc/issue' command.
 
#*Run and record the output of the 'uname -a' command.
 
  
===Configuring a Linux Gateway===
+
{{Admon/tip|First user created|For successful completion of the labs, please ensure the first user created is named using your Seneca username.}}
At this point you have a basic Centos 6.5 installed and updated.  This will serve as a host for the virtual machines where you will do the majority of the work in this course.  All the rest of our labs will assume you have this basic system running. If, for any reason, your system becomes corrupted during the semester, you'll have to redo this lab to be able to continue with the remaining uncompleted labs. You are responsible for YOUR system. If you do not perform back-ups you have taken this risk on yourself. Poor planning on your part does not constitute an emergency for anyone else.
 
  
*You will need to install some software to allow your machine to act as a host for virtual machines
+
<br>
yum groupinstall virtualization
 
yum install virt-manager libvirt
 
*Start and enable the virtualization service
 
service libvirtd start
 
chkconfig libvirtd on
 
*Note that when starting libvirtd you may receive a warning 'virGetHostname: getaddrinfo failed for "Machine Name": Name or service not known.  This will not interfere with your machines.
 
*Reboot your machine.  If you do not, you will not be able to install any virtual machines.
 
*Start the graphical virtual machine manager
 
**You will need to enter your root password.
 
*Create your own virtual network.
 
**A default one has been created for you, but you will be using a custom one in this course.
 
#Right click 'localhost (QEMU)' and select 'Details'. Click on the 'Virtual Networks' tab.
 
#Stop and delete the 'default' network.
 
#Use the plus sign to add a new virtual network using the following options.
 
#*Name your virtual network 'ops335'
 
#*Use the last two digits of your student number for the third octet of network IP address. Example, if your student number is 000-000-0<b>90</b>, the network address would be 192.168.<b>90</b>.0/24.
 
#*Ensure the DHCP range will allow you to assign at least 3 static IP addresses outside it.
 
#*Choose 'Forwarding to physical network' radio button, 'Destination: Any physical device' and 'Mode: NAT'
 
#*Ensure the network is started at boot.
 
#Once completed open a terminal and observe and record the output of the following command:
 
iptables -t nat -L
 
  
==Part B: Virtual Machine Installation ==
 
With the virtualization software installed and your personal network created, you are now ready to create your first virtual machine.  If you have an installation DVD for Fedora you can use that, but it will be much faster to download the iso from belmont (If it has been made available yet) and install directly from it.
 
  wget http://belmont.senecac.on.ca/fedora/releases/20/Fedora/x86_64/iso/Fedora-20-x86_64-DVD.iso
 
  If it has not been made available use the publicly available mirrors
 
  http://mirrors.fedoraproject.org/publiclist/Fedora/20/#CA
 
===Installation===
 
*Click on the icon "Create a new virtual machine" to begin.
 
*Name your machine "f20-vm01" and choose your installation method - "Local install media". Choose the desired option to install from either the CD or iso. For "OS type" select "Linux" and for Version select "Fedora 18" (if there is no option for Fedora 20) then click on the "Forward" button.
 
*Use the default memory and CPU options for use with lab computers (Depending on available hardware these settings can be adjusted). Then click on the "Forward" button to proceed.
 
*Leave the disk image size set at 8GB, ensure "Allocate entire disk now" is checked, then click on the "Forward" button.
 
*At the "Ready to begin installation" window click on 'Advanced options' arrow to review available options.
 
**Select the Virtual Network named 'ops335'. Make note of any other available options (you will need them again in the assignments).
 
*Select 'Install to Hard Drive' to begin your Fedora installation. Select the appropriate default options (You may wish to review your OPS235 notes to remind yourself what these are).
 
*During installation you will be prompted to set the root password and an initial user account.  For the initial user, enter the same information you entered on your host machine.
 
*Set your hostname to "vm01.localdomain".
 
{{Admon/important|Firstboot - First user created|For successful completion of the labs, please ensure the first user created is named using your Learn ID.}}
 
 
===First Boot===
 
===First Boot===
*Ensure your machine has a network connection by running the command
+
#You will notice that the server installation defaults to a command-line interface.  This is normal, and we will only be using this interface during this course.
  host cbc.ca
+
#Ensure your machine has a network connection by running the command
If that did not work, edit the line in /etc/sysconfig/network-scripts/ifcfg-eth0
+
  '''ssh your_seneca_id@matrix.senecacollege.ca'''
  onboot=no
+
<ol><li value="3">If that did not work - make sure GlobalProtect VPN is installed on your Windows/Mac and connected. If it is, ensure your CentOS network interface is started automatically on boot.</li></ol>
should be
+
{{Admon/tip|Default for network config for onboot|If you've turned on your networking interface during installation - it will be turned on by default. If you've left the network interface off during the installation - it will be off by default.}}
  onboot=yes
+
<ol><li value="4">Once you have a working connection - update your machine.</li></ol>
*Update your machine (this may take a while).
+
   '''yum update'''
   yum update
+
<ol>
*Reboot the virtual machine once it is updated.
+
<li value="5">Install the '''bind-utils''' package.  The commands it provides (e.g. nslookup) will be useful in troubleshooting your network connection.</li>
*Now run the following commands and note the output.  Note how they differ from the Centos installation on your host.
+
<li>You may also want to install the '''nmap''', '''telnet''' and '''net-tools''' packages to help you troubleshoot connectivity issues.</li>
  df -hT
+
<li>Configure '''firewalld, iptables''' and (if required) '''SELinux''' the same way you did for the host.</li>
  cat /etc/fstab
+
<li>Reboot the virtual machine once it is updated.</li>
  cat /etc/issue
+
</ol>
  uname -a
+
 
===Minimizing your VM's footprint===
+
===Cloning a Virtual Machine===
*Since all VMs used in this course are intended to be servers, the presence of a GUI in not recommended - servers are typically managed from the command line.
+
<ol>
* Make it boot by default to the command line only
+
<li> Now that you have one virtual machine working, you will create two more.  If you struggled with the previous steps, repeat them to create two more virtual machines.</li>
**Fedora 17 and onward do not use '/etc/inittab' to set the default run level but rather use targets as a more flexible replacement. Note the output of the following command:
+
<li>'''If you are confident with what you have done so far, you may clone your existing machine to create the others by performing the following steps:'''</li>
ll /etc/systemd/system/*.target
+
<li><ol type="a">
  lrwxrwxrwx. 1 root root 36 Dec 3 09:35 /etc/systemd/system/default.target -> /lib/systemd/system/runlevel5.target
+
  <li>Make certain that your '''vm1''' virtual machine is shutdown.</li>
and
+
<li>For your '''vm1''' machine, go to the details section and remove the <u>device</u> '''Channel qemu-ga'''.</li>
ll /lib/systemd/system/*.target
+
  <li>In the virtual machine manager, '''right click''' on ''vm1'' and select '''Clone...'''.</li>
Systemd uses symbolic links to point to the default runlevel in use. To change the default runlevel you must first remove the existing symlink.
+
  <li>Set the Name to be: '''vm2'''</li>
rm /etc/systemd/system/default.target
+
</ol></li>
To change your system to boot in multi-user mode by default:
+
<li>Once successfully created, boot the new VM and correct the host name. This can be done using the '''hostnamectl''' command-line tool.</li>
ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
+
<li>Record in your notes the steps for cloning a vm.</li>
Make note of the command that would be needed to change the default 'runlevel' (or 'target' as it is now referred to when using systemd) to graphical or runlevel 5.
+
<li>Use the host command to check for connectivity</li>
Test your VM to make sure that it boots correctly before moving on to the next step.
+
<li>After creating '''vm2''' repeat the above steps to create '''vm3''' and correct the hostname ('''vm2.localdomain''' and '''vm3.localdomain''' respectively).</li>
 +
</ol>
 +
 
 +
{{Admon/important |Backup your VMs!|You MUST backup ALL of your VMs whenever you complete your '''OPS335 labs''' or when working on your '''OPS335 assignments''':<br>[ [https://wiki.cdot.senecacollege.ca/wiki/OPS235_Lab_2_-_CentOS7_-_HD2#Part_1:_Backing_Up_Virtual_Machines Backing up Your Virtual Machines] ]. Refer to OPS235 lab2 notes on how to backup your VMs. You should backup your VMs to a USB key in case something happens to your host machine. Note: VM files contained in the '''/var/lib/libvirt/images''' directory have the extension in '''.qcow2''' and instead of '''.img''' (eg. for OPS235 courses prior to Fall 2016.}}
 +
 
  
===Managing a Service===
+
'''Record steps, commands, and your observations in INVESTIGATION 2 in your OPS335 lab log-book'''
*Before you start, if you are more familiar with the chkconfig or service commands, you may wish to review the [http://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet SysVinit to Systemd Cheatsheet].
 
*You will want to be able to communicate with your machines using ssh.
 
**Check the ip address of the virtual machine
 
  ip address show
 
**Start the ssh service on the virtual machine.  Also set the service to start automatically when the machine boots.
 
**Use ssh to connect from your host to the virtual machine.
 
***You will be prompted to store the virtual machine's identification.  Choose yes (we will cover this in more detail later).
 
**Reboot the virtual machine and check the status of your ssh service.
 
  
===Cloning a Virtual Machine===
+
==COMPLETING THE LAB ==
*Now that you have one virtual machine working, you will create two more.  If you struggled with the previous steps, repeat them to create to more virtual machines (naming them f20-vm02 and f20-vm03, with hostnames vm02.localdomain and vm03.localdomain respectively).
+
Upon completion of this lab you should have 4 installed machines. One machine running Centos 7 and acting as a host and gateway for three virtual machines running minimal installations of Centos 7. Each machine must be fully updated and have access to the network (for example, to get further updates) and be able ping the others. Each machine must be using iptables for the firewall.
*If you are confident with what you have done so far, you may clone your existing machine to create the others.
+
 
**To quickly create additional VM's shutdown 'f20-vm01', right click and select 'Clone...'. Use the following options:
+
===Online Submission===
*Name: f20-vm02
+
 
*Storage:
+
Follow the instructions for lab 0 on blackboard.
**Click the drop down menu below 'f20-vm01.img', choose details and rename the image to the f20-vm02.img
+
 
**Once successfully created boot the new VM and correct the host name. This can be done using the GUI or command line.  
+
<!--
**Record in your notes how each is done.
+
===Andrew's sections===
**Check for connectivity.
+
 
host cbc.ca
+
You may choose to:
**After creating f20-vm02 repeat the above steps to create f20-vm03 and correct the host name.
+
* Submit screenshots of your work on Blackboard, in which case you don't need to come to the lab.
 +
* Or come to the lab, show me your work, and talk to me about it. I want to hear what you've learned and answer any questions you have.
 +
 
 +
You'll get the same grade regardless of how you choose to submit your work.
 +
 
 +
Expected results of this lab are:
 +
 
 +
::<span style="color:green;font-size:1.5em;">&#x2713;</span> Host Machine installed
 +
::<span style="color:green;font-size:1.5em;">&#x2713;</span> 3 virtual machines installed
 +
::<span style="color:green;font-size:1.5em;">&#x2713;</span> Each machine (host and VM) has access to the network
 +
::<span style="color:green;font-size:1.5em;">&#x2713;</span> Lab logbook completed
 +
::<span style="color:green;font-size:1.5em;">&#x2713;</span> Run the '''labcheck_install.sh''' shell script on your host machine
 +
-->
  
== Completing the Lab ==
+
==EXPLORATION QUESTIONS==
Upon completion of this lab you should have 4 installed machines.  One machine running Centos 6.5 and acting as a host and gateway for three virtual machines running Fedora 20.  Make sure that each machine can access the network (for example, to get updates) and that you can ssh from your host to your VMs, and between your VMs.
 
  
Record the following answers in your logbook.
 
#What is the code name of your installed Fedora Linux system? How did you determine this?
 
 
#What kernel release is your host system running?
 
#What kernel release is your host system running?
 
#What kernel release are your virtual machines running?
 
#What kernel release are your virtual machines running?
 
#What is the UUID (Universally Unique Identifier) of your root file system? What command was used to obtain this information?
 
#What is the UUID (Universally Unique Identifier) of your root file system? What command was used to obtain this information?
 
#What is the size and type of the /boot file system on your host?
 
#What is the size and type of the /boot file system on your host?
#What file was edited to change the host name on your VM's?
+
#What file was edited to change the host name on your VM's?  Are there other ways to change the hostname?
#How are ping and ssh affected (on both machines) when you run the following command on the host machine?
 
#*echo 0 > /proc/sys/net/ipv4/ip_forward
 
#When changing the default target on your VMs to multiuser, you used two commands. What option can be added to reduce this to a single command?
 

Latest revision as of 12:50, 11 August 2022


OBJECTIVE & PREPARATION

This lab is a repeat of a portion of lab1 (and some of lab2) that you already performed in OPS235 plus some newer content that relates to this week's notes. You are expected to be able to complete all this using your existing skills and knowledge or refer back to your OPS235 lab-book or OPS235 WIKI notes.

In this is lab, you will install your host machine (Centos7), install virtualization software, and create and install 3 nested virtual machines.

Required materials

  • Centos 7 Full Installation DVD.
  • One Solid State Drive (SSD), mininmum capacity: 240 GB (USB 3.0). It is strongly advised you dedicate a drive for this course only.

Online Resources


INVESTIGATION 1: HOST INSTALLATION

Installation instructions for CentOS 7

  1. It may be advisable to obtain the latest version of the CentOS 7 Full Installation DVD since there may be improvements since the last version from when you took OPS235.

  2. Download and burn on a DVD a copy of the CentOS 7 installation DVD (64 bit edition) from the CentOS web site or the Belmont server.
    Note: we'll be using the 64 bit version of CentOS because all of our lab computers are equipped with Intel 64 bit mainboards and CPUs, and any computer you bought in the last few years for yourself will be 64bit as well.

  3. You need to refer to your OPS235 notes in order to install your host machine.
    Here is a direct link:
    OPS245 - Lab1
  1. Customize your installation following these guidelines:
    • Turn on networking and use host as the hostname.
    • Under software selection, choose Gnome desktop.
    • The partition setup is similar to what you had in OPS235:
      • Delete any old partitions.
      • Select the hard disk and indicate "I will configure partitions" and click done.
      • Click the link to create them (partitions) automatically (this will give a typical layout with /, /boot, /boot/efi, /home, etc).
      • Free up at least 100GB of disk space by shrinking the /home partition (At least 40 GB for root (/) and 40GB for /home). Since your machine will have far fewer users and more virtual machines than a typical installation, we will need that space elsewhere.
      • Create a new logical volume for /var/lib/libvirt/images and give it the space made available by shrinking /home (You will need enough space for up to 10 virtual machines at 8GB each plus room to compress/extract images).
      • Make certain that the existing partitions except swap, /boot and /boot/efi have the file system type ext4 (not xfs).
  2. After the installation starts you will also have the opportunity to create users.
    • Set the root password
    • Create a user account named with your MySeneca ID


First boot

  1. In the current version of CentOS the first time you boot your system a graphical licence prompt comes up.

  1. Log in and check that you have access to the internet. If you don't - you need to get the network interface to come up on boot. Edit the appropriate config file and configure your main network interface to come up at boot.
    • You can then use the ifup/ifdown commands to reset your network configuration or you can just reboot.
  2. Make certain that SELinux is enforcing for security reasons (this should be the default). To make it enforcing, simply edit the /etc/selinux/config file and follow the instructions inside.
    Important.png
    SELinux in Andrew's sections
    If you're in one of Andrew's sections - please disable SELinux (i.e. do the opposite of the bullet above). This will give you some extra freedom in the rest of the course to learn and experiment without being bogged down by inexplicable permission denied errors.
  3. Install all updates using the yum update command.


Using iptables

The most recent variants of Centos and Fedora are using a service called firewalld that is intended to replace iptables, however the iptables service is still in relatively common usage. In this course we will concentrate on iptables.

  1. Disable firewalld:
    systemctl disable firewalld
    systemctl stop firewalld
  1. Install and enable the IPTables services:
    yum install iptables-services
    systemctl enable iptables
    systemctl start iptables

At this point you have a basic Centos system installed and updated. This will serve as a host for the virtual machines where you will do the majority of the work in this course. All the rest of our labs will assume you have this basic system running. If, for any reason, your system becomes corrupted during the semester, you'll have to redo this lab to be able to continue with the remaining uncompleted labs. You are responsible for YOUR system. If you do not perform back-ups you have taken this risk on yourself. Poor planning on your part does not constitute an emergency for anyone else.

Record steps, commands, and your observations in INVESTIGATION 1 in your OPS235 lab log-book

INVESTIGATION 2: VIRTUAL MACHINE INSTALLATION

Configuring a VM host

  1. You will need to install some software to allow your machine to act as a host for virtual machines. We'll be using the same libvirt and virt-manager you used in OPS235 - Lab2.
    You may find it helpful to refer back to the OPS235 notes to perform the following operations:
    • Install the required virtualization software
    • Start and enable the virtualization service
    • Reboot your host machine

  2. Start the graphical virtual machine manager (virt-manager). Do this as you regular user, and don't run virt-manager from a terminal where you're logged in as root.
  3. We will be creating our own virtual network. A default virtual network has been created for you, but you will be using a custom one in this course.
    • Right click localhost (QEMU) and select Details.
    • Click on the Virtual Networks tab.
    • Stop and delete the default network.
    • Use the plus sign to add a new virtual network using the following options:
    • Name your virtual network ops235
    • Use the last two digits of your student number for the third octet of network IP address (for example, if your student number is 000-000-090, the network address would be 192.168.90.0/24.
    • Ensure the DHCP range will allow you to assign at least 10 static IP addresses outside it (note: leave the low numbers available for static addresses).
    • Choose Forwarding to physical network radio button, Destination: Any physical device and Mode: NAT
    • Ensure the network is started at boot.


VM Installation

With the virtualization software installed and your personal network created, you are now ready to create your first virtual machine. First, It is a good idea to make certain that your host machine has been set up correctly prior to creating your first virtual machine:

  1. Open a separate terminal and issue the ip address show command on your host machine to know your physical network and your virtual network. Note this information for the next few steps.
  2. Issue the following command to download Bash shell script to check your host machine's set-up prior to proceeding with this lab:
    wget http://ict.senecacollege.ca/~andrew.smith/ops335/labcheck_install.sh
  3. Assign execute permissions, and run the script to check your work:
labcheck_install.sh
  1. Use the information from the ip address show command to correctly specify the physical network interface and the virtual network interface.

NOTE: You will need an ISO file for CentOS 7 (the same one you burned your DVD from). It is recommended to use the command to download this image onto your host machine. In this way, you can keep it on your host machine for the remainder of this course in case you need it:

wget http://mirror.csclub.uwaterloo.ca/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

Perform the following steps to create your first VM on your Virtual Machine Manager application:

  1. Create a new virtual machine named vm1.
  2. Accept the default file type (which is qcow2). You are NOT required to specify the VM file pathname as you did in OPS235.


Idea.png
VM File Types ( .qcow2 vs .img )
In OPS235, you selected the VM images as a "raw" image. In OPS335, you will be accepting the default image file ".qcow2" (which stands for "QMENU Copy on Write version 2" ) that provides more features when manipulating stored VM images.


  1. Since you will be installing a Linux server (as opposed to a Gnome Desktop workstation), you can use the default memory and CPU options for use with lab computers.
  2. Set the disk image size set to 8GB

    Note: Since you already setup your virtual network to OPS335, your VM will be automatically connected to your new ops335 virtual network.

  3. Note the following installation steps when you install your created VM:
  • Select the correct location / Time Zone.
  • For Software Selection: Accept the default minimum install. None of your VMs in this course will have a GUI since GUIs needlessly consume resources and image space.
    1. Click Installation Destination, and then click Done to confirm that an automatic install will be performed.
    2. Click Network & Hostname and set hostname to: vm1.localdomain and make certain the Ethernet connection is set to ON.
    3. During installation you will be prompted to set the root password and an initial user account. For the initial user, enter the same information you entered on your host machine.
Idea.png
First user created
For successful completion of the labs, please ensure the first user created is named using your Seneca username.


First Boot

  1. You will notice that the server installation defaults to a command-line interface. This is normal, and we will only be using this interface during this course.
  2. Ensure your machine has a network connection by running the command
ssh your_seneca_id@matrix.senecacollege.ca
  1. If that did not work - make sure GlobalProtect VPN is installed on your Windows/Mac and connected. If it is, ensure your CentOS network interface is started automatically on boot.
Idea.png
Default for network config for onboot
If you've turned on your networking interface during installation - it will be turned on by default. If you've left the network interface off during the installation - it will be off by default.
  1. Once you have a working connection - update your machine.
 yum update
  1. Install the bind-utils package. The commands it provides (e.g. nslookup) will be useful in troubleshooting your network connection.
  2. You may also want to install the nmap, telnet and net-tools packages to help you troubleshoot connectivity issues.
  3. Configure firewalld, iptables and (if required) SELinux the same way you did for the host.
  4. Reboot the virtual machine once it is updated.

Cloning a Virtual Machine

  1. Now that you have one virtual machine working, you will create two more. If you struggled with the previous steps, repeat them to create two more virtual machines.
  2. If you are confident with what you have done so far, you may clone your existing machine to create the others by performing the following steps:
    1. Make certain that your vm1 virtual machine is shutdown.
    2. For your vm1 machine, go to the details section and remove the device Channel qemu-ga.
    3. In the virtual machine manager, right click on vm1 and select Clone....
    4. Set the Name to be: vm2
  3. Once successfully created, boot the new VM and correct the host name. This can be done using the hostnamectl command-line tool.
  4. Record in your notes the steps for cloning a vm.
  5. Use the host command to check for connectivity
  6. After creating vm2 repeat the above steps to create vm3 and correct the hostname (vm2.localdomain and vm3.localdomain respectively).
Important.png
Backup your VMs!
You MUST backup ALL of your VMs whenever you complete your OPS335 labs or when working on your OPS335 assignments:
[ Backing up Your Virtual Machines ]. Refer to OPS235 lab2 notes on how to backup your VMs. You should backup your VMs to a USB key in case something happens to your host machine. Note: VM files contained in the /var/lib/libvirt/images directory have the extension in .qcow2 and instead of .img (eg. for OPS235 courses prior to Fall 2016.


Record steps, commands, and your observations in INVESTIGATION 2 in your OPS335 lab log-book

COMPLETING THE LAB

Upon completion of this lab you should have 4 installed machines. One machine running Centos 7 and acting as a host and gateway for three virtual machines running minimal installations of Centos 7. Each machine must be fully updated and have access to the network (for example, to get further updates) and be able ping the others. Each machine must be using iptables for the firewall.

Online Submission

Follow the instructions for lab 0 on blackboard.


EXPLORATION QUESTIONS

  1. What kernel release is your host system running?
  2. What kernel release are your virtual machines running?
  3. What is the UUID (Universally Unique Identifier) of your root file system? What command was used to obtain this information?
  4. What is the size and type of the /boot file system on your host?
  5. What file was edited to change the host name on your VM's? Are there other ways to change the hostname?