Changes

Jump to: navigation, search

OPS235 Lab 2

3,894 bytes added, 04:49, 18 September 2020
Part 2: Installing from a Network (Minimal install - CLI)
[[Category:OPS235]]
 
 
= LAB PREPARATION =
[[Image:vmware-11a.png|thumb|right|300px400px|At the end of lab2, your VMware Workstation application will contain '''4 virtual machines''' ('''c7host''' in your '''VMware Workstation''' application, and '''centos1, centos2, centos3 VMs''' in your '''KVM''' application). You will now have the option to run one virtual machine at a time, or run all machines simultaneously to learn about networking (covered in later labs) ]]
=== Purpose / Objectives of Lab2Lab 2===
In this lab, you will create 3 remaining virtual machines using another virtualization program called '''KVM ''' that will run in your c7host VM. These VMs will be used throughout the remainder of this course to learn how to administer them (installing software, managing services, networking, etc).
While you are performing this lab, it is recommended to generally note the major differences in the different installation methods, and which method you prefer to use if you were a Linux system administrator in charge of installing many Linux distributions for an organization.
 
<br><br>
<u>Main Objectives</u>
* Installing additional Virtualization Software on your '''c7host''' machine ('''KVM''')
* '''Create 3 separate VMs (virtual machines) using different installation methods:'''
:* '''centos1''': Network Centos CentOS Installation ('''Graphical'''):* '''centos2''': Network Centos CentOS Installation (minimal install - '''CLI only'''):* '''centos3''': Network Centos CentOS Installation with Kickstart configuration file ('''CLI only''')
* Manipulate virtual machines by CLI ('''virsh''')
* Properly '''backup VM images''' and backup '''VM configuration files'''
|valign="top" style="padding-left:20px;"|
Miscellaneous<br>
[http://unixhelplinuxcommand.ed.ac.ukorg/CGIlc3_man_pages/man-cgi?gzip gzip1.html gzip, gunzip]<br>[http://unixhelpman7.edorg/linux/man-pages/man8/ip.ac8.ukhtml ip]<br>[http:/CGI/man7.org/linux/man-cgi?pages/man1/grep .1.html grep]<br>
[http://man7.org/linux/man-pages/man1/wc.1.html wc]<br>
[http://man7.org/linux/man-pages/man1/pwd.1.html pwd]<br>
[http://man7.org/linux/man-pages/man1/chmod.1.html chmod]<br>
[http://ss64.com/vi.html vi]
|valign="top" style="padding-left:20px;"|Matrix Online Tutorials:<br><ul><li>Shell Scripting - Part 2 (Logic & Math Expressions):<br>'''/home/murray.saulops235/scripting-2'''</li><li>Shell Scripting - Part 3 (Loops)<br>'''/home/murray.saulops235/scripting-3'''</li></ul>
|}
=INVESTIGATION 1: CREATE REMAINING SETUP FOR NESTED VIRTUAL MACHINES=
===Part 1: Configure VMware for Nested VMs ===
Although we are using VMware Workstation to run our c7host VM, we ===Part 1: Install KVM Virtualization Application=== We will now install and configure another virtualization the KVM package called KVM in order to install the create our remaining VMs for this course.Since we are "nestingnested" VMs . We will also be starting several services (iincluding iptables) and disabling the firewalld service.e. running a VM inside another VM) we need to configure our c7host's Linux boot-up parameters We will learn more about managing firewalls using iptables in order to allow these VMs to run efficientlylab6.
:'''Perform the following steps:'''
# Launch the '''VMware Workstation''' application.# Select '''Open Virtual Machine''', and select the VM called '''c7host''' on Log into your Solid State Drive.# Launch your '''c7host''' machine, and login as as a regular switch to root user and open a shell terminal.# Edit the file called: perform a software update on your '''/boot/efi/EFI/centos/grub.cfgc7host'''# Search for VM by issuing the first occurrence of the Linux Kernel boot following command.# Insert the boot option: kvm-intel.nested=1 at the end of the Linux kernel boot options. See below for reference: <b><code ><span style="font-familycolor:courier#3366CC;font-size:1.2em;margin-left:20px;">yum update<br>linuxefi /boot/vmlinuz-3.10.0-327.18.2.el7.x86_64 root=/dev/mapper/centos_c7host-root ro crashkernel=auto rd.lvm.lv=centos_c7host/root rd.lvm.lv=centos_c7host/swap rhgb quiet LANG=en_CA.UTF-8 <span style="color:blue;font-weight:bold">kvm-intel.nested=1</spancode><br> initrdefi /boot/initramfs-3.10.0-327.18.2.el7.x86_64.img</codeb
===Part 2{{Admon/important |Yum Update Hangs|If you experience yum update "hanging" around item 689 of over 1200 packages, issue the following commands <b>(in a new terminal!)</b>: Install KVM Virtualization Application===<br><source>pkill systemctlyum clean allyum update</source>'''NOTE:''' Do NOT press '''&lt;ctrl&gt;c''' since it may cause your machine to cause a kernel panic when you restart your machine.}}
x :'''Perform the following steps:''' # Launch the '''VMware Workstation''' application.# Select '''Open Virtual Machine''', and select the VM called '''c7host''' on your Solid State Drive.# Launch your '''c7host''' machine, and login as as a regular user and open a shell terminal.# You will need to download an image file for the Centos7 LIVE DVD by issuing the following command (best works while at Seneca):<brol><b><code><span styleli value="color:#3366CC;font-size:1.2em;3">wget http://belmont.senecac.on.ca/centos/7/isos/x86_64/CentOS-7-x86_64-LiveGNOME-1511.iso</span></code></b><br>(If you are doing this at home, try: <code><span style="color:#3366CC;font-size:1.2em;">wget http://mirror.csclub.uwaterloo.ca/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso)</span></code><br><br>#You must perform a software update''' on your '''c7host''' machine before proceeding with the next steps. Login as root and issue the following command:<br><b><code><span style="color:#3366CC;font-size:1.2em;">yum update</span></code></b># As root, install the virtualization software by issuing the command:<br><b><code><span style="color:#3366CC;font-size:1.2em;">yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python \<br>python-virtinst libvirt-client virt-install virt-viewer bridge-utils</span></code></b> <br><br></li{{Admon/important|Restart your Host Machine|You must restart your <li>'''Restart your c7hostvirtual machine''' machine after installing the virtualization program above. If you fail to do this, you may experience virtualization network problems.<br><br>{| width="40%" align="right" cellpadding="10"|- valign="top"|{{Admon/note|About KVM|There are actually several key programs installed for virtualization using KVM:<ul><li>'''kvm/qemu''' - the hypervisor and other hardware emulation systems.</li><li>A system service named '''libvirtd''' that manages the VMs.</li><li>A graphical tool for managing virtual machines ('''virt-manager''') and the '''virsh''' command-line tool.</li></ul>}}|}<ol/li> <li value="7">Start the virtualization service: <b><code><span style="color:#3366CC;font-size:1.2em;">systemctl start libvirtd</span></code></b><br><br></li></ol>:'''NOTE:''' The most recent variants of Centos 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''.<br><br><ol/li><li value="8">To Disable disable and remove firewalld , issue the following commands:<br>
<b><code><span style="color:#3366CC;font-size:1.2em;">systemctl disable firewalld</span></code></b><br>
<b><code><span style="color:#3366CC;font-size:1.2em;">systemctl stop firewalld</span></code></b><br>
<b><code><span style="color:#3366CC;font-size:1.2em;">yum remove firewalld</span></code></b><br>
<br></li>
<li>To install and enable the IPTables services, issue the following commands:<br>
{{Admon/important|Run virt-manager as a regular user, not as root|Otherwise all your virtual machines will be owned by root and you won't be able to use them as a regular user.}}
<ol>
<li value="108">Start the graphical tool by selecting the menu options '''Applications'''>'''System Tools'''>'''Virtual Machine Manager''' or by typing the command<b><code><span style="color:#3366CC;font-size:1.2em;"> virt-manager</span></code></b><br><br></li><li>You will be learning in the next investigation to perform several different type types of CENTOS CentOS Linux installs. Lab2 has </li></ol>  ===Part 2: Configure VMware Workstation for Nested VMs ===  Although we are using VMware Workstation to run our c7host VM, we will now install and configure another virtualization package called KVM in order to install the remaining VMs for this course.Since we are "nesting" VMs (i.e. running a VM inside another VM) we need to configure our c7host's Linux boot-up parameters in order to allow these VMs to run efficiently. :'''comparison chartPerform the following steps:''' for comparing various Linux installs # In a terminal as the root user, edit the file called: '''/boot/efi/EFI/centos/grub. You were required in lab1 to record your observation for your cfg'''centos1<ul><li>''' installationIf this file doesn't exist, double-check your UEFI settings in VMWare Workstation for c7host.If BIOS is selected, <bru>you MUST redo Lab 1<br/u>.'''</li></ul># Search for the <b>first occurrence<li/b>As you proceed throughout this lab, you will be required to fill in of the Linux Kernel boot command. Do not make the following changes on more than one entry!# Insert the boot option: '''kvm-intel.nested=1''' at the comparison chart for end of the remaining 3 virtual machines that you will be installingLinux kernel boot options. <ol>{{Admon/li>important|About the reference settings shown below|* Only '''ONE''' of these settings might be applicable.* Enter '''JUST''' the text highlighted in '''BLUE''' as your kernel version, root, and LVM settings might vary slightly.}}
</ol>
<blockquote><code style=INVESTIGATION "font-family:courier;font-size:1.2em;margin-left:20px;"><br>linuxefi /vmlinuz-3.10.0-1062.1.2.el7.x86_64 root=/dev/mapper/centos_c7host-root ro crashkernel=auto rd.lvm.lv=centos_c7host/root rd.lvm.lv=centos_c7host/swap rhgb quiet LANG=en_CA.UTF-8 <span style="color: INSTALL REMAINING VMSblue;font-weight:bold">kvm-intel.nested=1</span><br> initrdefi /initramfs-3.10.0-1062.1.2.el7.x86_64.img</code></blockquote>
<span style="color:red;font-weight:bold">OR</span> <blockquote><code style="font-family:courier;font-size:1.2em;margin-left:20px;"><br>linuxefi /boot/vmlinuz-3.10.0-1062.el7.x86_64 root=/dev/mapper/centos_c7host-root ro crashkernel=auto rd.lvm.lv=centos_c7host/root rd.lvm.lv=centos_c7host/swap rhgb quiet LANG=en_CA.UTF-8 <span style="color:blue;font-weight:bold">kvm-intel.nested=1</span><br>initrdefi /boot/initramfs-3.10.0-1062.el7.x86_64.img</code></blockquote> <ol><li value="4">Save your editing changes, close the virtual machine application, and <u>'''reboot'''</u> your c7host VM.</li><li>If you configured your c7host VM for nested VMs, then you should get the output <b><code><span style="color:#3366CC;font-size:1.2em;">Y</span></code></b> when you issue the following command:<br><b><code><span style="color:#3366CC;font-size:1.2em;">cat /sys/module/kvm_intel/parameters/nested</span></code></b></li><ul><li>For '''AMD''' processors, check the /sys/module/'''kvm_amd'''/parameters/nested file.</li></ul><ul><li>And if kvm_intel directory doesn't exist, double-check your '''Processors => Virtualization Engine (Intel VT-x/EPT...)''' settings in VMWare Workstation.</li></ul></ol>  '''Answer the INVESTIGATION 1 observations / questions in your lab log book.''' =INVESTIGATION 2: INSTALL NESTED VIRTUAL MACHINES (KVM)= {|width="50%" cellspacing="0" |- valign="top" |{{Admon/important|Keep the root password the same for Host and VMs|In order to simplify running the lab checking scripts in future labs, using the same root password for ALL machines (c7host and virtual machines). Also use the same username and passwords for all of your machines (c7host and virtual machines).}}<br><br>|}=== Part 1: Installing VM from a Downloaded Image Network (Centos7 LIVE CDGraphical) ===
:'''VM Details:'''
:: '''VM Name (and hostname):''' centos1:: '''Boot media:''' LIVE DVD ImageNetwork installation:: '''Gnome Live DVD iso FileCentOS Full Network Install URL:''':::*Download at Seneca CollegeLab: httphttps://belmont.senecacmirror.onsenecacollege.ca/centos/7/isosos/x86_64/CentOS-7-x86_64-LiveGNOME-1511.iso:::*Download outside Seneca CollegeHome: http://mirror.csclub.uwaterloonetflash.canet/centos/7/isosos/x86_64/CentOS-7-x86_64-DVD-1511:: '''VM Image Pathname:''' /var/lib/libvirt/images/centos1.isoqcow2:: '''Memory:''' 2048MB:: '''Disk space:''' 15GB:: '''CPUs:''' 2
[[Image:: '''Kvm-warning.jpg|thumb|right|400px|You may see this warning when creating your first VM Image Pathname:''' /var/lib/libvirt/images/centos1inside CentOS.qcow2:: Select'''Memory:''Don' 2GB:: t ask me about these directories again'''Disk space:''and click' 10GB:: '''File System (root partition):'Yes'' ext4:: '''CPUs:''' 1.]]
:'''Perform the following steps:'''
{{Admon/important|Removing VMs|If for some reason you want to remove a Virtual Machine, they can right-click # Launch the VM, and select delete in the Virtual Machine Manager. It is recommended to ''KVM virtual machine manager'' by clicking '''"delete the image file" in the remove VM dialog box when removing and then recreating a VMApplications'''. Note: If you fail to properly remove the VM image file, it may affect the hard disk size for the new VM (i.e. use the old smaller size. Make certain to remove that VM image file prior to recreating the VM. -> '''Sometimes, you may need to use the rm command to manually remove this file!System Tools'''}} [[Image:vm-path.png|thumb|right|300px|When installing your centos1 VM from the Gnome Live iso, the Linux system will boot graphically, You are then required to double-click the icon called: > '''Install to Hard DriveVirtual Machine Manager'''.]]# Make certain you used the wget command to download the LiveGNOME iso file from the Belmont server (from previous instructions).# In the Virtual Machine MangerWhen prompted, click on the icon to enter your '''Create a Virtual Machineroot''' in the upper-left corner: password.# A window will appear with Click the title '''New create a new VMicon'''located near the top left-corner of the application window. There are several steps to be completed:<ol type="a"><li># Select the '''Local install mediaNetwork Install''' option and click '''Forward'''.</li><li>Select '''Use ISO Image''', followed by the '''Browse''' button, # Enter (copy and then paste) the '''Browse Local''' button. Navigate to URL located at the location top of the downloaded Centos7 LIVE CD image, select the image file this section (depending whether you are at Seneca College or not) and click '''Open'''. When finished, click '''Forward''' to proceed.</li><li># Set the memory RAM size to '''2048 MB''' and the number of CPUs to click '''1'Forward''</li><li>You will then be prompted to enter a size for the virtual machine's disk drive. Select a # Set Hard Disk size of '''10 GB''' to 15GB and then click '''Forward''' to proceed.# </li><lispan style="background-color:yellow;">Enter the virtual machine name: '''centos1'''. Review the VM information, and click '''Finish'''.</liu>AND</olu><ol><li value="4">The virtual machine will boot as a then select the option: '''Live UserCustomize configuration before install'''. This means that the Linux OS is just running temporarily. In order to install the LInux OS on your VM, double-and click on the icon labelled:'''Install to Hard DriveFinish'''.</lispan># <lispan style="background-color:yellow;">Start timing this install.</li><li>The installation program, similar to the one used when installing CentOS in Lab 1, Another dialog will appear (Including . Click '''Gnome DesktopCPUs''' software configuration(or "processors"). You basically perform the same installation operations for this VM including for and on right-side under Configuration select '''Date & TimeCopy Host CPU Configuration''', click '''Network & HostnameApply''', and then click '''Begin Installation Destination'''. Make certain to use at the '''hostname''': '''<u>centos1</u>''' as opposed to ''c7host'') for this installationtop left-hand side. </li><lispan>#<span style="background-color:yellow;">For During the install, select '''Installation DestinationGnome Desktop'''software selection). For partitioning, select the destination option: '''I will configure partitioningpartition settings''' and , click done, then click select '''DoneClick here to create them automatically'''. Make certain that Set the / partition for '''Partition Schemeext4''' is set to file-system type, and click '''LVMDone''' and then click on .</span>#<span style="background-color:yellow;">Set the link: correct '''Click to Create AutomaticallyDate and Time Zone'''. , and then click on '''DoneNetwork and Hostname'''. Check to make certain that the root partition has file system typeThe network should be turned on. For hostname, enter: '''ext4centos1'''.</span></li><li>Accept the changes and then click '''Begin InstallationDone'''.<ol type/span># <span style="abackground-color:yellow;"><li>You will be required Complete the installation. Login to make selections very similar your regular user account, switch to what you did in lab1.the root user with </lib>su -<li/b>While the system is installing, take and perform a few minutes '''yum update''' for the centos1 VM (reboot if required). Make certain to record adjust your observations (including slight differences with centos1 install as opposed to c7host install)screen-saver settings if desired.</lispan><libr>When {{Admon/important|Use same root password / regular username / regular user passwords for c7host and ALL VMs|To simplify the installation lab checking process is completemake certain that you use the identical root password, regular username, note the time required to install and regular username password for VMs that you create in this system and record labs as you did for c7host machine in the installation comparison chart of your lab2 logbooklab1.<br><br>}}</libr></ol></livalue="13"><li>Powerspan style="background-off your Centos7 LIVE system.</li><li>You should notice that the Centos7 boot menu appears. Either press '''ENTER''' to start or wait for it to start automatically.</li><licolor:yellow;">Finish Repeat the final steps in the setup process (like as you did in lab1).</li><li>It is recommended to turn off the screen-saver previous investigation (like you did in Lab1): [httphttps://zenitwiki.senecaccdot.onsenecacollege.ca/wiki/index.php/OPS235_Lab_1_-_CentOS7OPS235_Lab_2#Customizing_Your_Account How to Turn-off Screen Saver (lab1Part_1:_Install_KVM_Virtualization_Application Investigation1 Part 1])]</li> <li>Enable SSH access to your virtual machine with these commands (semi'''stop and disable firewalld, install iptables-colon allows commands to be run in sequence):<br /> <b><code><span style="color:#3366CC;fontservices, start and enable iptables''' for this newly-size:1created VM.2em;">service sshd start; chkconfig sshd on</span></code></b></li> <li>Find out the IP address of your virtual machine and the name of your Ethernet network adaptor: <b><code><span style="background-color:#3366CCyellow;font">Repeat the steps as you did with c7host post-size:1install to '''disable SELinux''' and perform a '''yum update'''.2em;">ifconfig</span></code></b> </li> <li>Enter Issue the following command on your virtual machine to create a firewall exception to allow ssh traffic into obtain the machine:<br /> <b><code><span style="color:#3366CC;font-size:1.2em;">iptables -I INPUT -p tcp -s0/0 -d0/0 --dport 22 -j ACCEPT</span></code></b></li><li>If you are logged in as root, logout to IPADDR for your regular user account.</li><li>Confirm that you can ssh centos1 VM to record in your virtual machine from the host (your main CentOS installation)lab2 logbook: <b><code><span style="color:#3366CC;font-size:1.2em;">ssh regularuserid@IPaddressifconfig</span></code></b> (where '''regularuserid''' is your regular user login id, and '''IPaddress''' is the '''IP_ADDRESS''' of your '''centos1''' VM!).</li><li><span style="background-color:yellow;">Make certain to '''disable SELinux for centos1''' (refer to lab1)</span></li><li><span style="background-color:yellow;">Adjust your screen-saver settings and run a '''yum update''' on your centos1 VM.</span></li><li>Record the time taken to install, and compare this to the time taken by the previous installations. Record in your findings in the Installation Comparison chart in lab2 logbook.</li></ol>
 === Part 2: Installing from a Network (Minimal install - CLI) ===
:'''VM Details:'''
:: '''VM Name (and hostname):''' centos2
:: '''Boot media:''' Network installation
:: '''Centos CentOS Full Network Install URL:''':::*Seneca Lab: httphttps://belmontmirror.senecac.onsenecacollege.ca/centos/7/os/x86_64/:::*Home: http://mirror.csclubnetflash.uwaterloo.canet/centos/7/os/x86_64/
:: '''VM Image Pathname:''' /var/lib/libvirt/images/centos2.qcow2
:: '''Memory:''' 2048MB
:'''Perform the following steps:'''
# Create the VM (called '''centos2''') as you did with the ''centos1'' machine, except for . # Make certain to enter the following differencesname:'''centos2''', <ol type="a"u>AND<li/u>Select then select the option: '''Customize configuration before install''', and select '''Copy Host CPU Configuration''', click '''Network Apply''', and then click '''Begin Installation''' using the installation source URL displayed above.</li><li><span style="background-color:yellow;">#When customizing your partitionsselecting the install options for centos2, do the same operation that you did in centos2 centos1 (but with '''Gnome DesktopMinimal Install''' software selectioninstead), but after '''automatically creating the partitions''', reduce the size of the root LVM partition logical volume to '''8000 MB8 GiB''' and add an LVM partition a logical volume with a size of '''2000 MB2 GiB''' (mount point: '''/home''', name: '''home''', and make certain root and /home partitions logical volumes have '''ext4''' file system).</span><br><br></li></ol># Complete the installation. Login to your regular user account, and perform a '''yum update''' for the centos2 VM (reboot if required). Make certain to adjust your screen-saver settings if desired.# <span style="background-color:yellow;">Repeat the steps as you did to '''start the SSH service''', '''set iptables to accept connections via ssh''', '''test connections between centos2 and centos1''', '''disable SELinux''' and perform a '''yum update'''.</span># Record the time taken to install, and compare this to the time taken by the previous installations. Record your findings in the Installation Comparison chart in lab2 logbook.
# <span style="background-color:yellow;">Complete the installation. Login to your regular user account.</span>
#<span style="background-color:yellow;">Repeat the steps as you did in the previous investigation ([https://wiki.cdot.senecacollege.ca/wiki/OPS235_Lab_2#Part_1:_Install_KVM_Virtualization_Application Investigation1 Part 1]) to '''stop and disable firewalld, install iptables-services, start and enable iptables''' for this newly-created VM.</span>
# <span style="background-color:yellow;">Repeat the steps as you did with c7host post-install to '''disable SELinux''' (using the command 'vi' instead of 'vim') and perform a '''yum update'''.</span>
# The ifconfig command is not available in centos2. Issue the following command to obtain and record your centos2 IPADDR in your lab2 logbook: <b><code><span style="color:#3366CC;font-size:1.2em;">ip address</span></code></b>
# Record the time taken to install, and compare this to the time taken by the previous installations in your lab2 logbook.
=== Part 3: Installing from a Network using a Kickstart File ===
:: '''VM Name (and hostname):''' centos3
:: '''Boot media:''' Network installation
:: '''Centos7 CentOS 7 Full Install Network URL:''':::*Seneca Lab: httphttps://belmontmirror.senecac.onsenecacollege.ca/centos/7/os/x86_64/:::*Home: http://mirror.csclubnetflash.uwaterloo.canet/centos/7/os/x86_64/:: '''Kickstart File URL(Kernel options): ''':::* Seneca Lab:''' http<span style="color:green;font-weight:bold">ks=</span>https://matrix.senecacict.onsenecacollege.ca/~andrewops235/labs/centos7-kickstart.smithcfg:::* Home:''' <span style="color:green;font-weight:bold">ks=</span>https://ict.senecacollege.ca/~ops235/labs/centos7-kickstart-v01ext.cfg
:: '''VM Image Pathname:''' /var/lib/libvirt/images/centos3.qcow2
:: '''Memory:''' 2048MB('''IMPORTANT''' Do not use less than 2048MB during installation.)
:: '''Disk space:''' 15GB
:: '''CPUs:''' 12<br>{{Admon/important|Include ''ks&#61;'' in the URL options field!|When using a kickstart file, make sure you include the''' ''ks&#61;'' '''portion of the link. If done correctly, you should not be able to select partitions or any other settings.}}<br>
:'''Perform the following steps:'''
# Create the VM as you did with the (called '''centos3'centos2'' virtual machine) # During the install, specifying a copy the network install as beforeURL, but specify then click the '''URL options''' to expand the '''kernel options''' input textbox. Type the following in the kernel options textbox: <ul><li>Seneca Lab:''' <span style="color:green;font-weight:bold">ks=</span>https://ict.senecacollege.ca/~ops235/labs/centos7-kickstart location under the .cfg</li><li>'''Home:''' <span style="options sectioncolor:green;font-weight:bold" for network >ks=</span>https://ict.senecacollege.ca/~ops235/labs/centos7-kickstart-ext.cfg</li></ul># Then click the '''forward''' button to proceed. Make certain to select the correct Memory Size and Disk Space size shown in the VM Details above# Make certain to enter the name: '''centos3''', <u>AND</u> then select the option: '''Customize configuration before install''', and select '''Copy Host CPU Configuration''', click '''Apply''', and then click '''Begin Installation'''. What do you think is the purpose of this kickstart file?
# Observe the installation. How is it different from booting from a downloaded image?
# Record the time taken to install, and compare this to the time taken by the previous installations.<br><br>If the during the installation, you see the message at the bottom '''Pane is Dead''', click the '''Virtual Machine''' menu at the top, select '''Shut Down''' -> '''Force Off''', '''right-click''' on '''centos3''' in the ''virtual manager'' window and select '''Delete'''. Redo the VM setup for a new instance of the ''centos3'' VM.<br><br>
# What happens when the installation is finished?
# Click '''In a web browser''', click the kickstart file (KS) link above. This link in is a web-browser, and record text file. Read through it to find the following information (pay attention to access lines starting with #) and record it in your centos3 VMLab Logbook:<ul><li>'''Regular-user account name'''</li><li>'''Regular-user account password'''</li><li>'''Root Password'''</li></ul>
# Boot the virtual machine and log in (use the user ID and password information from the previous step to gain access to this VM).
# Compare the experience to the first time you booted the other virtual machines. Record this information in the '''table contained in Investigation 4'''.# <span style="background-color:yellow;">Repeat the steps as you did in the previous investigation ([https://wiki.cdot.senecacollege.ca/wiki/OPS235_Lab_2#Part_1:_Install_KVM_Virtualization_Application Investigation1 Part 1]) to '''start the SSH service'''stop and disable firewalld, '''set install iptables to accept connections via ssh'''-services, '''test connections between centos3 start and centos1enable iptables''', for this newly-created VM.</span># <span style="background-color:yellow;">Repeat the steps as you did with c7host post-install to '''disable SELinux''', and perform a '''yum update'''.</span># The ifconfig command may not be available in centos3. Issue the following command to obtain and record your centos2 IPADDR in your lab2 logbook: <b><code><span style="color:#3366CC;font-size:1.2em;">ip address</span></code></b>
# Remember that centos3 is text-based interface only (no graphics). To recover from a blank screen, press a key (like the SPACE key) to return to the screen display.
# Record the time taken to install, and compare this to the time taken by the previous installations. Record in your findings in the Installation Comparison chart in lab2 logbook.
'''Answer the INVESTIGATION 2 observations / questions in your lab log book.'''
 =INVESTIGATION 23: ESSENTIAL MANAGING VIRTUAL MACHINE OPERATIONSMACHINES (KVM)=
:'''Perform the following steps:'''
# Shut down your '''centos1''', '''centos2''', and '''centos3''' VMs.For ''centos2'' and ''centos3'', which are CLI-only, you can issue the following command as root to shutdown: <b><code><span style="color:#3366CC;font-size:1.2em;">shutdown -h</span></code></b>. Please be patient, the VMs will shut down!# In your '''c7host''' VM, change open a new Terminal window, and '''switch to the root account ''inside'' the terminal'''.# Change to the images directory by issuing the command: <b><code><span style="color:#3366CC;font-size:1.2em;">cd /var/lib/libvirt/images/</span></code></b>. <ul><li>Note the size of the files in this directory. What do these files contain?</li></ul># Make a compressed backup of the your '''centos1.qcow2''', '''centos2.qcow2''', and '''centos3.qcow2''' file files to your regular user's home directory with this by issuing each command(one at a time):<br><b><code><span style="color:#3366CC;font-size:1.2em;">gzip < centos1.qcow2 > ~YourRegularUsername/centos1.qcow2.backup.gz</span></code></b><br><b><code><span style="color:#3366CC;font-size:1.2em;">gzip < centos2.qcow2 > ~YourRegularUsername/centos2.qcow2.backup.gz</span></code></b><br><b><code><span style="color:#3366CC;font-size:1.2em;">gzip < centos3.qcow2 > ~YourUserIdYourRegularUsername/centos3.qcow2.backup.gz</span></code></b><br /ul>(Note'''NOTE: ''' Make certain to use the redirection signs "<" and ">" properly in the command!)</ul>{{Admon/important |Please be patient|It may look like the command prompt is stuck but it could take a while for gzip to compress an entire operating system. '''NOTE:''' Do NOT press '''&lt;ctrl&gt;c''' to cancel this process. If you do, your archive will become incomplete and your recovery will be corrupt.}}# <ol><li value="5"> Compare the size of the compressed and original files (hint: use '''ls -lh'''). If file is very large (like 15GB), you didn't compress it and you need to remove that file and perform the previous step until you get it right!</li># <li> Start the '''''centos3''''' VM.</li># <li> '''Make certain that you are in your VM and <u>not</u> in your main system!''' </li># <li> Wreck <u>only</u> your centos3 system! Try this command inside the centos3 virtual machine:<b><code><span style="color:#3366CC;font-size:1.2em;">rm -rf /*</span></code></b> (ignore error messages).</li># <li> Shut down the centos3 VM. If you tried to start the centos3 VM, it would not boot since all system files have been removed!</li># <li> Make certain you are in your '''/var/lib/libvirt/images directory'''. Restore the original image from the backup in from your home directory to your '''images''' directory by typing this command:<br><b><code><span style="color:#3366CC;font-size:1.2em;">gunzip < ~YourUserId/centos3.qcow2.backup.gz > centos3.qcow2'''</span></code></b></li># <li> Restart the VM. Is it working normally?</li># Create compressed backups of your other virtual machines (ie. '''centos1''' and '''centos2''').# <li> You should make a copy of the xml XML configuration file in case you "wipe" and re-install the host machine, and want to add a restored VM backups to the virtual machine manager list. We will demonstrate using the centos3 xml XML configuration file, and prove that a "clone" can be added to your list.Please perform the following step:</li># <li> Execute the following command: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh dumpxml centos3 > centos3.xml</span></code></b></li># <li> Examine the file <b><code><span style="color:#3366CC;font-size:1.2em;">centos3.xml</span></code></b>. What does it contain? What format is it in?<br><br/li></ol=== Part 2: Restoring Virtual Machines === [[Image:Cinnamon-2.png|thumb|right|500px|Click on the cog icon to select different installed desktop environments.]] # We will now learn how to download a compressed image file and xml XML configuration file and add it as a VM to the virtual manager Virtual Machine Manager menu.# Issue the following commands:<ul><li><b><code><span style="color:#3366CC;font-size:1.2em;">wget httphttps://csict.senecac.onsenecacollege.ca/~murray.saul/ops235/practical1centos4.qcow2.backup.gz</span></code></b></li><li><b><code><span style="color:#3366CC;font-size:1.2em;">wget https://scsict.senecac.onsenecacollege.ca/~murray.saulops235/ops235labs/practical1centos4.xml</span></code></b><br><br></li></ul><ol><li value="17"># Copy these files to the '''/var/lib/libvirt/images''' directory and decompress the qcow2 image</li><li>file.# Make certain your present working directory is: '''/var/lib/libvirt/images'''</li><li># Issue the command: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh define practical1centos4.xml</span></code></b></li><li># What happened in the virtual manager window? To remove a VM entry in the Virtual Manager window, simply issue the command: '''virsh undefine vm_name''' (without the '''.xml''' file extension)# Start up your new centos4 VM.# Click on the user </lii>OPS235<li/i> Launch , and click the VM to see if it boots-upcog icon.# Notice </lii>Cinnamon (Software Rendering)<li/i>Can you log into is selected. The Cinnamon desktop environment has been installed on this VM? Perhaps your instructor will give . From this menu, you a clue in week #7can select other installed desktop environments.This is how you switch between them.Write it down. # Login with the password <b>;p<bri>ops235<br/i></lib>. Feel free to explore the new environment.# Prior to your practical test, you will be required to perform a similar operation to download, unzip and run a VM image for your practical test.</olbr>{{Admon/important|Shutting Down the Host while Virtual Machines are Running|If you shut down your host system while virtual machines are running, they will be suspended, and will resume the next time you boot your host system.}}<ol> <li value="2212">For the remainder of these labs, it is assumed that you will backup <u>'''both'''</u> the images and xml XML configuration files for <u>'''all'''</u> Virtual machines, when asked to backup your virtual machines. It is also highly recommended to backup these files to an external storage device (eg. USB key) in case the host machine gets "wiped" and you need to rebuild your HOST machine and then restore your Virtual Machines...</li>
<li>Answer this question in your log book:</li>
</ol>
::* In order to fully back up a virtual machine, what information should be saved in addition to the virtual machine image?
=== Part 23: Using Shell Scripts for VM Backup &amp; Management===
{|width="40%" align="right" cellpadding="10"
|- valign="top"
{{Admon/important|Virtual Machine Does not Shutdown from Command|If the Virtual machine fails to shutdown from the <code>virsh shutdown</code> command, then you can go to the '''Virtual Machine manager''' and '''halt''' or '''shutdown''' within the VM itself, then you can click the '''PowerOff''' button in the VM window. You'll want to avoid a forced shutdown since those are equivalent to yanking the power cord out of the wall on a physical machine!|}}
<ol><li value="9">Open a Bash shell terminal and login as root.</li>
<li>Use a text editor (such as <b><code><span style="color:#3366CC;font-size:1.2em;">vi</span></code></b> or <b><code><span style="color:#3366CC;font-size:1.2em;">nano</span></code></b>) to create a Bash Shell script called: <b><code><span style="color:#3366CC;font-size:1.2em;">backupVM.bash</span></code></b> in /root's home /bin directory.</li><li>Enter the following text content into your text-editing session:</li></ol><code style="color:#3366CC;font-family:courier;font-size:.9em;margin-left:20px;">
<br>
&#35;!/bin/bash
fi
</code>
<br></liol>
<li value="12">Save your editing session, but remain in the text editor.</li><li>This shell script is designed particularly for your centos1, centos2, and centos3 VMS.</li><li>The code displayed below will prompt the user if they wish for all VMs to be backed-up; otherwise, allow the user the option of specifying which VMs to be backed-up. Add the following code</li></ol>
<br>
&nbsp;echo "Backing up VM #$numanswer"<br>
&nbsp;gzip < /var/lib/libvirt/images/centos$numanswer.qcow2 > /root/centos$numanswer.qcow2.backup.gz<br><br>
&nbsp;echo "VM #$numanswer BACKUP DONE":<br>
else<br>
&nbsp;echo "Invalid Selection... Aborting program"<br>
<ol>
<li value="15">Save, set permissions, and then run that shell script to backup centos1. Confirm that this script did backup this image to root's home directory</li><li>Use the <b><code>wget</code></b> command to download, study, and run the following shell scripts on-line:<blockquote><b><code><span style=" pointer-events:none;cursor:default;color:#3366CC;font-size:1.2em;">https://scsict.senecac.onsenecacollege.ca/~murray.saulops235/labs/vm-start-text.bash<br>https://scs.senecacict.onsenecacollege.ca/~murray.saulops235/labs/vm-stop-text.bash</span></code></b><br><b><code><span style=" pointer-events:none;cursor:default;color:#3366CC;font-size:1.2em;">https://scs.senecacict.onsenecacollege.ca/~murray.saulops235/labs/vm-start.bash<br>https://scs.senecacict.onsenecacollege.ca/~murray.saulops235/labs/vm-stop.bash</span></code></b></blockquote></li><li>Try to understand what these Bash Shell scripts do.</li><li>You have completed lab2. Proceed to Completing The Lab, and follow the instructions for "lab sign-off".</li></ol> 
'''Answer INVESTIGATION 2 observations / questions in your lab log book.'''
'''Answer INVESTIGATION 3 observations / questions in your lab log book.'''
= LAB 2 SIGN-OFF (SHOW INSTRUCTOR) =
===Exclusively for Summer 2020 term, submissions are accepted only online!===Follow the submission instructions for lab 2 on Blackboard.{{Admon/important|Backup ALL of your VMs!|If you have successfully completed this lab, make a new backup of all of your virtual machines onto your UBS USB Key.}} 
:'''Perform the Following Steps:'''
# Make certain ALL Use the '''virsh start''' command to launch all the VMs ('''centos1''', '''centos2''', and '''centos3''').# Inside each virtual machine, run <b><code>ip a</code></b> on the command line. Open a Terminal window in centos1 to do so. You'll need the IP address of your VMs are runningeach machine for the next steps.
# Switch to your '''c7host''' VM, open a terminal, login as root, and change directory to '''/root/bin'''.
# Issue the Linux command: <b><code><span style="color:#3366CC;font-size:1.2em;">wget httphttps://matrixict.senecac.onsenecacollege.ca/~murray.saulops235/ops235labs/lab2-check.bash</span></code></b>
# Give the '''lab2-check.bash''' file execute permissions (for the file owner).
# Run the shell script and if any warnings, make fixes and re-run shell script until you receive "congratulations" message.
::&#x2713; '''<u>All</u> VMs''':<blockquote><ul><li>All 4 VMs '''created''' and '''running'''</li><li> Proof of '''yum updates''' on ALL VMs (i.e. results from '''yum update''' command)</li></ul></blockquote>
::<span style="color:green;font-size:1.5em;">&#x2713;</span>'''centos2 c7host VM''':<blockquote><ul><li>Output from running Run the '''lab2-check.bash''' script with in front of your instructor (must have all <b><code><span style="color:#66cc00;border:thin solid black;font-size:1.2em;">&nbsp;OK &nbsp;</span></code></b> messages)</li></ul></blockquote>::<span style="color:green;font-size:1.5em;">&#x2713;</span> Lab2 logbook notes and '''Installation Comparison chart''' completed.
= Practice For Quizzes, Tests, Midterm &amp; Final Exam =
# What is the difference between a determinant loop and an in-determinant loop?
# Show a few examples how loops can be used to error-check when prompting the user for data.
# What is the purpose of the '''&amp;&amp;''' and '''||''' symbols when used with logic?'# What does the command '''rpm -qi centos-release''' do and why is it important? # What is the difference between '''rpm -q centos-release''' and '''uname -a'''? 
[[Category:OPS235]]
[[Category:OPS235 Labs]]
[[Category:CentOS 7]]
[[Category:SSD2]]
[[Category:Digital Classroom]]

Navigation menu