Anvil! m2 Tutorial: Difference between revisions

From Alteeve Wiki
Jump to navigation Jump to search
 
(44 intermediate revisions by the same user not shown)
Line 2: Line 2:


{{warning|1=This tutorial is '''NOT''' complete! It is being written using [[Striker]] version <span class="code">1.2.0 β</span>. Things may change between now and final release.}}
{{warning|1=This tutorial is '''NOT''' complete! It is being written using [[Striker]] version <span class="code">1.2.0 β</span>. Things may change between now and final release.}}
'''How to build an '''''Anvil!''''' from scratch in under a day!'''


I hear you now; "''Oh no, another book!''"
I hear you now; "''Oh no, another book!''"
Line 17: Line 19:
Simply put;
Simply put;


* The Anvil! is a high-availability cluster platform for hosting virtual machines.
* The ''Anvil!'' is a high-availability cluster platform for hosting virtual machines.


Slightly less simply put;
Slightly less simply put;


* The Anvil! is;
* The ''Anvil!'' is;
** '''Exceptionally easy to build and operate.'''
** '''Exceptionally easy to build and operate.'''
** A pair of "[[node]]s" that work as one to host one or more '''highly-available (virtual) servers''' in a manner transparent to the servers.
** A pair of "[[node]]s" that work as one to host one or more '''highly-available (virtual) servers''' in a manner transparent to the servers.
Line 27: Line 29:
*** Existing expertise and work-flow are almost 100% maintained requiring almost '''no training for staff and users'''.   
*** Existing expertise and work-flow are almost 100% maintained requiring almost '''no training for staff and users'''.   
** A "[[Foundation Pack]]" of fault-tolerant network switches, switched [[PDU]]s and [[UPS]]es. Each Foundation pack can support one or more "Compute Pack" node pairs.
** A "[[Foundation Pack]]" of fault-tolerant network switches, switched [[PDU]]s and [[UPS]]es. Each Foundation pack can support one or more "Compute Pack" node pairs.
** A pair of "[[Striker]]" dashboard management and support systems which provide very simple, '''web-based management''' on the Anvil! and it's hosted servers.
** A pair of "[[Striker]]" dashboard management and support systems which provide very simple, '''web-based management''' on the ''Anvil!'' and it's hosted servers.
** A "[[Scan Core]]" monitoring and alert system tightly couple to all software and hardware systems that provides '''fault detection''', '''predictive failure analysis''', and '''environmental monitoring''' with an '''early-warning system'''.
** A "[[Scan Core]]" monitoring and alert system tightly couple to all software and hardware systems that provides '''fault detection''', '''predictive failure analysis''', and '''environmental monitoring''' with an '''early-warning system'''.
*** Optionally, "Scan Core" can automatically, gracefully shut down an Anvil! and it's hosted servers in low-battery and over-temperature events as well as automatically recovery when safe to do so.
*** Optionally, "Scan Core" can automatically, gracefully shut down an ''Anvil!'' and it's hosted servers in low-battery and over-temperature events as well as automatically recovery when safe to do so.
** Optional commercial supported with '''24x7x365 monitoring''', installation, management and customization services.
** Optional commercial supported with '''24x7x365 monitoring''', installation, management and customization services.
** 100% open source ([https://www.gnu.org/licenses/gpl-2.0.html GPL v2+] license) with HA systems built to be compliant with [http://www.redhat.com/en/services/support Red Hat support].
** 100% open source ([https://www.gnu.org/licenses/gpl-2.0.html GPL v2+] license) with HA systems built to be compliant with [http://www.redhat.com/en/services/support Red Hat support].
Line 41: Line 43:
This is meant to be a quick to follow project.  
This is meant to be a quick to follow project.  


It assumes no prior experience with Linux, High Availability clustering or virtual servers. It does require a basic understanding of things like networking, but as few assumptions as possible are made about prior knowledge.
It assumes no prior experience with Linux, High Availability clustering or virtual servers.
 
It does require a basic understanding of things like networking, but as few assumptions as possible are made about prior knowledge.


== What This Tutorial Is Not ==
== What This Tutorial Is Not ==
Line 47: Line 51:
Unlike the [[AN!Cluster Tutorial 2|main tutorial]], this tutorial is '''not''' meant to give the reader an in-depth understanding of High Availability concepts.  
Unlike the [[AN!Cluster Tutorial 2|main tutorial]], this tutorial is '''not''' meant to give the reader an in-depth understanding of High Availability concepts.  


Likewise, it will not go into depth on why the Anvil! is designed the way it is.  
Likewise, it will not go into depth on why the ''Anvil!'' is designed the way it is.  


It will not go into a discussion of how and why you should choose hardware for this project, either.  
It will not go into a discussion of how and why you should choose hardware for this project, either.  
Line 69: Line 73:
{|style="width: 100%;"
{|style="width: 100%;"
|style="width: 710px"|[[image:Fujitsu_Primergy_RX1330-M1_Front-Left.jpg|thumb|center|700px|Fujitsu Primergy [http://www.fujitsu.com/fts/products/computing/servers/primergy/rack/rx1330m1/ RX1330 M1]; Photo by [http://mediaportal.ts.fujitsu.com/pages/view.php?ref=33902&k= Fujitsu].]]
|style="width: 710px"|[[image:Fujitsu_Primergy_RX1330-M1_Front-Left.jpg|thumb|center|700px|Fujitsu Primergy [http://www.fujitsu.com/fts/products/computing/servers/primergy/rack/rx1330m1/ RX1330 M1]; Photo by [http://mediaportal.ts.fujitsu.com/pages/view.php?ref=33902&k= Fujitsu].]]
|[[image:ASUS_EeeBox_PX1035.jpg|thumb|center|200px|[http://www.asus.com/ca-en/EeeBox_PCs/EeeBox_PC_EB1035/ ASUS EeeBox PC1035]; Photo by [http://www.asus.com/ca-en/ ASUSTEK].]]
|[[image:Intel_NUC_NUC5i5RYH.png|thumb|center|200px|[http://www.intel.com/content/www/us/en/nuc/nuc-kit-nuc5i5ryh.html Intel NUC NUC5i5RYH]; Photo by [http://www.intel.com/content/dam/www/public/us/en/images/photography-consumer/16x9/65596-tall-nuc-kit-i5-i3-ry-frontangle-white-16x9.png/_jcr_content/renditions/intel.web.256.144.png Intel].]]
|}
|}


Line 75: Line 79:


We have used;
We have used;
* Very light-weight machines like the [http://www.asus.com/ca-en/EeeBox_PCs/EeeBox_PC_EB1035/ ASUS EeeBox] with a simple [http://store.apple.com/ca/product/MC704ZM/A/apple-usb-ethernet-adapter Apple USB ethernet] adapter.
* Small but powerful machines like the [http://www.intel.com/content/www/us/en/nuc/nuc-kit-nuc5i5ryh.html Intel Core i5 NUC NUC5i5RYH] with a simple [http://www.siig.com/it-products/networking/wired/usb-3-0-to-gigabit-ethernet-adapter.html Siig JU-NE0211-S1 USB 3.0 to gigabit ethernet] adapter.
* On the other end of the scale, we've used fully redundant [http://www.fujitsu.com/fts/products/computing/servers/primergy/rack/rx1330m1/ Fujitsu Primergy RX 1330 M1] servers with four network interfaces. The decision here will be principally guided by your budget.
* On the other end of the scale, we've used fully redundant [http://www.fujitsu.com/fts/products/computing/servers/primergy/rack/rx1330m1/ Fujitsu Primergy RX 1330 M1] servers with four network interfaces. The decision here will be principally guided by your budget.


Line 84: Line 88:
The more fault-tolerant, the better!
The more fault-tolerant, the better!


The Anvil! Nodes host power your highly-available servers, but the servers themselves are totally decoupled from the hardware. You can move your servers back and forth between these nodes without any interruption. In a node explodes without warning, the survivor will reboot your servers within seconds ensuring the most minimal service interruptions (typical recovery time from node crash to server being at the login prompt is 30 to 90 seconds).  
The ''Anvil!'' Nodes host power your highly-available servers, but the servers themselves are totally decoupled from the hardware. You can move your servers back and forth between these nodes without any interruption. If a node catastrophically fails without warning, the survivor will reboot your servers within seconds ensuring the most minimal service interruptions (typical recovery time from node crash to server being at the login prompt is 30 to 90 seconds).  


{|style="width: 100%;"
{|style="width: 100%;"
Line 104: Line 108:
=== Foundation Pack ===
=== Foundation Pack ===


The foundation pack is the bedrock that the Anvil! node pairs sit on top of.
The foundation pack is the bedrock that the ''Anvil!'' node pairs sit on top of.


The foundation pack provides two independent power "rails" and each Anvil! node has two power supplies. When you plug in each node across the two rails, you get full fault tolerance.  
The foundation pack provides two independent power "rails" and each ''Anvil!'' node has two power supplies. When you plug in each node across the two rails, you get full fault tolerance.  


If you have redundant power supplies on your switches and/or Striker dashboards, they can span the rails too. If they have only one power supply, then you're still OK. You plug the first switch and dashboard into the first power rail, the second switch and dashboard into the second rail and you're covered! Of course, be sure you plug the first dashboard's network connections into the same switch!
If you have redundant power supplies on your switches and/or Striker dashboards, they can span the rails too. If they have only one power supply, then you're still OK. You plug the first switch and dashboard into the first power rail, the second switch and dashboard into the second rail and you're covered! Of course, be sure you plug the first dashboard's network connections into the same switch!
Line 118: Line 122:
!colspan="2"|Switched PDUs
!colspan="2"|Switched PDUs
|-
|-
|style="width: 710px"|[[image:APC_AP7900_Front-Right.jpg|thumb|left|500px|APC [http://www.apc.com/products/resource/include/techspec_index.cfm?base_sku=AP7900 AP7900 8-Outlet 1U] 120vAC PDU. Photo by [http://www.apcmedia.com/prod_image_library/index.cfm?search_item=AP7900# APC].]]
|style="width: 710px"|[[image:APC_AP7900_Front-Right.jpg|thumb|left|400px|APC [http://www.apc.com/products/resource/include/techspec_index.cfm?base_sku=AP7900 AP7900 8-Outlet 1U] 120vAC PDU. Photo by [http://www.apcmedia.com/prod_image_library/index.cfm?search_item=AP7900# APC].]]
|[[image:APC_AP7931_Front-Right.jpg|thumb|center|100px|APC [http://www.apc.com/products/resource/include/techspec_index.cfm?base_sku=AP7900 AP7931 16-Outlet 0U] 120vAC PDU. Photo by [http://www.apcmedia.com/prod_image_library/index.cfm?search_item=AP7931# APC].]]
|[[image:APC_AP7931_Front-Right.jpg|thumb|center|100px|APC [http://www.apc.com/products/resource/include/techspec_index.cfm?base_sku=AP7900 AP7931 16-Outlet 0U] 120vAC PDU. Photo by [http://www.apcmedia.com/prod_image_library/index.cfm?search_item=AP7931# APC].]]
|-
|-
!colspan="2"|Network Switches
!colspan="2"|Network Switches
|-
|-
|style="width: 510px"|[[image:Brocade_icx6610-48_front-left.png|thumb|left|500px|Brocade [http://www.brocade.com/products/all/switches/product-details/icx-6610-switch/index.page ICX6610-48] 8x SFP+, 48x 1Gbps RJ45, 160Gbit stacked switch. Photo by [http://newsroom.brocade.com/Image-Gallery/Product-Images Brocade].]]
|style="width: 510px"|[[image:Brocade_icx6610-48_front-left.png|thumb|left|400px|Brocade [http://www.brocade.com/products/all/switches/product-details/icx-6610-switch/index.page ICX6610-48] 8x SFP+, 48x 1Gbps RJ45, 160Gbit stacked switch. Photo by [http://newsroom.brocade.com/Image-Gallery/Product-Images Brocade].]]
|[[image:Brocade_icx6450-25_front_01.jpg|thumb|left|500px|Brocade [http://www.brocade.com/products/all/switches/product-details/icx-6430-and-6450-switches/index.page ICX6450-48] 4x SFP+, 24x 1Gbps RJ45, 40Gbit stacked switch. Photo by [http://newsroom.brocade.com/Image-Gallery/Product-Images Brocade].]]
|[[image:Brocade_icx6450-25_front_01.jpg|thumb|left|400px|Brocade [http://www.brocade.com/products/all/switches/product-details/icx-6430-and-6450-switches/index.page ICX6450-48] 4x SFP+, 24x 1Gbps RJ45, 40Gbit stacked switch. Photo by [http://newsroom.brocade.com/Image-Gallery/Product-Images Brocade].]]
|}
|}


Line 130: Line 134:


You will need;
You will need;
* Two [[UPS]]es (Uninterruptable Power Supplies) with enough battery capacity to run your entire Anvil! for your minimum no-power hold up time.
* Two [[UPS]]es (Uninterruptable Power Supplies) with enough battery capacity to run your entire ''Anvil!'' for your minimum no-power hold up time.
* Two switched [[PDU]]s (Power Distribution Units) (basically network-controller power bars)
* Two switched [[PDU]]s (Power Distribution Units) (basically network-controller power bars)
* Two network switches with hitless fail-over support, if stacked. Redundant power supplies are recommended.
* Two network switches with hitless fail-over support, if stacked. Redundant power supplies are recommended.
Line 136: Line 140:
= What is the Build Process? =
= What is the Build Process? =


The core of the Anvil!'s support and management is the [[Striker]] dashboard. It will become the platform off of which nodes and other dashboards are built from.
The core of the ''Anvil!'''s support and management is the [[Striker]] dashboard. It will become the platform off of which nodes and other dashboards are built from.


So the build process consists of:
So the build process consists of:


== Setup the First Striker Dashboard ==
== Setup the Striker Dashboard ==


If you're not familiar with installing Linux, please don't worry. It is quite easy and we'll walk through each step carefully.
If you're not familiar with installing Linux, please don't worry. It is quite easy and we'll walk through each step carefully.
Line 154: Line 158:
== Preparing the Anvil! Nodes ==
== Preparing the Anvil! Nodes ==


{{Note|1=Every server vendor has it's own way to configure a node's BIOS and storage. For this reason, we're skipping that part here. Please consult your manual to enable network booting and for creating your storage array.}}
{{Note|1=Every server vendor has it's own way to configure a node's BIOS and storage. For this reason, we're skipping that part here. Please consult your server or motherboard manual to enable network booting and for creating your storage array.}}


It's rather difficult to borderline-impossible to fully automate the node install process, but Striker does automate the vast majority of it.
It's rather difficult to fully automate the node install process, but Striker does automate the vast majority of it.


It simplifies the few manual parts by automatically becoming a simple menu-driven target for operating system installs.
It simplifies the few manual parts by automatically becoming a simple menu-driven target for operating system installs.
Line 163: Line 167:


# Boot off the network
# Boot off the network
# Select the "Anvil! Node" install option
# Select the "''Anvil!'' Node" install option
# Select the network card to install from, wait for the install to finish
# Select the network card to install from, wait for the install to finish
# Find and note the node's IP address.
# Find and note the node's IP address.
Line 169: Line 173:


We can proceed from here using the web interface.
We can proceed from here using the web interface.
Some mini tutorials that might be helpful:
* [[Configuring Network Boot on Fujitsu Primergy]]
* [[Configuring Hardware RAID Arrays on Fujitsu Primergy]]
* [[Encrypted Arrays with LSI SafeStore]] (Also covers '<span class="code">[https://github.com/digimer/striker/blob/master/tools/anvil-self-destruct anvil-self-destruct]</span>')


== Configure the Foundation Pack Backup Fencing ==
== Configure the Foundation Pack Backup Fencing ==
Line 174: Line 183:
{{note|1=Every vendor has their own way of configuring their hardware. We we describe the setup for the APC-brand switched PDUs.}}
{{note|1=Every vendor has their own way of configuring their hardware. We we describe the setup for the APC-brand switched PDUs.}}


We need to ensure that the switched PDUs are ready for use as [[AN!Cluster_Tutorial_2#Concept.3B_Fencing|fence devices]] '''before''' we configure an Anvil!.
We need to ensure that the switched PDUs are ready for use as [[AN!Cluster_Tutorial_2#Concept.3B_Fencing|fence devices]] '''before''' we configure an ''Anvil!''.


Thankfully, this is pretty easy.
Thankfully, this is pretty easy.
* [[Configuring an APC AP7900]]
* [[Configuring Brocade Switches]]
* [[Configuring APC SmartUPS with AP9630 Network Cards]]


== Create an "Install Manifest" ==
== Create an "Install Manifest" ==
Line 182: Line 195:
An "Install Manifest" is a simple file you can create using Striker.
An "Install Manifest" is a simple file you can create using Striker.


You just enter a few things like the name and sequence number of the new Anvil! and the password to use. It will recommend all the other settings needed, which you can tweak if you want.
You just enter a few things like the name and sequence number of the new ''Anvil!'' and the password to use. It will recommend all the other settings needed, which you can tweak if you want.


Once the manifest is created, you can load it, specify the new nodes' IP addresses and let it run. When it finishes, your Anvil! will be ready!
Once the manifest is created, you can load it, specify the new nodes' IP addresses and let it run. When it finishes, your ''Anvil!'' will be ready!


== Adding Your New Anvil! to Striker ==
== Adding Your New Anvil! to Striker ==


The last step will be to add your shiny new Anvil! to your Striker system.  
The last step will be to add your shiny new ''Anvil!'' to your Striker system.  


== Basic Use of Striker ==
== Basic Use of Striker ==


It's all well and good that you have an Anvil!, but it doesn't mean much unless you can use it. So we will finish this tutorial by covering a few basic tasks;
It's all well and good that you have an ''Anvil!'', but it doesn't mean much unless you can use it. So we will finish this tutorial by covering a few basic tasks;


* Create a new server
* Create a new server
Line 201: Line 214:


* Powering nodes off and on (for upgrades, repairs or maintenance)
* Powering nodes off and on (for upgrades, repairs or maintenance)
* Cold-stop your Anvil! (before an extended power outage, as an example)
* Cold-stop your ''Anvil!'' (before an extended power outage, as an example)
* Cold-start your Anvil! (after power is restored, continuing the example)
* Cold-start your ''Anvil!'' (after power is restored, continuing the example)


The full Striker instructions can be found on the [[Striker]] page.
The full Striker instructions can be found on the [[Striker]] page.
Line 208: Line 221:
= Building a Striker Dashboard =
= Building a Striker Dashboard =


We recommend [https://access.redhat.com/products/red-hat-enterprise-linux/evaluation Red Hat Enterprise Linux] (RHEL), but you can also use the free, [http://wiki.centos.org/FAQ/General#head-4b2dd1ea6dcc1243d6e3886dc3e5d1ebb252c194 binary-compatible] rebuild called [[CentOS]]. Collectively these (and other RHEL-based operating systems) are often call "EL" (for "Enterprise Linux"). We will be using release version 6, which is shorted to simple '''EL6'''.
We recommend [https://access.redhat.com/products/red-hat-enterprise-linux/evaluation Red Hat Enterprise Linux] (RHEL), but you can also use the free, [http://wiki.centos.org/FAQ/General#head-4b2dd1ea6dcc1243d6e3886dc3e5d1ebb252c194 binary-compatible] rebuild called [[CentOS]]. Collectively these (and other RHEL-based operating systems) are often call "EL" (for "Enterprise Linux"). We will be using release version 6, which is abbreviated to simple '''EL6'''.
 
== Downloading The Install DVD ==
 
{{note|1=The Anvil! '''only''' supports EL6. We are monitoring the progress and stability of EL7 and will upgrade when we feel the platform has sufficiently matured and proven itself. In High-Availability systems, nothing trumps stability.}}
 
If you wish to use [[RHEL6]], you will need to purchase ''for each node'':
 
* Red Hat Enterprise Linux 6 (appropriate for you hardware/sockets)
* [https://www.redhat.com/f/pdf/rhel/RHEL6_Add-ons_datasheet.pdf Resilient Storage Add-On] (which includes the High-Availability Add-On)
 
You can [https://access.redhat.com/products/red-hat-enterprise-linux/evaluation get a 30-day trial] of RHEL 6 if you would like to try the Anvil! with RHEL proper before you purchase.
 
If you want to use [[CentOS]], you can download the install disk here:
* Direct link (University of Waterloo mirror) for 6.6;
** [http://mirror.csclub.uwaterloo.ca/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-minimal.iso Minimal DVD] (383 MB)
** [http://mirror.csclub.uwaterloo.ca/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-bin-DVD1.iso Full DVD 1] (4.3 GB) (we don't need disk 2)
* Bit Torrent;
** [http://mirror.csclub.uwaterloo.ca/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-minimal.torrent Minimal DVD]
** [http://mirror.csclub.uwaterloo.ca/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-bin-DVD1to2.torrent DVD 1 and 2]
* To use a direct link closer to you, please find the mirror closest to you;
** [http://isoredirect.centos.org/centos/6/isos/x86_64/ Mirror List]
 
Once you have downloaded the [[ISO]] image, use your favourite DVD burning program to write it to a disk. Insert it into your computer (or plug in a USB DVD drive) and boot off of it.
 
== Operating System Install ==
 
{{Note|1=This section of the tutorial assumes you are using the full install DVD. If you downloaded the <span class="code">Minimal</span> disk, don't worry. The only real difference is that the "Install Type" will be skipped.}}
 
[[image:Striker-Install_RHEL-Install_Boot-Menu.png|thumb|center|400px|RHEL 6.6 x86_64 boot menu.]]
 
When you first boot, you will see the initial boot menu. Choose;
* <span class="code">Install or upgrade an existing system</span>
 
[[image:Striker-Install_RHEL-Install_Check-media.png|thumb|center|400px|RHEL 6.6 x86_64 media check.]]
 
You will be asked if you want to check the DVD disc to make sure there are no scratches or other problems that might cause a failure during an install. If you're using a new disk, you can safely skip this. If you want to be extra careful, you are certainly free to run it by pressing '<span class="code">OK</span>'. I know my copy is good, so I will '<span class="code">Skip</span>' it.
 
[[image:Striker-Install_RHEL-Install_Splash-Screen.png|thumb|center|400px|RHEL 6.6 x86_64 splash screen.]]
 
The install will switch to a graphical install at this point. The only thing to do is press the '<span class="code">Next</span>' button in the bottom-right.
 
[[image:Striker-Install_RHEL6-Install_Choose-Language.png|thumb|center|400px|RHEL 6.6 x86_64 language selection.]]
 
You can choose your preferred language. We'll choose <span class="code">English</span>.
 
[[image:Striker-Install_RHEL6-Install_Choose-keyboard.png|thumb|center|400px|RHEL 6.6 x86_64 keyboard selection.]]
 
Then you can choose your keyboard type. We'll choose <span class="code">U.S. English</span>.
 
[[image:Striker-Install_RHEL6-Install_Storage-Selection.png|thumb|center|400px|RHEL 6.6 x86_64 storage selection.]]
 
Now we see a little more complex question, but don't worry. We're always going to choose the first option;
* <span class="code">Basic Storage Device</span>
 
The second option is only needed by people connecting external, networked storage (called <span class="code">iSCSI</span>).
 
[[image:Striker-Install_RHEL6-Install_Hostname-Prompt.png|thumb|center|400px|RHEL 6.6 x86_64 host name prompt]]
 
We can give the server a name (and configure the network) here if we wanted to. However, the Striker installer will handle all of this in a little bit, so we'll leave everything as default and simply click '<span class="code">Next</span>'.
 
[[image:Striker-Install_RHEL6-Install_Select-Timezone.png|thumb|center|400px|RHEL 6.6 x86_64 timezone selection.]]
 
{{note|1=It is not required, but it is recommend that the "<span class="code">system clock uses UTC</span>" check-box is selected.}}
 
Click on the map in the top-right corner to find your time zone. Alternatively, click the select box below <span class="code">Selected City</span> to find your time zone by name.
 
[[image:Striker-Install_RHEL6-Install_Root-Password.png|thumb|center|400px|RHEL 6.6 x86_64 enter <span class="code">root</span> user password.]]
 
{{warning|1=Please don't forget the password you enter here!}}
 
The Striker installer will update the system (<span class="code">root</span> user) password, but we need to enter something to use during the install. It is fine to use the same password you plan to use later, of course.
 
For the sake of the tutorial, we will use '<span class="code">Initial1</span>'.
 
[[image:Striker-Install_RHEL6-Install_Partition.png|thumb|center|400px|RHEL 6.6 x86_64 Partition screen.]]
 
This is a dedicated machine, so we're going to use all of the disk.
* Click the top radio-button to select "<span class="code">Use All Space</span>".
* Click on '<span class="code">Next</span>'
 
[[image:Striker-Install_RHEL6-Install_Confirm-Partition.png|thumb|center|400px|RHEL 6.6 x86_64 confirm partitioning.]]
 
The partitioning step will erase anything that might have been on your computer, so the installer asks you to confirm. Do so by clicking on <span 'class="code">Write changes to disk</span>'.
 
[[image:Striker-Install_RHEL6-Install_Install-Type.png|thumb|center|400px|RHEL 6.6 x86_64 installation type.]]
 
For the sake of keeping this install as simple as possible, we're going to select the "<span class="code">Desktop</span>" radio button. The check-boxes below can be left as they are.
 
[[image:Striker-Install_RHEL6-Install_Installed-Started.png|thumb|center|400px|RHEL 6.6 x86_64 install started.]]
 
Voila! The installation is under way.
 
Now is a great time to go grab a <span class="code">$drink</span>.
 
[[image:Striker-Install_RHEL6-Install_Installed-Completed.png|thumb|center|400px|RHEL 6.6 x86_64 install completed.]]
 
After a little while, the install will be finished. All that is left to do is click on '<span class="code">Reboot</span>'!
 
== Striker First Boot ==
 
{{note|1=If you are using [[CentOS]], the screens asking to register with Red Hat's Network will not apply to you and you can safely ignore them.}}
 
[[image:Striker-Install_RHEL6-Install_First-Boot_Welcome.png|thumb|center|400px|RHEL 6.6 x86_64 welcome]]
 
The first time that RHEL runs, it will ask you a few questions. Being polite though, it starts of welcoming you. Press '<span class="code">Forward</span>' to get started.
 
[[image:Striker-Install_RHEL6-Install_First-Boot_EULA.png|thumb|center|400px|RHEL 6.6 x86_64 RHEL EULA]]
 
{{Note|1=On CentOS, this license is quite a bit simpler.}}
 
Being that [[RHEL]] is a commercial operating system, there is an ''End User License Agreement''. It is a refreshingly short document, explaining the [https://www.gnu.org/licenses/gpl-2.0.html GNU licensing], limitations of warranty, export restrictions and so on. Please read it over and then, if you agree, press '<span class="code">Forward</span>' to agree.
 
[[image:Striker-Install_RHEL6-Install_RHN_01.png|thumb|center|400px|RHEL 6.6 x86_64 RHN registration, page 1]]
 
{{Note|1=On CentOS, this stage (and the windows that follow) do not apply to you.}}
 
When you purchased your Red Hat support (via the [[RHEL6]] purchase), or when you registered for your 30-day trial, you will have created a [https://rhn.redhat.com Red Hat Network] (RHN) account. If you want to use those credentials to register your system now, you can do so.
 
For the sake of brevity, we're going to skip registration just now and come back to it after the install is done.
 
Click to select the "<span class="code">No, I prefer to register at a later time.</span>" radio button and the press '<span class="code">Forward</span>'.
 
[[image:Striker-Install_RHEL6-Install_RHN_02.png|thumb|center|400px|RHEL 6.6 x86_64 confirm skip registration]]
 
You will be asked to confirm that you want to skip registration. Click '<span class="code">Register Later</span>' to confirm.
 
[[image:Striker-Install_RHEL6-Install_RHN_03.png|thumb|center|400px|RHEL 6.6 x86_64 confirm updates not configured]]
 
A little flair for the dramatic.
 
We're reminded that we won't get updated at this time, but that is OK, we'll register later. For now, click '<span class="code">Forward</span>'.
 
[[image:Striker-Install_RHEL6-Install_User-Account.png|thumb|center|400px|RHEL 6.6 x86_64 user account setup]]
 
This is where you create your normal user. You can use any name you like. We're using;
* ''Username'': <span class="code">alteeve</span>
* ''Full Name'': <span class="code">Alteeve's Niche!</span>


Enter the password you want to use for this user. Note that it '''will not''' be altered later by the Striker installer.
== Installing the Operating System ==


[[image:Striker-Install_RHEL6-Install_ntp.png|thumb|center|400px|RHEL 6.6 x86_64 configure network time]]
If you are familiar with installing RHEL or CentOS, please do a normal "Desktop" or "Minimal" install. If you install 'Minimal', please install the '<span class="code">perl</span>' package as well.


Next we tell the system to keep it's date and time in sync with time servers on the Internet.
If you are not familiar with Linux in general, or RHEL/CentOS in particular, don't worry.


To do this, click to select '<span class="code">Synchronize date and time over the network</span>. The default pool of time servers are fine.
Here is a complete walk-through of the process:


[[image:Striker-Install_RHEL6-Install_kdump.png|thumb|center|400px|RHEL 6.6 x86_64 enable kdump]]
* [[Anvil! m2 Tutorial - Installing RHEL/Centos|''Anvil!'' m2 Tutorial - Installing RHEL/Centos]]
 
The '<span class="code">kdump</span>' service can be quite useful if you run into trouble down the road, so we're doing to leave it enabled.
 
Click '<span class="code">Finish</span>'.
 
[[image:Striker-Install_RHEL6-Install_kdump_reboot.png|thumb|center|400px|RHEL 6.6 x86_64 enable kdump reboot prompt]]
 
The '<span class="code">kdump</span>' service needs a reboot to start working, so it prompts you to reboot when the setup finishes. Click on '<span class="code">Yes</span>' and then '<span class="code">OK</span>'.
 
Your system will reboot and we're done!
 
=== Enabling Network Access ===
 
{{note|1=This section may not be needed on your install.}}
 
[[image:Striker-Install_RHEL6-Desktop_Login.png|thumb|center|400px|RHEL 6.6 desktop - click your name]]
 
When the system boots, it will wait at the login prompt. Click on your name to get the password prompt.
 
[[image:Striker-Install_RHEL6-Desktop_Login-password.png|thumb|center|400px|RHEL 6.6 desktop - enter your password]]
 
Enter your password and then click on '<span class="code">Log In</span>'.
 
{{note|1=With luck, the next section will not apply to you and you can skip it.}}
 
[[image:Striker-Install_RHEL6-Desktop_no-network.png|thumb|center|400px|RHEL 6.6 desktop - no network]]
 
In some cases, [[RHEL6]] doesn't start the network at first. Thankfully, the fix is very easy.
 
Click on the 'Network' icon which is highlighted in the screen shot above.
 
[[image:Striker-Install_RHEL6-Desktop_network-interfaces.png|thumb|center|400px|RHEL 6.6 desktop - network interfaces]]
 
Our system has found network cards, but only one was configured and it wasn't started.
 
We can see that the configured one is '<span class="code">System eth0</span>' (the others show ''disconnected'' under them).
 
To start the network, all you need to do is click on '<span class="code">System eth0</span>'.
 
[[image:Striker-Install_RHEL6-Desktop_network-up.png|thumb|center|400px|RHEL 6.6 desktop - network up]]
 
The ''network'' icon will spin for a moment and then it will show that it is connected.


== Download the Striker Installer ==
== Download the Striker Installer ==


The Striker installer is a small "command line" program that you download and run. It looks a little intimidating at first, but it's actually quite easy to use.
The Striker installer is a small "command line" program that you download and run.


We need to download it from the Internet. You can download it in your browser [https://raw.githubusercontent.com/digimer/striker/master/tools/striker-installer by clicking here], if you like.
We need to download it from the Internet. You can download it in your browser [https://raw.githubusercontent.com/digimer/striker/master/tools/striker-installer by clicking here], if you like.
We're going to have to use the command line though, so for this tutorial, we will download it that way.
[[image:Striker-Install_RHEL6_Finding-the-terminal.png|thumb|center|400px|RHEL 6.6 - Finding the terminal]]
To open the terminal, on the top-left corner click on '<span class="code">Applications</span>' -> '<span class="code">System Tools</span>' -> '<span class="code">Terminal</span>'.
[[image:Striker-Install_RHEL6_Terminal-Window.png|thumb|center|400px|RHEL 6.6 - the terminal window]]
This is where we're going to do the rest of our work. So instead of screen shots, we'll show you the commands you need to write.
{{note|1=If you load this page in the browser on your Striker dashboard, you can copy and paste into the terminal to save a lot of typing. To do this, highlight the text you want to copy and press '<span class="code">ctrl</span>' + '<span class="code">c</span>'. Then mouse over the terminal window, press the '<span class="code">right mouse button</span>' and then click on '<span class="code">paste</span>'.}}
By default, the terminal window runs as the normal user you created ('<span class="code">alteeve</span>' in our case). To run the installer, we need to switch to the administrative user called the '<span class="code">root</span>' user. To do this, type:
<syntaxhighlight lang="bash">
su -
</syntaxhighlight>
You will be prompted to enter the <span class="code">root</span> user password. This was the first password you entered during the operating system install above.
{{note|1=There is ''no'' feedback when you type the password, this is normal.}}
<syntaxhighlight lang="text">
Password:
</syntaxhighlight>
If you got the password right, the command prompt will change to:
<syntaxhighlight lang="text">
[root@localhost ~]#
</syntaxhighlight>
Excellent, now we can download the installer!


To do that, run this command:
To do that, run this command:
Line 456: Line 256:
2014-12-29 17:10:48 (442 KB/s) - “striker-installer” saved [154973/154973]
2014-12-29 17:10:48 (442 KB/s) - “striker-installer” saved [154973/154973]
</syntaxhighlight>
</syntaxhighlight>
One last step!


To tell Linux that a file is actually a program, we have to set it's "[https://en.wikipedia.org/wiki/Modes_%28Unix%29 mode]" to be "executable". To do this, run this command:
To tell Linux that a file is actually a program, we have to set it's "[https://en.wikipedia.org/wiki/Modes_%28Unix%29 mode]" to be "executable". To do this, run this command:
Line 474: Line 272:
</syntaxhighlight>
</syntaxhighlight>


See the '<span class="code">-rwxr-xr-x.</span>' line? That tells use that the file is not 'e<span class="code">x</span>ecutable'.  
See the '<span class="code">-rwxr-xr-x.</span>' line? That tells use that the file is now 'e<span class="code">x</span>ecutable'.  


We're ready!
We're ready!
Line 498: Line 296:
=== How can we send email? ===
=== How can we send email? ===


The Anvil! nodes will send out an email alert should anything of note happen. In order to do this though, it needs to know what mail server to use and what email address and password to use when authenticating.  
The ''Anvil!'' nodes will send out an email alert should anything of note happen. In order to do this though, it needs to know what mail server to use and what email address and password to use when authenticating.  


You will need to get this information from whomever provides you with email services.
You will need to get this information from whomever provides you with email services.
Line 514: Line 312:
=== What IP addresses to use ===
=== What IP addresses to use ===


{{note|1=This section requires a basic understanding of how networks work. If you want a bit more information on networking in the Anvil!, please see the "[[AN!Cluster_Tutorial_2#Subnets|Subnets]]" section of the main tutorial.}}
{{note|1=This section requires a basic understanding of how networks work. If you want a bit more information on networking in the ''Anvil!'', please see the "[[AN!Cluster_Tutorial_2#Subnets|Subnets]]" section of the main tutorial.}}


The Striker dashboard will connect to two networks;
The Striker dashboard will connect to two networks;


* [[Internet-Facing Network]] (The [[IFN]]); Your existing network, usually connected to the Internet.
* [[Internet-Facing Network]] (The [[IFN]]); Your existing network, usually connected to the Internet.
* [[Back-Channel Network]] (The [[BCN]]); The dedicated network used by the Anvil!
* [[Back-Channel Network]] (The [[BCN]]); The dedicated network used by the ''Anvil!''


The IP address we use on the IFN will depend on your current network. Most networks use <span class="code">192.168.1.0/24</span>, <span class="code">10.255.0.0/16</span> or similar. In order to access the Internet, we're going to need to specify the [[default gateway]] and a couple [[DNS]] servers to use.  
The IP address we use on the IFN will depend on your current network. Most networks use <span class="code">192.168.1.0/24</span>, <span class="code">10.255.0.0/16</span> or similar. In order to access the Internet, we're going to need to specify the [[default gateway]] and a couple [[DNS]] servers to use.  
Line 529: Line 327:
=== Do we want to be an Anvil! node install target? ===
=== Do we want to be an Anvil! node install target? ===


One of the really nice features of Striker dashboards is that you can use them to automatically install the base operating system on new and replacement Anvil! nodes.
One of the really nice features of Striker dashboards is that you can use them to automatically install the base operating system on new and replacement ''Anvil!'' nodes.


To do this, Striker can be told to setup a "<span class="code">[[PXE]]</span>" (''P're-e''C''ecution ''E''nvironment) server. When this is enabled, you can tell a new node to "boot off the network". Doing this allows you to boot and install an operating system without using a boot disc. Also, it allows us to specify special install instruction, removing the need to ask you how you want to configure the OS.
To do this, Striker can be told to setup a "<span class="code">[[PXE]]</span>" (''P're-boot e''X''ecution ''E''nvironment) server. When this is enabled, you can tell a new node to "boot off the network". Doing this allows you to boot and install an operating system without using a boot disc. Also, it allows us to specify special install instruction, removing the need to ask you how you want to configure the OS.


The Striker dashboard will do everything for you to be an install target.
The Striker dashboard will do everything for you to be an install target.
Line 566: Line 364:
There is no inherent way for the Striker installer to know which network port plugs into what network. So the first step of the installer needs to ask you to unplug and then plug in each network card when prompted.
There is no inherent way for the Striker installer to know which network port plugs into what network. So the first step of the installer needs to ask you to unplug and then plug in each network card when prompted.


If you want to know more about how networks are used in the Anvil!, please see:
If you want to know more about how networks are used in the ''Anvil!'', please see:


* "[[AN!Cluster_Tutorial_2#Planning_The_Use_of_Physical_Interfaces|Planning The Use of Physical Interfaces]]" over on the main tutorial
* "[[AN!Cluster_Tutorial_2#Planning_The_Use_of_Physical_Interfaces|Planning The Use of Physical Interfaces]]" in the main tutorial


If your Striker dashboard has just two network interfaces, then the first will ask you which interface plugs into your [[Back-Channel Network]] and then which one plugs into your [[Internet-Facing Network]].
If your Striker dashboard has just two network interfaces, then the first will ask you which interface plugs into your [[Back-Channel Network]] and then which one plugs into your [[Internet-Facing Network]].
Line 587: Line 385:
If the '<span class="code">value</span>' has a space in it, then we'll put quotes around it.
If the '<span class="code">value</span>' has a space in it, then we'll put quotes around it.


If you want to know more about the switches, you can run '<span class="code">./striker-installer</span>' by itself and all the available switches and how to use them will be explained. This tutorial isn't meant to be comprehensive though, so we're not going to go into all the ways we can use the installer.
If you want to know more about the switches, you can run '<span class="code">./striker-installer</span>' by itself and all the available switches and how to use them will be explained.


{{note|1=This uses the 'git' repository option. It will be redone later without this option once version 1.2.0 is released. Please do not use 'git' versions in production!}}
{{note|1=This uses the 'git' repository option. It will be redone later without this option once version 1.2.0 is released. Please do not use 'git' versions in production!}}
Line 612: Line 410:
|class="code"|-m
|class="code"|-m
|class="code"|mail.alteeve.ca:587
|class="code"|mail.alteeve.ca:587
|The name and port number of the mail server do we go to send email to.
|The server name and [[TCP]] port number of the mail server we route email to.
|-
|-
|Email user
|Email user
Line 643: Line 441:
|class="code"|dvd
|class="code"|dvd
|Tell Striker to setup RHEL as an install target and to use the files on the disc in the DVD drive.
|Tell Striker to setup RHEL as an install target and to use the files on the disc in the DVD drive.
{{note|1=If you didn't install off of a DVD, then change this to either:<br />
"<span class="code">--rhel-iso /path/to/local/rhel-server-6.6-x86_64-dvd.iso</span>"<br />
or<br />
"<span class="code">--rhel-uso <nowiki>http://some.url/rhel-server-6.6-x86_64-dvd.iso</nowiki></span>"<br />
Striker will copy your local copy or download the remote copy to the right location.}}
|-
|-
|RHN Credentials
|RHN Credentials
|class="code"|--rhn
|class="code"|--rhn
|class="code"|"user:secret"
|class="code"|"user:secret"
|The Red Hat Network user and password needed to register this machine with Red Hat.
|The Red Hat Network user and password needed to register this machine with Red Hat.<br />
{{note|1=Skip this if you're using CentOS.}}
|}
|}


Line 668: Line 472:
</syntaxhighlight>
</syntaxhighlight>


That was the hardest part, and it wasn't really hard, was it?
Done!


When you press <span class="code"><enter></span>, the install will start.
When you press <span class="code"><enter></span>, the install will start.
Line 832: Line 636:


{{warning|1=There are times when it might look like the install has hung or crashed. It almost certainly has not. Some of the output from the system buffers and it can take many minutes at times before you see output. '''Please be patient!'''}}
{{warning|1=There are times when it might look like the install has hung or crashed. It almost certainly has not. Some of the output from the system buffers and it can take many minutes at times before you see output. '''Please be patient!'''}}
{|class="wikitable" style="text-align: center; margin: auto;"
|<html><iframe width="320" height="240" src="//www.youtube.com/embed/B3lLYOGDsts" frameborder="0" allowfullscreen></iframe></html>
|-
|<span style="font-size:small; color: #7f7f7f;">"[http://www.jeopardy.com/ Final Jeopardy]" theme is<br />© 2014 Sony Corporation of America</span>
|}


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
Line 857: Line 655:


Checking for OS updates.
Checking for OS updates.
==============================================================================
</syntaxhighlight>
Loaded plugins: product-id, refresh-packagekit, rhnplugin, security,
              : subscription-manager
Cleaning repos: InstallMedia an-repo rhel-x86_64-server-6
Cleaning up Everything
Loaded plugins: product-id, refresh-packagekit, rhnplugin, security,
              : subscription-manager
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package at.x86_64 0:3.1.10-43.el6_2.1 will be updated
---> Package at.x86_64 0:3.1.10-44.el6_6.2 will be an update
---> Package bind-libs.x86_64 32:9.8.2-0.30.rc1.el6 will be updated
---> Package bind-libs.x86_64 32:9.8.2-0.30.rc1.el6_6.1 will be an update
---> Package bind-utils.x86_64 32:9.8.2-0.30.rc1.el6 will be updated
---> Package bind-utils.x86_64 32:9.8.2-0.30.rc1.el6_6.1 will be an update
---> Package curl.x86_64 0:7.19.7-37.el6_5.3 will be updated
---> Package curl.x86_64 0:7.19.7-40.el6_6.3 will be an update
---> Package cyrus-sasl.x86_64 0:2.1.23-15.el6 will be updated
---> Package cyrus-sasl.x86_64 0:2.1.23-15.el6_6.1 will be an update
---> Package cyrus-sasl-gssapi.x86_64 0:2.1.23-15.el6 will be updated
---> Package cyrus-sasl-gssapi.x86_64 0:2.1.23-15.el6_6.1 will be an update
---> Package cyrus-sasl-lib.x86_64 0:2.1.23-15.el6 will be updated
---> Package cyrus-sasl-lib.x86_64 0:2.1.23-15.el6_6.1 will be an update
---> Package cyrus-sasl-plain.x86_64 0:2.1.23-15.el6 will be updated
---> Package cyrus-sasl-plain.x86_64 0:2.1.23-15.el6_6.1 will be an update
---> Package device-mapper.x86_64 0:1.02.90-2.el6 will be updated
---> Package device-mapper.x86_64 0:1.02.90-2.el6_6.1 will be an update
---> Package device-mapper-event.x86_64 0:1.02.90-2.el6 will be updated
---> Package device-mapper-event.x86_64 0:1.02.90-2.el6_6.1 will be an update
---> Package device-mapper-event-libs.x86_64 0:1.02.90-2.el6 will be updated
---> Package device-mapper-event-libs.x86_64 0:1.02.90-2.el6_6.1 will be an update
---> Package device-mapper-libs.x86_64 0:1.02.90-2.el6 will be updated
---> Package device-mapper-libs.x86_64 0:1.02.90-2.el6_6.1 will be an update
---> Package firefox.x86_64 0:31.1.0-5.el6_5 will be updated
---> Package firefox.x86_64 0:31.3.0-3.el6_6 will be an update
---> Package initscripts.x86_64 0:9.03.46-1.el6 will be updated
---> Package initscripts.x86_64 0:9.03.46-1.el6_6.1 will be an update
---> Package iproute.x86_64 0:2.6.32-32.el6_5 will be updated
---> Package iproute.x86_64 0:2.6.32-33.el6_6 will be an update
---> Package jasper-libs.x86_64 0:1.900.1-15.el6_1.1 will be updated
---> Package jasper-libs.x86_64 0:1.900.1-16.el6_6.2 will be an update
---> Package java-1.6.0-openjdk.x86_64 1:1.6.0.0-11.1.13.4.el6 will be updated
---> Package java-1.6.0-openjdk.x86_64 1:1.6.0.33-1.13.5.1.el6_6 will be an update
---> Package java-1.7.0-openjdk.x86_64 1:1.7.0.65-2.5.1.2.el6_5 will be updated
---> Package java-1.7.0-openjdk.x86_64 1:1.7.0.71-2.5.3.2.el6_6 will be an update
---> Package kernel.x86_64 0:2.6.32-504.3.3.el6 will be installed
---> Package kernel-firmware.noarch 0:2.6.32-504.el6 will be updated
---> Package kernel-firmware.noarch 0:2.6.32-504.3.3.el6 will be an update
---> Package kernel-headers.x86_64 0:2.6.32-504.el6 will be updated
---> Package kernel-headers.x86_64 0:2.6.32-504.3.3.el6 will be an update
---> Package kpartx.x86_64 0:0.4.9-80.el6 will be updated
---> Package kpartx.x86_64 0:0.4.9-80.el6_6.1 will be an update
---> Package libXfont.x86_64 0:1.4.5-3.el6_5 will be updated
---> Package libXfont.x86_64 0:1.4.5-4.el6_6 will be an update
---> Package libcurl.x86_64 0:7.19.7-37.el6_5.3 will be updated
---> Package libcurl.x86_64 0:7.19.7-40.el6_6.3 will be an update
---> Package libipa_hbac.x86_64 0:1.11.6-30.el6 will be updated
---> Package libipa_hbac.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package libipa_hbac-python.x86_64 0:1.11.6-30.el6 will be updated
---> Package libipa_hbac-python.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package libsss_idmap.x86_64 0:1.11.6-30.el6 will be updated
---> Package libsss_idmap.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package libxml2.x86_64 0:2.7.6-14.el6_5.2 will be updated
---> Package libxml2.x86_64 0:2.7.6-17.el6_6.1 will be an update
---> Package libxml2-python.x86_64 0:2.7.6-14.el6_5.2 will be updated
---> Package libxml2-python.x86_64 0:2.7.6-17.el6_6.1 will be an update
---> Package lvm2.x86_64 0:2.02.111-2.el6 will be updated
---> Package lvm2.x86_64 0:2.02.111-2.el6_6.1 will be an update
---> Package lvm2-libs.x86_64 0:2.02.111-2.el6 will be updated
---> Package lvm2-libs.x86_64 0:2.02.111-2.el6_6.1 will be an update
---> Package mailx.x86_64 0:12.4-7.el6 will be updated
---> Package mailx.x86_64 0:12.4-8.el6_6 will be an update
---> Package mdadm.x86_64 0:3.3-6.el6 will be updated
---> Package mdadm.x86_64 0:3.3-6.el6_6.1 will be an update
---> Package net-snmp.x86_64 1:5.5-49.el6_5.3 will be updated
---> Package net-snmp.x86_64 1:5.5-50.el6_6.1 will be an update
---> Package net-snmp-libs.x86_64 1:5.5-49.el6_5.3 will be updated
---> Package net-snmp-libs.x86_64 1:5.5-50.el6_6.1 will be an update
---> Package nss.x86_64 0:3.16.1-14.el6 will be updated
---> Package nss.x86_64 0:3.16.2.3-3.el6_6 will be an update
---> Package nss-softokn.x86_64 0:3.14.3-17.el6 will be updated
---> Package nss-softokn.x86_64 0:3.14.3-18.el6_6 will be an update
---> Package nss-softokn-freebl.x86_64 0:3.14.3-17.el6 will be updated
---> Package nss-softokn-freebl.x86_64 0:3.14.3-18.el6_6 will be an update
---> Package nss-sysinit.x86_64 0:3.16.1-14.el6 will be updated
---> Package nss-sysinit.x86_64 0:3.16.2.3-3.el6_6 will be an update
---> Package nss-tools.x86_64 0:3.16.1-14.el6 will be updated
---> Package nss-tools.x86_64 0:3.16.2.3-3.el6_6 will be an update
---> Package nss-util.x86_64 0:3.16.1-3.el6 will be updated
---> Package nss-util.x86_64 0:3.16.2.3-2.el6_6 will be an update
---> Package ntp.x86_64 0:4.2.6p5-1.el6 will be updated
---> Package ntp.x86_64 0:4.2.6p5-2.el6_6 will be an update
---> Package ntpdate.x86_64 0:4.2.6p5-1.el6 will be updated
---> Package ntpdate.x86_64 0:4.2.6p5-2.el6_6 will be an update
---> Package openssh.x86_64 0:5.3p1-104.el6 will be updated
---> Package openssh.x86_64 0:5.3p1-104.el6_6.1 will be an update
---> Package openssh-askpass.x86_64 0:5.3p1-104.el6 will be updated
---> Package openssh-askpass.x86_64 0:5.3p1-104.el6_6.1 will be an update
---> Package openssh-clients.x86_64 0:5.3p1-104.el6 will be updated
---> Package openssh-clients.x86_64 0:5.3p1-104.el6_6.1 will be an update
---> Package openssh-server.x86_64 0:5.3p1-104.el6 will be updated
---> Package openssh-server.x86_64 0:5.3p1-104.el6_6.1 will be an update
---> Package openssl.x86_64 0:1.0.1e-30.el6 will be updated
---> Package openssl.x86_64 0:1.0.1e-30.el6_6.4 will be an update
---> Package perl.x86_64 4:5.10.1-136.el6 will be updated
---> Package perl.x86_64 4:5.10.1-136.el6_6.1 will be an update
---> Package perl-Archive-Extract.x86_64 1:0.38-136.el6 will be updated
---> Package perl-Archive-Extract.x86_64 1:0.38-136.el6_6.1 will be an update
---> Package perl-Archive-Tar.x86_64 0:1.58-136.el6 will be updated
---> Package perl-Archive-Tar.x86_64 0:1.58-136.el6_6.1 will be an update
---> Package perl-CGI.x86_64 0:3.51-136.el6 will be updated
---> Package perl-CGI.x86_64 0:3.51-136.el6_6.1 will be an update
---> Package perl-CPAN.x86_64 0:1.9402-136.el6 will be updated
---> Package perl-CPAN.x86_64 0:1.9402-136.el6_6.1 will be an update
---> Package perl-CPANPLUS.x86_64 0:0.88-136.el6 will be updated
---> Package perl-CPANPLUS.x86_64 0:0.88-136.el6_6.1 will be an update
---> Package perl-Compress-Raw-Bzip2.x86_64 0:2.021-136.el6 will be updated
---> Package perl-Compress-Raw-Bzip2.x86_64 0:2.021-136.el6_6.1 will be an update
---> Package perl-Compress-Raw-Zlib.x86_64 1:2.021-136.el6 will be updated
---> Package perl-Compress-Raw-Zlib.x86_64 1:2.021-136.el6_6.1 will be an update
---> Package perl-Compress-Zlib.x86_64 0:2.021-136.el6 will be updated
---> Package perl-Compress-Zlib.x86_64 0:2.021-136.el6_6.1 will be an update
---> Package perl-Digest-SHA.x86_64 1:5.47-136.el6 will be updated
---> Package perl-Digest-SHA.x86_64 1:5.47-136.el6_6.1 will be an update
---> Package perl-ExtUtils-CBuilder.x86_64 1:0.27-136.el6 will be updated
---> Package perl-ExtUtils-CBuilder.x86_64 1:0.27-136.el6_6.1 will be an update
---> Package perl-ExtUtils-Embed.x86_64 0:1.28-136.el6 will be updated
---> Package perl-ExtUtils-Embed.x86_64 0:1.28-136.el6_6.1 will be an update
---> Package perl-ExtUtils-MakeMaker.x86_64 0:6.55-136.el6 will be updated
---> Package perl-ExtUtils-MakeMaker.x86_64 0:6.55-136.el6_6.1 will be an update
---> Package perl-ExtUtils-ParseXS.x86_64 1:2.2003.0-136.el6 will be updated
---> Package perl-ExtUtils-ParseXS.x86_64 1:2.2003.0-136.el6_6.1 will be an update
---> Package perl-File-Fetch.x86_64 0:0.26-136.el6 will be updated
---> Package perl-File-Fetch.x86_64 0:0.26-136.el6_6.1 will be an update
---> Package perl-IO-Compress-Base.x86_64 0:2.021-136.el6 will be updated
---> Package perl-IO-Compress-Base.x86_64 0:2.021-136.el6_6.1 will be an update
---> Package perl-IO-Compress-Bzip2.x86_64 0:2.021-136.el6 will be updated
---> Package perl-IO-Compress-Bzip2.x86_64 0:2.021-136.el6_6.1 will be an update
---> Package perl-IO-Compress-Zlib.x86_64 0:2.021-136.el6 will be updated
---> Package perl-IO-Compress-Zlib.x86_64 0:2.021-136.el6_6.1 will be an update
---> Package perl-IO-Zlib.x86_64 1:1.09-136.el6 will be updated
---> Package perl-IO-Zlib.x86_64 1:1.09-136.el6_6.1 will be an update
---> Package perl-IPC-Cmd.x86_64 1:0.56-136.el6 will be updated
---> Package perl-IPC-Cmd.x86_64 1:0.56-136.el6_6.1 will be an update
---> Package perl-Locale-Maketext-Simple.x86_64 1:0.18-136.el6 will be updated
---> Package perl-Locale-Maketext-Simple.x86_64 1:0.18-136.el6_6.1 will be an update
---> Package perl-Log-Message.x86_64 1:0.02-136.el6 will be updated
---> Package perl-Log-Message.x86_64 1:0.02-136.el6_6.1 will be an update
---> Package perl-Log-Message-Simple.x86_64 0:0.04-136.el6 will be updated
---> Package perl-Log-Message-Simple.x86_64 0:0.04-136.el6_6.1 will be an update
---> Package perl-Module-Build.x86_64 1:0.3500-136.el6 will be updated
---> Package perl-Module-Build.x86_64 1:0.3500-136.el6_6.1 will be an update
---> Package perl-Module-CoreList.x86_64 0:2.18-136.el6 will be updated
---> Package perl-Module-CoreList.x86_64 0:2.18-136.el6_6.1 will be an update
---> Package perl-Module-Load.x86_64 1:0.16-136.el6 will be updated
---> Package perl-Module-Load.x86_64 1:0.16-136.el6_6.1 will be an update
---> Package perl-Module-Load-Conditional.x86_64 0:0.30-136.el6 will be updated
---> Package perl-Module-Load-Conditional.x86_64 0:0.30-136.el6_6.1 will be an update
---> Package perl-Module-Loaded.x86_64 1:0.02-136.el6 will be updated
---> Package perl-Module-Loaded.x86_64 1:0.02-136.el6_6.1 will be an update
---> Package perl-Module-Pluggable.x86_64 1:3.90-136.el6 will be updated
---> Package perl-Module-Pluggable.x86_64 1:3.90-136.el6_6.1 will be an update
---> Package perl-Object-Accessor.x86_64 1:0.34-136.el6 will be updated
---> Package perl-Object-Accessor.x86_64 1:0.34-136.el6_6.1 will be an update
---> Package perl-Package-Constants.x86_64 1:0.02-136.el6 will be updated
---> Package perl-Package-Constants.x86_64 1:0.02-136.el6_6.1 will be an update
---> Package perl-Params-Check.x86_64 1:0.26-136.el6 will be updated
---> Package perl-Params-Check.x86_64 1:0.26-136.el6_6.1 will be an update
---> Package perl-Parse-CPAN-Meta.x86_64 1:1.40-136.el6 will be updated
---> Package perl-Parse-CPAN-Meta.x86_64 1:1.40-136.el6_6.1 will be an update
---> Package perl-Pod-Escapes.x86_64 1:1.04-136.el6 will be updated
---> Package perl-Pod-Escapes.x86_64 1:1.04-136.el6_6.1 will be an update
---> Package perl-Pod-Simple.x86_64 1:3.13-136.el6 will be updated
---> Package perl-Pod-Simple.x86_64 1:3.13-136.el6_6.1 will be an update
---> Package perl-Term-UI.x86_64 0:0.20-136.el6 will be updated
---> Package perl-Term-UI.x86_64 0:0.20-136.el6_6.1 will be an update
---> Package perl-Test-Harness.x86_64 0:3.17-136.el6 will be updated
---> Package perl-Test-Harness.x86_64 0:3.17-136.el6_6.1 will be an update
---> Package perl-Test-Simple.x86_64 0:0.92-136.el6 will be updated
---> Package perl-Test-Simple.x86_64 0:0.92-136.el6_6.1 will be an update
---> Package perl-Time-HiRes.x86_64 4:1.9721-136.el6 will be updated
---> Package perl-Time-HiRes.x86_64 4:1.9721-136.el6_6.1 will be an update
---> Package perl-Time-Piece.x86_64 0:1.15-136.el6 will be updated
---> Package perl-Time-Piece.x86_64 0:1.15-136.el6_6.1 will be an update
---> Package perl-core.x86_64 0:5.10.1-136.el6 will be updated
---> Package perl-core.x86_64 0:5.10.1-136.el6_6.1 will be an update
---> Package perl-devel.x86_64 4:5.10.1-136.el6 will be updated
---> Package perl-devel.x86_64 4:5.10.1-136.el6_6.1 will be an update
---> Package perl-libs.x86_64 4:5.10.1-136.el6 will be updated
---> Package perl-libs.x86_64 4:5.10.1-136.el6_6.1 will be an update
---> Package perl-parent.x86_64 1:0.221-136.el6 will be updated
---> Package perl-parent.x86_64 1:0.221-136.el6_6.1 will be an update
---> Package perl-version.x86_64 3:0.77-136.el6 will be updated
---> Package perl-version.x86_64 3:0.77-136.el6_6.1 will be an update
---> Package policycoreutils.x86_64 0:2.0.83-19.47.el6 will be updated
---> Package policycoreutils.x86_64 0:2.0.83-19.47.el6_6.1 will be an update
---> Package python-sssdconfig.noarch 0:1.11.6-30.el6 will be updated
---> Package python-sssdconfig.noarch 0:1.11.6-30.el6_6.3 will be an update
---> Package ql2400-firmware.noarch 0:7.03.00-1.el6 will be updated
---> Package ql2400-firmware.noarch 0:7.03.00-1.el6_5 will be an update
---> Package ql2500-firmware.noarch 0:7.03.00-1.el6 will be updated
---> Package ql2500-firmware.noarch 0:7.03.00-1.el6_5 will be an update
---> Package rpm.x86_64 0:4.8.0-37.el6 will be updated
---> Package rpm.x86_64 0:4.8.0-38.el6_6 will be an update
---> Package rpm-libs.x86_64 0:4.8.0-37.el6 will be updated
---> Package rpm-libs.x86_64 0:4.8.0-38.el6_6 will be an update
---> Package rpm-python.x86_64 0:4.8.0-37.el6 will be updated
---> Package rpm-python.x86_64 0:4.8.0-38.el6_6 will be an update
---> Package rsyslog.x86_64 0:5.8.10-8.el6 will be updated
---> Package rsyslog.x86_64 0:5.8.10-10.el6_6 will be an update
---> Package scl-utils.x86_64 0:20120927-8.el6 will be updated
---> Package scl-utils.x86_64 0:20120927-23.el6_6 will be an update
---> Package selinux-policy.noarch 0:3.7.19-260.el6 will be updated
---> Package selinux-policy.noarch 0:3.7.19-260.el6_6.1 will be an update
---> Package selinux-policy-targeted.noarch 0:3.7.19-260.el6 will be updated
---> Package selinux-policy-targeted.noarch 0:3.7.19-260.el6_6.1 will be an update
---> Package sssd.x86_64 0:1.11.6-30.el6 will be updated
---> Package sssd.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package sssd-ad.x86_64 0:1.11.6-30.el6 will be updated
---> Package sssd-ad.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package sssd-client.x86_64 0:1.11.6-30.el6 will be updated
---> Package sssd-client.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package sssd-common.x86_64 0:1.11.6-30.el6 will be updated
---> Package sssd-common.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package sssd-common-pac.x86_64 0:1.11.6-30.el6 will be updated
---> Package sssd-common-pac.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package sssd-ipa.x86_64 0:1.11.6-30.el6 will be updated
---> Package sssd-ipa.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package sssd-krb5.x86_64 0:1.11.6-30.el6 will be updated
---> Package sssd-krb5.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package sssd-krb5-common.x86_64 0:1.11.6-30.el6 will be updated
---> Package sssd-krb5-common.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package sssd-ldap.x86_64 0:1.11.6-30.el6 will be updated
---> Package sssd-ldap.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package sssd-proxy.x86_64 0:1.11.6-30.el6 will be updated
---> Package sssd-proxy.x86_64 0:1.11.6-30.el6_6.3 will be an update
---> Package system-config-firewall.noarch 0:1.2.27-7.1.el6 will be updated
---> Package system-config-firewall.noarch 0:1.2.27-7.2.el6_6 will be an update
---> Package system-config-firewall-base.noarch 0:1.2.27-7.1.el6 will be updated
---> Package system-config-firewall-base.noarch 0:1.2.27-7.2.el6_6 will be an update
---> Package system-config-firewall-tui.noarch 0:1.2.27-7.1.el6 will be updated
---> Package system-config-firewall-tui.noarch 0:1.2.27-7.2.el6_6 will be an update
---> Package tzdata.noarch 0:2014g-1.el6 will be updated
---> Package tzdata.noarch 0:2014j-1.el6 will be an update
---> Package tzdata-java.noarch 0:2014g-1.el6 will be updated
---> Package tzdata-java.noarch 0:2014j-1.el6 will be an update
---> Package webkitgtk.x86_64 0:1.4.3-8.el6 will be updated
---> Package webkitgtk.x86_64 0:1.4.3-9.el6_6 will be an update
---> Package wget.x86_64 0:1.12-5.el6 will be updated
---> Package wget.x86_64 0:1.12-5.el6_6.1 will be an update
---> Package wpa_supplicant.x86_64 1:0.7.3-4.el6 will be updated
---> Package wpa_supplicant.x86_64 1:0.7.3-4.el6_3 will be an update
---> Package xorg-x11-server-Xorg.x86_64 0:1.15.0-22.el6 will be updated
---> Package xorg-x11-server-Xorg.x86_64 0:1.15.0-25.el6_6 will be an update
---> Package xorg-x11-server-common.x86_64 0:1.15.0-22.el6 will be updated
---> Package xorg-x11-server-common.x86_64 0:1.15.0-25.el6_6 will be an update
---> Package yum-rhn-plugin.noarch 0:0.9.1-50.el6 will be updated
---> Package yum-rhn-plugin.noarch 0:0.9.1-52.el6_6 will be an update
--> Finished Dependency Resolution


Dependencies Resolved
{|class="wikitable" style="text-align: center;"
|<html><iframe width="320" height="240" src="//www.youtube.com/embed/B3lLYOGDsts" frameborder="0" allowfullscreen></iframe></html>
|-
|<span style="font-size:small; color: #7f7f7f;">"[http://www.jeopardy.com/ Final Jeopardy]" theme is<br />© 2014 Sony Corporation of America</span>
|}
 
-=] Some time and '''much''' output later ... [=-
 
<syntaxhighlight lang="text">
Setting root user's password.
- Output: [Changing password for user root.]
- Output: [passwd: all authentication tokens updated successfully.]
Done!
 
##############################################################################
# NOTE: Your 'root' user password is now the same as the Striker user's      #
#      password you just specified. If you want a different password,      #
#      change it now with 'passwd'!                                        #
##############################################################################
 
Writing the new udev rules file: [/etc/udev/rules.d/70-persistent-net.rules]
Done.
 
Deleting old network configuration files:
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth0]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth3]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth1]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth2]
Done.
 
Writing new network configuration files.
 
[ Warning ] - Please confirm the network settings match what you expect and
              then reboot this machine.
 
Installation of Striker is complete!
</syntaxhighlight>


================================================================================
'''*Ding*'''
Package                Arch  Version              Repository            Size
================================================================================
Installing:
kernel                  x86_64 2.6.32-504.3.3.el6  rhel-x86_64-server-6  29 M
Updating:
at                      x86_64 3.1.10-44.el6_6.2    rhel-x86_64-server-6  61 k
bind-libs              x86_64 32:9.8.2-0.30.rc1.el6_6.1
                                                    rhel-x86_64-server-6 884 k
bind-utils              x86_64 32:9.8.2-0.30.rc1.el6_6.1
                                                    rhel-x86_64-server-6 185 k
curl                    x86_64 7.19.7-40.el6_6.3    rhel-x86_64-server-6 194 k
cyrus-sasl              x86_64 2.1.23-15.el6_6.1    rhel-x86_64-server-6  78 k
cyrus-sasl-gssapi      x86_64 2.1.23-15.el6_6.1    rhel-x86_64-server-6  34 k
cyrus-sasl-lib          x86_64 2.1.23-15.el6_6.1    rhel-x86_64-server-6 136 k
cyrus-sasl-plain        x86_64 2.1.23-15.el6_6.1    rhel-x86_64-server-6  31 k
device-mapper          x86_64 1.02.90-2.el6_6.1    rhel-x86_64-server-6 173 k
device-mapper-event    x86_64 1.02.90-2.el6_6.1    rhel-x86_64-server-6 122 k
device-mapper-event-libs
                        x86_64 1.02.90-2.el6_6.1    rhel-x86_64-server-6 116 k
device-mapper-libs      x86_64 1.02.90-2.el6_6.1    rhel-x86_64-server-6 218 k
firefox                x86_64 31.3.0-3.el6_6      rhel-x86_64-server-6  60 M
initscripts            x86_64 9.03.46-1.el6_6.1    rhel-x86_64-server-6 943 k
iproute                x86_64 2.6.32-33.el6_6      rhel-x86_64-server-6 365 k
jasper-libs            x86_64 1.900.1-16.el6_6.2  rhel-x86_64-server-6 137 k
java-1.6.0-openjdk      x86_64 1:1.6.0.33-1.13.5.1.el6_6
                                                    rhel-x86_64-server-6  41 M
java-1.7.0-openjdk      x86_64 1:1.7.0.71-2.5.3.2.el6_6
                                                    rhel-x86_64-server-6  26 M
kernel-firmware        noarch 2.6.32-504.3.3.el6  rhel-x86_64-server-6  14 M
kernel-headers          x86_64 2.6.32-504.3.3.el6  rhel-x86_64-server-6 3.3 M
kpartx                  x86_64 0.4.9-80.el6_6.1    rhel-x86_64-server-6  62 k
libXfont                x86_64 1.4.5-4.el6_6        rhel-x86_64-server-6 137 k
libcurl                x86_64 7.19.7-40.el6_6.3    rhel-x86_64-server-6 166 k
libipa_hbac            x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6  94 k
libipa_hbac-python      x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6  89 k
libsss_idmap            x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6  99 k
libxml2                x86_64 2.7.6-17.el6_6.1    rhel-x86_64-server-6 801 k
libxml2-python          x86_64 2.7.6-17.el6_6.1    rhel-x86_64-server-6 322 k
lvm2                    x86_64 2.02.111-2.el6_6.1  rhel-x86_64-server-6 816 k
lvm2-libs              x86_64 2.02.111-2.el6_6.1  rhel-x86_64-server-6 901 k
mailx                  x86_64 12.4-8.el6_6        rhel-x86_64-server-6 235 k
mdadm                  x86_64 3.3-6.el6_6.1        rhel-x86_64-server-6 342 k
net-snmp                x86_64 1:5.5-50.el6_6.1    rhel-x86_64-server-6 306 k
net-snmp-libs          x86_64 1:5.5-50.el6_6.1    rhel-x86_64-server-6 1.5 M
nss                    x86_64 3.16.2.3-3.el6_6    rhel-x86_64-server-6 834 k
nss-softokn            x86_64 3.14.3-18.el6_6      rhel-x86_64-server-6 261 k
nss-softokn-freebl      x86_64 3.14.3-18.el6_6      rhel-x86_64-server-6 164 k
nss-sysinit            x86_64 3.16.2.3-3.el6_6    rhel-x86_64-server-6  44 k
nss-tools              x86_64 3.16.2.3-3.el6_6    rhel-x86_64-server-6 427 k
nss-util                x86_64 3.16.2.3-2.el6_6    rhel-x86_64-server-6  66 k
ntp                    x86_64 4.2.6p5-2.el6_6      rhel-x86_64-server-6 593 k
ntpdate                x86_64 4.2.6p5-2.el6_6      rhel-x86_64-server-6  75 k
openssh                x86_64 5.3p1-104.el6_6.1    rhel-x86_64-server-6 272 k
openssh-askpass        x86_64 5.3p1-104.el6_6.1    rhel-x86_64-server-6  57 k
openssh-clients        x86_64 5.3p1-104.el6_6.1    rhel-x86_64-server-6 437 k
openssh-server          x86_64 5.3p1-104.el6_6.1    rhel-x86_64-server-6 321 k
openssl                x86_64 1.0.1e-30.el6_6.4    rhel-x86_64-server-6 1.5 M
perl                    x86_64 4:5.10.1-136.el6_6.1 rhel-x86_64-server-6  10 M
perl-Archive-Extract    x86_64 1:0.38-136.el6_6.1  rhel-x86_64-server-6  41 k
perl-Archive-Tar        x86_64 1.58-136.el6_6.1    rhel-x86_64-server-6  73 k
perl-CGI                x86_64 3.51-136.el6_6.1    rhel-x86_64-server-6 209 k
perl-CPAN              x86_64 1.9402-136.el6_6.1  rhel-x86_64-server-6 246 k
perl-CPANPLUS          x86_64 0.88-136.el6_6.1    rhel-x86_64-server-6 307 k
perl-Compress-Raw-Bzip2 x86_64 2.021-136.el6_6.1    rhel-x86_64-server-6  46 k
perl-Compress-Raw-Zlib  x86_64 1:2.021-136.el6_6.1  rhel-x86_64-server-6  69 k
perl-Compress-Zlib      x86_64 2.021-136.el6_6.1    rhel-x86_64-server-6  45 k
perl-Digest-SHA        x86_64 1:5.47-136.el6_6.1  rhel-x86_64-server-6  64 k
perl-ExtUtils-CBuilder  x86_64 1:0.27-136.el6_6.1  rhel-x86_64-server-6  48 k
perl-ExtUtils-Embed    x86_64 1.28-136.el6_6.1    rhel-x86_64-server-6  31 k
perl-ExtUtils-MakeMaker x86_64 6.55-136.el6_6.1    rhel-x86_64-server-6 293 k
perl-ExtUtils-ParseXS  x86_64 1:2.2003.0-136.el6_6.1
                                                    rhel-x86_64-server-6  45 k
perl-File-Fetch        x86_64 0.26-136.el6_6.1    rhel-x86_64-server-6  41 k
perl-IO-Compress-Base  x86_64 2.021-136.el6_6.1    rhel-x86_64-server-6  69 k
perl-IO-Compress-Bzip2  x86_64 2.021-136.el6_6.1    rhel-x86_64-server-6  48 k
perl-IO-Compress-Zlib  x86_64 2.021-136.el6_6.1    rhel-x86_64-server-6 135 k
perl-IO-Zlib            x86_64 1:1.09-136.el6_6.1  rhel-x86_64-server-6  33 k
perl-IPC-Cmd            x86_64 1:0.56-136.el6_6.1  rhel-x86_64-server-6  46 k
perl-Locale-Maketext-Simple
                        x86_64 1:0.18-136.el6_6.1  rhel-x86_64-server-6  31 k
perl-Log-Message        x86_64 1:0.02-136.el6_6.1  rhel-x86_64-server-6  46 k
perl-Log-Message-Simple x86_64 0.04-136.el6_6.1    rhel-x86_64-server-6  28 k
perl-Module-Build      x86_64 1:0.3500-136.el6_6.1 rhel-x86_64-server-6 230 k
perl-Module-CoreList    x86_64 2.18-136.el6_6.1    rhel-x86_64-server-6  65 k
perl-Module-Load        x86_64 1:0.16-136.el6_6.1  rhel-x86_64-server-6  28 k
perl-Module-Load-Conditional
                        x86_64 0.30-136.el6_6.1    rhel-x86_64-server-6  34 k
perl-Module-Loaded      x86_64 1:0.02-136.el6_6.1  rhel-x86_64-server-6  27 k
perl-Module-Pluggable  x86_64 1:3.90-136.el6_6.1  rhel-x86_64-server-6  40 k
perl-Object-Accessor    x86_64 1:0.34-136.el6_6.1  rhel-x86_64-server-6  37 k
perl-Package-Constants  x86_64 1:0.02-136.el6_6.1  rhel-x86_64-server-6  27 k
perl-Params-Check      x86_64 1:0.26-136.el6_6.1  rhel-x86_64-server-6  35 k
perl-Parse-CPAN-Meta    x86_64 1:1.40-136.el6_6.1  rhel-x86_64-server-6  29 k
perl-Pod-Escapes        x86_64 1:1.04-136.el6_6.1  rhel-x86_64-server-6  32 k
perl-Pod-Simple        x86_64 1:3.13-136.el6_6.1  rhel-x86_64-server-6 212 k
perl-Term-UI            x86_64 0.20-136.el6_6.1    rhel-x86_64-server-6  39 k
perl-Test-Harness      x86_64 3.17-136.el6_6.1    rhel-x86_64-server-6 231 k
perl-Test-Simple        x86_64 0.92-136.el6_6.1    rhel-x86_64-server-6 112 k
perl-Time-HiRes        x86_64 4:1.9721-136.el6_6.1 rhel-x86_64-server-6  48 k
perl-Time-Piece        x86_64 1.15-136.el6_6.1    rhel-x86_64-server-6  46 k
perl-core              x86_64 5.10.1-136.el6_6.1  rhel-x86_64-server-6  23 k
perl-devel              x86_64 4:5.10.1-136.el6_6.1 rhel-x86_64-server-6 423 k
perl-libs              x86_64 4:5.10.1-136.el6_6.1 rhel-x86_64-server-6 578 k
perl-parent            x86_64 1:0.221-136.el6_6.1  rhel-x86_64-server-6  27 k
perl-version            x86_64 3:0.77-136.el6_6.1  rhel-x86_64-server-6  51 k
policycoreutils        x86_64 2.0.83-19.47.el6_6.1 rhel-x86_64-server-6 680 k
python-sssdconfig      noarch 1.11.6-30.el6_6.3    rhel-x86_64-server-6 121 k
ql2400-firmware        noarch 7.03.00-1.el6_5      rhel-x86_64-server-6  94 k
ql2500-firmware        noarch 7.03.00-1.el6_5      rhel-x86_64-server-6 118 k
rpm                    x86_64 4.8.0-38.el6_6      rhel-x86_64-server-6 902 k
rpm-libs                x86_64 4.8.0-38.el6_6      rhel-x86_64-server-6 313 k
rpm-python              x86_64 4.8.0-38.el6_6      rhel-x86_64-server-6  57 k
rsyslog                x86_64 5.8.10-10.el6_6      rhel-x86_64-server-6 650 k
scl-utils              x86_64 20120927-23.el6_6    rhel-x86_64-server-6  22 k
selinux-policy          noarch 3.7.19-260.el6_6.1  rhel-x86_64-server-6 863 k
selinux-policy-targeted noarch 3.7.19-260.el6_6.1  rhel-x86_64-server-6 3.0 M
sssd                    x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6  89 k
sssd-ad                x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6 143 k
sssd-client            x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6 129 k
sssd-common            x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6 832 k
sssd-common-pac        x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6 121 k
sssd-ipa                x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6 196 k
sssd-krb5              x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6 111 k
sssd-krb5-common        x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6 160 k
sssd-ldap              x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6 167 k
sssd-proxy              x86_64 1.11.6-30.el6_6.3    rhel-x86_64-server-6 117 k
system-config-firewall  noarch 1.2.27-7.2.el6_6    rhel-x86_64-server-6 119 k
system-config-firewall-base
                        noarch 1.2.27-7.2.el6_6    rhel-x86_64-server-6 434 k
system-config-firewall-tui
                        noarch 1.2.27-7.2.el6_6    rhel-x86_64-server-6  39 k
tzdata                  noarch 2014j-1.el6          rhel-x86_64-server-6 444 k
tzdata-java            noarch 2014j-1.el6          rhel-x86_64-server-6 175 k
webkitgtk              x86_64 1.4.3-9.el6_6        rhel-x86_64-server-6 6.3 M
wget                    x86_64 1.12-5.el6_6.1      rhel-x86_64-server-6 483 k
wpa_supplicant          x86_64 1:0.7.3-4.el6_3      rhel-x86_64-server-6 365 k
xorg-x11-server-Xorg    x86_64 1.15.0-25.el6_6      rhel-x86_64-server-6 1.3 M
xorg-x11-server-common  x86_64 1.15.0-25.el6_6      rhel-x86_64-server-6  49 k
yum-rhn-plugin          noarch 0.9.1-52.el6_6      rhel-x86_64-server-6  80 k


Transaction Summary
Striker is done!
================================================================================
Install      1 Package(s)
Upgrade    124 Package(s)


Total download size: 221 M
The output above was truncated as it is thousands of lines long. If you want to see the full output though, you can:
Downloading Packages:
--------------------------------------------------------------------------------
Total                                          1.7 MB/s | 221 MB    02:08   
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Importing GPG key 0xFD431D51:
Userid : Red Hat, Inc. (release key 2) <security@redhat.com>
Package: redhat-release-server-6Server-6.6.0.2.el6.x86_64 (@anaconda-RedHatEnterpriseLinux-201409260744.x86_64/6.6)
From  : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Importing GPG key 0x2FA658E0:
Userid : Red Hat, Inc. (auxiliary key) <security@redhat.com>
Package: redhat-release-server-6Server-6.6.0.2.el6.x86_64 (@anaconda-RedHatEnterpriseLinux-201409260744.x86_64/6.6)
From  : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating  : openssl-1.0.1e-30.el6_6.4.x86_64                          1/249
  Updating  : nss-util-3.16.2.3-2.el6_6.x86_64                          2/249
  Updating  : device-mapper-1.02.90-2.el6_6.1.x86_64                    3/249
  Updating  : device-mapper-libs-1.02.90-2.el6_6.1.x86_64                4/249
  Updating  : 1:perl-Pod-Escapes-1.04-136.el6_6.1.x86_64                5/249
  Updating  : 1:perl-Pod-Simple-3.13-136.el6_6.1.x86_64                  6/249
  Updating  : 4:perl-libs-5.10.1-136.el6_6.1.x86_64                      7/249
  Updating  : 1:perl-Module-Pluggable-3.90-136.el6_6.1.x86_64            8/249
  Updating  : 3:perl-version-0.77-136.el6_6.1.x86_64                    9/249
  Updating  : 4:perl-5.10.1-136.el6_6.1.x86_64                          10/249
  Updating  : 1:perl-Locale-Maketext-Simple-0.18-136.el6_6.1.x86_64    11/249
  Updating  : 1:perl-Params-Check-0.26-136.el6_6.1.x86_64              12/249
  Updating  : 1:perl-ExtUtils-ParseXS-2.2003.0-136.el6_6.1.x86_64      13/249
  Updating  : perl-Test-Harness-3.17-136.el6_6.1.x86_64                14/249
  Updating  : 4:perl-devel-5.10.1-136.el6_6.1.x86_64                    15/249
  Updating  : perl-ExtUtils-MakeMaker-6.55-136.el6_6.1.x86_64          16/249
  Updating  : libsss_idmap-1.11.6-30.el6_6.3.x86_64                    17/249
  Updating  : 1:perl-Module-Load-0.16-136.el6_6.1.x86_64                18/249
  Updating  : perl-Module-Load-Conditional-0.30-136.el6_6.1.x86_64      19/249
  Updating  : 1:perl-IPC-Cmd-0.56-136.el6_6.1.x86_64                    20/249
  Updating  : 1:perl-Log-Message-0.02-136.el6_6.1.x86_64                21/249
  Updating  : perl-IO-Compress-Base-2.021-136.el6_6.1.x86_64            22/249
  Updating  : libxml2-2.7.6-17.el6_6.1.x86_64                          23/249
  Updating  : cyrus-sasl-lib-2.1.23-15.el6_6.1.x86_64                  24/249
  Updating  : 1:perl-Package-Constants-0.02-136.el6_6.1.x86_64          25/249
  Updating  : 1:perl-Compress-Raw-Zlib-2.021-136.el6_6.1.x86_64        26/249
  Updating  : device-mapper-event-libs-1.02.90-2.el6_6.1.x86_64        27/249
  Updating  : perl-IO-Compress-Zlib-2.021-136.el6_6.1.x86_64            28/249
  Updating  : perl-Compress-Zlib-2.021-136.el6_6.1.x86_64              29/249
  Updating  : 1:perl-IO-Zlib-1.09-136.el6_6.1.x86_64                    30/249
  Updating  : perl-Archive-Tar-1.58-136.el6_6.1.x86_64                  31/249
  Updating  : perl-Log-Message-Simple-0.04-136.el6_6.1.x86_64          32/249
  Updating  : perl-Term-UI-0.20-136.el6_6.1.x86_64                      33/249
  Updating  : perl-File-Fetch-0.26-136.el6_6.1.x86_64                  34/249
  Updating  : 1:perl-Archive-Extract-0.38-136.el6_6.1.x86_64            35/249
  Updating  : 1:perl-ExtUtils-CBuilder-0.27-136.el6_6.1.x86_64          36/249
  Updating  : 1:perl-Object-Accessor-0.34-136.el6_6.1.x86_64            37/249
  Updating  : perl-Compress-Raw-Bzip2-2.021-136.el6_6.1.x86_64          38/249
  Updating  : perl-Module-CoreList-2.18-136.el6_6.1.x86_64              39/249
  Updating  : 1:perl-Module-Loaded-0.02-136.el6_6.1.x86_64              40/249
  Updating  : 1:perl-Digest-SHA-5.47-136.el6_6.1.x86_64                41/249
  Updating  : tzdata-java-2014j-1.el6.noarch                            42/249
  Updating  : nss-softokn-freebl-3.14.3-18.el6_6.x86_64                43/249
  Updating  : nss-softokn-3.14.3-18.el6_6.x86_64                        44/249
  Updating  : nss-3.16.2.3-3.el6_6.x86_64                              45/249
  Updating  : nss-sysinit-3.16.2.3-3.el6_6.x86_64                      46/249
  Updating  : system-config-firewall-base-1.2.27-7.2.el6_6.noarch      47/249
  Updating  : libipa_hbac-1.11.6-30.el6_6.3.x86_64                      48/249
  Updating  : system-config-firewall-tui-1.2.27-7.2.el6_6.noarch        49/249
  Updating  : libcurl-7.19.7-40.el6_6.3.x86_64                          50/249
  Updating  : curl-7.19.7-40.el6_6.3.x86_64                            51/249
  Updating  : rpm-4.8.0-38.el6_6.x86_64                                52/249
  Updating  : rpm-libs-4.8.0-38.el6_6.x86_64                            53/249
  Updating  : 1:net-snmp-libs-5.5-50.el6_6.1.x86_64                    54/249
  Updating  : 1:java-1.6.0-openjdk-1.6.0.33-1.13.5.1.el6_6.x86_64      55/249
  Updating  : perl-CPAN-1.9402-136.el6_6.1.x86_64                      56/249
  Updating  : perl-IO-Compress-Bzip2-2.021-136.el6_6.1.x86_64          57/249
  Updating  : 1:perl-Module-Build-0.3500-136.el6_6.1.x86_64            58/249
  Updating  : device-mapper-event-1.02.90-2.el6_6.1.x86_64              59/249
  Updating  : lvm2-libs-2.02.111-2.el6_6.1.x86_64                      60/249
  Updating  : cyrus-sasl-gssapi-2.1.23-15.el6_6.1.x86_64                61/249
  Updating  : 32:bind-libs-9.8.2-0.30.rc1.el6_6.1.x86_64                62/249
  Updating  : 32:bind-utils-9.8.2-0.30.rc1.el6_6.1.x86_64              63/249
  Updating  : perl-ExtUtils-Embed-1.28-136.el6_6.1.x86_64              64/249
  Updating  : perl-Test-Simple-0.92-136.el6_6.1.x86_64                  65/249
  Updating  : 1:perl-parent-0.221-136.el6_6.1.x86_64                    66/249
  Updating  : perl-CGI-3.51-136.el6_6.1.x86_64                          67/249
  Updating  : 1:perl-Parse-CPAN-Meta-1.40-136.el6_6.1.x86_64            68/249
  Updating  : perl-CPANPLUS-0.88-136.el6_6.1.x86_64                    69/249
  Updating  : 4:perl-Time-HiRes-1.9721-136.el6_6.1.x86_64              70/249
  Updating  : perl-Time-Piece-1.15-136.el6_6.1.x86_64                  71/249
  Updating  : xorg-x11-server-common-1.15.0-25.el6_6.x86_64            72/249
  Updating  : python-sssdconfig-1.11.6-30.el6_6.3.noarch                73/249
  Updating  : iproute-2.6.32-33.el6_6.x86_64                            74/249
  Updating  : initscripts-9.03.46-1.el6_6.1.x86_64                      75/249
  Updating  : openssh-5.3p1-104.el6_6.1.x86_64                          76/249
  Updating  : policycoreutils-2.0.83-19.47.el6_6.1.x86_64              77/249
  Updating  : selinux-policy-3.7.19-260.el6_6.1.noarch                  78/249
  Updating  : ntpdate-4.2.6p5-2.el6_6.x86_64                            79/249
  Updating  : sssd-client-1.11.6-30.el6_6.3.x86_64                      80/249
  Updating  : sssd-common-1.11.6-30.el6_6.3.x86_64                      81/249
  Updating  : sssd-krb5-common-1.11.6-30.el6_6.3.x86_64                82/249
  Updating  : sssd-common-pac-1.11.6-30.el6_6.3.x86_64                  83/249
  Updating  : sssd-ad-1.11.6-30.el6_6.3.x86_64                          84/249
  Updating  : sssd-ipa-1.11.6-30.el6_6.3.x86_64                        85/249
  Updating  : sssd-krb5-1.11.6-30.el6_6.3.x86_64                        86/249
  Updating  : sssd-ldap-1.11.6-30.el6_6.3.x86_64                        87/249
  Updating  : sssd-proxy-1.11.6-30.el6_6.3.x86_64                      88/249
  Updating  : kernel-firmware-2.6.32-504.3.3.el6.noarch                89/249
  Updating  : libXfont-1.4.5-4.el6_6.x86_64                            90/249
  Updating  : xorg-x11-server-Xorg-1.15.0-25.el6_6.x86_64              91/249
  Installing : kernel-2.6.32-504.3.3.el6.x86_64                          92/249
  Updating  : sssd-1.11.6-30.el6_6.3.x86_64                            93/249
  Updating  : ntp-4.2.6p5-2.el6_6.x86_64                                94/249
  Updating  : selinux-policy-targeted-3.7.19-260.el6_6.1.noarch        95/249
  Updating  : openssh-server-5.3p1-104.el6_6.1.x86_64                  96/249
  Updating  : openssh-askpass-5.3p1-104.el6_6.1.x86_64                  97/249
  Updating  : openssh-clients-5.3p1-104.el6_6.1.x86_64                  98/249
  Updating  : cyrus-sasl-2.1.23-15.el6_6.1.x86_64                      99/249
  Updating  : mdadm-3.3-6.el6_6.1.x86_64                              100/249
  Updating  : rsyslog-5.8.10-10.el6_6.x86_64                          101/249
  Updating  : 1:net-snmp-5.5-50.el6_6.1.x86_64                        102/249
  Updating  : perl-core-5.10.1-136.el6_6.1.x86_64                      103/249
  Updating  : lvm2-2.02.111-2.el6_6.1.x86_64                          104/249
  Updating  : 1:java-1.7.0-openjdk-1.7.0.71-2.5.3.2.el6_6.x86_64      105/249
  Updating  : rpm-python-4.8.0-38.el6_6.x86_64                        106/249
  Updating  : system-config-firewall-1.2.27-7.2.el6_6.noarch          107/249
  Updating  : libipa_hbac-python-1.11.6-30.el6_6.3.x86_64              108/249
  Updating  : firefox-31.3.0-3.el6_6.x86_64                            109/249
  Updating  : nss-tools-3.16.2.3-3.el6_6.x86_64                        110/249
  Updating  : mailx-12.4-8.el6_6.x86_64                                111/249
  Updating  : cyrus-sasl-plain-2.1.23-15.el6_6.1.x86_64                112/249
  Updating  : libxml2-python-2.7.6-17.el6_6.1.x86_64                  113/249
  Updating  : webkitgtk-1.4.3-9.el6_6.x86_64                          114/249
  Updating  : kpartx-0.4.9-80.el6_6.1.x86_64                          115/249
  Updating  : wget-1.12-5.el6_6.1.x86_64                              116/249
  Updating  : 1:wpa_supplicant-0.7.3-4.el6_3.x86_64                    117/249
  Updating  : tzdata-2014j-1.el6.noarch                                118/249
  Updating  : at-3.1.10-44.el6_6.2.x86_64                              119/249
  Updating  : jasper-libs-1.900.1-16.el6_6.2.x86_64                    120/249
  Updating  : kernel-headers-2.6.32-504.3.3.el6.x86_64                121/249
  Updating  : ql2400-firmware-7.03.00-1.el6_5.noarch                  122/249
  Updating  : scl-utils-20120927-23.el6_6.x86_64                      123/249
  Updating  : yum-rhn-plugin-0.9.1-52.el6_6.noarch                    124/249
  Updating  : ql2500-firmware-7.03.00-1.el6_5.noarch                  125/249
  Cleanup    : perl-core-5.10.1-136.el6.x86_64                          126/249
  Cleanup    : perl-CPANPLUS-0.88-136.el6.x86_64                        127/249
  Cleanup    : sssd-1.11.6-30.el6.x86_64                                128/249
  Cleanup    : 1:net-snmp-5.5-49.el6_5.3.x86_64                        129/249
  Cleanup    : 1:perl-Module-Build-0.3500-136.el6.x86_64                130/249
  Cleanup    : perl-Archive-Tar-1.58-136.el6.x86_64                    131/249
  Cleanup    : 1:perl-Archive-Extract-0.38-136.el6.x86_64              132/249
  Cleanup    : perl-File-Fetch-0.26-136.el6.x86_64                      133/249
  Cleanup    : 1:perl-IPC-Cmd-0.56-136.el6.x86_64                      134/249
  Cleanup    : perl-Module-Load-Conditional-0.30-136.el6.x86_64        135/249
  Cleanup    : perl-Term-UI-0.20-136.el6.x86_64                        136/249
  Cleanup    : perl-IO-Compress-Bzip2-2.021-136.el6.x86_64              137/249
  Cleanup    : perl-CPAN-1.9402-136.el6.x86_64                          138/249
  Cleanup    : sssd-ad-1.11.6-30.el6.x86_64                            139/249
  Cleanup    : sssd-ipa-1.11.6-30.el6.x86_64                            140/249
  Cleanup    : sssd-common-pac-1.11.6-30.el6.x86_64                    141/249
  Cleanup    : nss-tools-3.16.1-14.el6.x86_64                          142/249
  Cleanup    : perl-Log-Message-Simple-0.04-136.el6.x86_64              143/249
  Cleanup    : 1:perl-Log-Message-0.02-136.el6.x86_64                  144/249
  Cleanup    : 32:bind-utils-9.8.2-0.30.rc1.el6.x86_64                  145/249
  Cleanup    : 1:net-snmp-libs-5.5-49.el6_5.3.x86_64                    146/249
  Cleanup    : sssd-proxy-1.11.6-30.el6.x86_64                          147/249
  Cleanup    : openssh-server-5.3p1-104.el6.x86_64                      148/249
  Cleanup    : cyrus-sasl-2.1.23-15.el6.x86_64                          149/249
  Cleanup    : 1:perl-IO-Zlib-1.09-136.el6.x86_64                      150/249
  Cleanup    : perl-Compress-Zlib-2.021-136.el6.x86_64                  151/249
  Cleanup    : perl-IO-Compress-Zlib-2.021-136.el6.x86_64              152/249
  Cleanup    : perl-Module-CoreList-2.18-136.el6.x86_64                153/249
  Cleanup    : 1:perl-Object-Accessor-0.34-136.el6.x86_64              154/249
  Cleanup    : 1:perl-Params-Check-0.26-136.el6.x86_64                  155/249
  Cleanup    : firefox-31.1.0-5.el6_5.x86_64                            156/249
  Cleanup    : 1:perl-ExtUtils-CBuilder-0.27-136.el6.x86_64            157/249
  Cleanup    : perl-ExtUtils-Embed-1.28-136.el6.x86_64                  158/249
  Cleanup    : perl-Test-Simple-0.92-136.el6.x86_64                    159/249
  Cleanup    : perl-Test-Harness-3.17-136.el6.x86_64                    160/249
  Cleanup    : 1:perl-ExtUtils-ParseXS-2.2003.0-136.el6.x86_64          161/249
  Cleanup    : 4:perl-devel-5.10.1-136.el6.x86_64                      162/249
  Cleanup    : perl-ExtUtils-MakeMaker-6.55-136.el6.x86_64              163/249
  Cleanup    : selinux-policy-targeted-3.7.19-260.el6.noarch            164/249
  Cleanup    : system-config-firewall-1.2.27-7.1.el6.noarch            165/249
  Cleanup    : system-config-firewall-tui-1.2.27-7.1.el6.noarch        166/249
  Cleanup    : selinux-policy-3.7.19-260.el6.noarch                    167/249
  Cleanup    : 1:perl-Locale-Maketext-Simple-0.18-136.el6.x86_64        168/249
  Cleanup    : perl-IO-Compress-Base-2.021-136.el6.x86_64              169/249
  Cleanup    : 1:perl-Module-Load-0.16-136.el6.x86_64                  170/249
  Cleanup    : 1:perl-Package-Constants-0.02-136.el6.x86_64            171/249
  Cleanup    : 1:perl-Module-Loaded-0.02-136.el6.x86_64                172/249
  Cleanup    : 1:perl-Parse-CPAN-Meta-1.40-136.el6.x86_64              173/249
  Cleanup    : perl-CGI-3.51-136.el6.x86_64                            174/249
  Cleanup    : 1:perl-parent-0.221-136.el6.x86_64                      175/249
  Cleanup    : system-config-firewall-base-1.2.27-7.1.el6.noarch        176/249
  Cleanup    : python-sssdconfig-1.11.6-30.el6.noarch                  177/249
  Cleanup    : tzdata-2014g-1.el6.noarch                                178/249
  Cleanup    : kernel-headers-2.6.32-504.el6.x86_64                    179/249
  Cleanup    : ql2400-firmware-7.03.00-1.el6.noarch                    180/249
  Cleanup    : yum-rhn-plugin-0.9.1-50.el6.noarch                      181/249
  Cleanup    : kernel-firmware-2.6.32-504.el6.noarch                    182/249
  Cleanup    : ql2500-firmware-7.03.00-1.el6.noarch                    183/249
  Cleanup    : sssd-krb5-1.11.6-30.el6.x86_64                          184/249
  Cleanup    : sssd-ldap-1.11.6-30.el6.x86_64                          185/249
  Cleanup    : openssh-clients-5.3p1-104.el6.x86_64                    186/249
  Cleanup    : xorg-x11-server-Xorg-1.15.0-22.el6.x86_64                187/249
  Cleanup    : 1:java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64      188/249
  Cleanup    : rpm-python-4.8.0-37.el6.x86_64                          189/249
  Cleanup    : lvm2-2.02.111-2.el6.x86_64                              190/249
  Cleanup    : lvm2-libs-2.02.111-2.el6.x86_64                          191/249
  Cleanup    : device-mapper-event-1.02.90-2.el6.x86_64                192/249
  Cleanup    : ntp-4.2.6p5-1.el6.x86_64                                193/249
  Cleanup    : ntpdate-4.2.6p5-1.el6.x86_64                            194/249
  Cleanup    : sssd-krb5-common-1.11.6-30.el6.x86_64                    195/249
  Cleanup    : sssd-common-1.11.6-30.el6.x86_64                        196/249
  Cleanup    : policycoreutils-2.0.83-19.47.el6.x86_64                  197/249
  Cleanup    : rpm-4.8.0-37.el6.x86_64                                  198/249
  Cleanup    : rpm-libs-4.8.0-37.el6.x86_64                            199/249
  Cleanup    : curl-7.19.7-37.el6_5.3.x86_64                            200/249
  Cleanup    : libcurl-7.19.7-37.el6_5.3.x86_64                        201/249
  Cleanup    : 32:bind-libs-9.8.2-0.30.rc1.el6.x86_64                  202/249
  Cleanup    : cyrus-sasl-gssapi-2.1.23-15.el6.x86_64                  203/249
  Cleanup    : device-mapper-event-libs-1.02.90-2.el6.x86_64            204/249
  Cleanup    : 1:java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64        205/249
  Cleanup    : 1:perl-Compress-Raw-Zlib-2.021-136.el6.x86_64            206/249
  Cleanup    : 1:perl-Digest-SHA-5.47-136.el6.x86_64                    207/249
  Cleanup    : perl-Compress-Raw-Bzip2-2.021-136.el6.x86_64            208/249
  Cleanup    : perl-Time-Piece-1.15-136.el6.x86_64                      209/249
  Cleanup    : 4:perl-Time-HiRes-1.9721-136.el6.x86_64                  210/249
  Cleanup    : 1:perl-Module-Pluggable-3.90-136.el6.x86_64              211/249
  Cleanup    : 1:perl-Pod-Escapes-1.04-136.el6.x86_64                  212/249
  Cleanup    : 1:perl-Pod-Simple-3.13-136.el6.x86_64                    213/249
  Cleanup    : 3:perl-version-0.77-136.el6.x86_64                      214/249
  Cleanup    : 4:perl-libs-5.10.1-136.el6.x86_64                        215/249
  Cleanup    : 4:perl-5.10.1-136.el6.x86_64                            216/249
  Cleanup    : mailx-12.4-7.el6.x86_64                                  217/249
  Cleanup    : libipa_hbac-python-1.11.6-30.el6.x86_64                  218/249
  Cleanup    : 1:wpa_supplicant-0.7.3-4.el6.x86_64                      219/249
  Cleanup    : wget-1.12-5.el6.x86_64                                  220/249
  Cleanup    : openssh-askpass-5.3p1-104.el6.x86_64                    221/249
  Cleanup    : openssh-5.3p1-104.el6.x86_64                            222/249
  Cleanup    : nss-sysinit-3.16.1-14.el6.x86_64                        223/249
  Cleanup    : nss-3.16.1-14.el6.x86_64                                224/249
  Cleanup    : nss-softokn-3.14.3-17.el6.x86_64                        225/249
  Cleanup    : rsyslog-5.8.10-8.el6.x86_64                              226/249
  Cleanup    : cyrus-sasl-plain-2.1.23-15.el6.x86_64                    227/249
  Cleanup    : webkitgtk-1.4.3-8.el6.x86_64                            228/249
  Cleanup    : mdadm-3.3-6.el6.x86_64                                  229/249
  Cleanup    : initscripts-9.03.46-1.el6.x86_64                        230/249
  Cleanup    : libxml2-python-2.7.6-14.el6_5.2.x86_64                  231/249
  Cleanup    : kpartx-0.4.9-80.el6.x86_64                              232/249
  Cleanup    : tzdata-java-2014g-1.el6.noarch                          233/249
  Cleanup    : xorg-x11-server-common-1.15.0-22.el6.x86_64              234/249
  Cleanup    : device-mapper-1.02.90-2.el6.x86_64                      235/249
  Cleanup    : device-mapper-libs-1.02.90-2.el6.x86_64                  236/249
  Cleanup    : libxml2-2.7.6-14.el6_5.2.x86_64                          237/249
  Cleanup    : iproute-2.6.32-32.el6_5.x86_64                          238/249
  Cleanup    : cyrus-sasl-lib-2.1.23-15.el6.x86_64                      239/249
  Cleanup    : nss-util-3.16.1-3.el6.x86_64                            240/249
  Cleanup    : nss-softokn-freebl-3.14.3-17.el6.x86_64                  241/249
  Cleanup    : openssl-1.0.1e-30.el6.x86_64                            242/249
  Cleanup    : libipa_hbac-1.11.6-30.el6.x86_64                        243/249
  Cleanup    : libsss_idmap-1.11.6-30.el6.x86_64                        244/249
  Cleanup    : sssd-client-1.11.6-30.el6.x86_64                        245/249
  Cleanup    : libXfont-1.4.5-3.el6_5.x86_64                            246/249
  Cleanup    : at-3.1.10-43.el6_2.1.x86_64                              247/249
  Cleanup    : jasper-libs-1.900.1-15.el6_1.1.x86_64                    248/249
  Cleanup    : scl-utils-20120927-8.el6.x86_64                          249/249
  Verifying  : cyrus-sasl-2.1.23-15.el6_6.1.x86_64                        1/249
  Verifying  : rpm-libs-4.8.0-38.el6_6.x86_64                            2/249
  Verifying  : 1:perl-Module-Load-0.16-136.el6_6.1.x86_64                3/249
  Verifying  : perl-IO-Compress-Base-2.021-136.el6_6.1.x86_64            4/249
  Verifying  : nss-util-3.16.2.3-2.el6_6.x86_64                          5/249
  Verifying  : perl-ExtUtils-MakeMaker-6.55-136.el6_6.1.x86_64            6/249
  Verifying  : nss-3.16.2.3-3.el6_6.x86_64                                7/249
  Verifying  : 1:perl-ExtUtils-ParseXS-2.2003.0-136.el6_6.1.x86_64        8/249
  Verifying  : perl-Term-UI-0.20-136.el6_6.1.x86_64                      9/249
  Verifying  : 3:perl-version-0.77-136.el6_6.1.x86_64                    10/249
  Verifying  : device-mapper-libs-1.02.90-2.el6_6.1.x86_64              11/249
  Verifying  : perl-Compress-Raw-Bzip2-2.021-136.el6_6.1.x86_64          12/249
  Verifying  : libipa_hbac-1.11.6-30.el6_6.3.x86_64                      13/249
  Verifying  : perl-CPAN-1.9402-136.el6_6.1.x86_64                      14/249
  Verifying  : ql2500-firmware-7.03.00-1.el6_5.noarch                    15/249
  Verifying  : ntp-4.2.6p5-2.el6_6.x86_64                                16/249
  Verifying  : perl-IO-Compress-Bzip2-2.021-136.el6_6.1.x86_64          17/249
  Verifying  : openssh-server-5.3p1-104.el6_6.1.x86_64                  18/249
  Verifying  : perl-Archive-Tar-1.58-136.el6_6.1.x86_64                  19/249
  Verifying  : kpartx-0.4.9-80.el6_6.1.x86_64                            20/249
  Verifying  : libcurl-7.19.7-40.el6_6.3.x86_64                          21/249
  Verifying  : 1:perl-parent-0.221-136.el6_6.1.x86_64                    22/249
  Verifying  : libxml2-python-2.7.6-17.el6_6.1.x86_64                    23/249
  Verifying  : ntpdate-4.2.6p5-2.el6_6.x86_64                            24/249
  Verifying  : mdadm-3.3-6.el6_6.1.x86_64                                25/249
  Verifying  : 4:perl-5.10.1-136.el6_6.1.x86_64                          26/249
  Verifying  : perl-Compress-Zlib-2.021-136.el6_6.1.x86_64              27/249
  Verifying  : cyrus-sasl-lib-2.1.23-15.el6_6.1.x86_64                  28/249
  Verifying  : 1:perl-Pod-Simple-3.13-136.el6_6.1.x86_64                29/249
  Verifying  : system-config-firewall-base-1.2.27-7.2.el6_6.noarch      30/249
  Verifying  : sssd-krb5-1.11.6-30.el6_6.3.x86_64                        31/249
  Verifying  : libXfont-1.4.5-4.el6_6.x86_64                            32/249
  Verifying  : perl-Module-Load-Conditional-0.30-136.el6_6.1.x86_64      33/249
  Verifying  : webkitgtk-1.4.3-9.el6_6.x86_64                            34/249
  Verifying  : system-config-firewall-tui-1.2.27-7.2.el6_6.noarch        35/249
  Verifying  : 32:bind-utils-9.8.2-0.30.rc1.el6_6.1.x86_64              36/249
  Verifying  : perl-Module-CoreList-2.18-136.el6_6.1.x86_64              37/249
  Verifying  : cyrus-sasl-plain-2.1.23-15.el6_6.1.x86_64                38/249
  Verifying  : sssd-1.11.6-30.el6_6.3.x86_64                            39/249
  Verifying  : libxml2-2.7.6-17.el6_6.1.x86_64                          40/249
  Verifying  : 1:net-snmp-libs-5.5-50.el6_6.1.x86_64                    41/249
  Verifying  : device-mapper-event-1.02.90-2.el6_6.1.x86_64              42/249
  Verifying  : rsyslog-5.8.10-10.el6_6.x86_64                            43/249
  Verifying  : perl-File-Fetch-0.26-136.el6_6.1.x86_64                  44/249
  Verifying  : perl-Log-Message-Simple-0.04-136.el6_6.1.x86_64          45/249
  Verifying  : perl-CGI-3.51-136.el6_6.1.x86_64                          46/249
  Verifying  : kernel-firmware-2.6.32-504.3.3.el6.noarch                47/249
  Verifying  : 32:bind-libs-9.8.2-0.30.rc1.el6_6.1.x86_64                48/249
  Verifying  : 1:perl-Locale-Maketext-Simple-0.18-136.el6_6.1.x86_64    49/249
  Verifying  : 1:net-snmp-5.5-50.el6_6.1.x86_64                          50/249
  Verifying  : 1:perl-Package-Constants-0.02-136.el6_6.1.x86_64          51/249
  Verifying  : yum-rhn-plugin-0.9.1-52.el6_6.noarch                      52/249
  Verifying  : kernel-2.6.32-504.3.3.el6.x86_64                          53/249
  Verifying  : rpm-4.8.0-38.el6_6.x86_64                                54/249
  Verifying  : openssh-askpass-5.3p1-104.el6_6.1.x86_64                  55/249
  Verifying  : libsss_idmap-1.11.6-30.el6_6.3.x86_64                    56/249
  Verifying  : nss-softokn-freebl-3.14.3-18.el6_6.x86_64                57/249
  Verifying  : 1:perl-Parse-CPAN-Meta-1.40-136.el6_6.1.x86_64            58/249
  Verifying  : scl-utils-20120927-23.el6_6.x86_64                        59/249
  Verifying  : ql2400-firmware-7.03.00-1.el6_5.noarch                    60/249
  Verifying  : 1:perl-IPC-Cmd-0.56-136.el6_6.1.x86_64                    61/249
  Verifying  : 1:perl-Module-Build-0.3500-136.el6_6.1.x86_64            62/249
  Verifying  : 1:java-1.6.0-openjdk-1.6.0.33-1.13.5.1.el6_6.x86_64      63/249
  Verifying  : nss-softokn-3.14.3-18.el6_6.x86_64                        64/249
  Verifying  : 1:perl-Pod-Escapes-1.04-136.el6_6.1.x86_64                65/249
  Verifying  : lvm2-2.02.111-2.el6_6.1.x86_64                            66/249
  Verifying  : 1:perl-Module-Loaded-0.02-136.el6_6.1.x86_64              67/249
  Verifying  : sssd-common-pac-1.11.6-30.el6_6.3.x86_64                  68/249
  Verifying  : initscripts-9.03.46-1.el6_6.1.x86_64                      69/249
  Verifying  : kernel-headers-2.6.32-504.3.3.el6.x86_64                  70/249
  Verifying  : device-mapper-event-libs-1.02.90-2.el6_6.1.x86_64        71/249
  Verifying  : sssd-proxy-1.11.6-30.el6_6.3.x86_64                      72/249
  Verifying  : cyrus-sasl-gssapi-2.1.23-15.el6_6.1.x86_64                73/249
  Verifying  : wget-1.12-5.el6_6.1.x86_64                                74/249
  Verifying  : 1:wpa_supplicant-0.7.3-4.el6_3.x86_64                    75/249
  Verifying  : jasper-libs-1.900.1-16.el6_6.2.x86_64                    76/249
  Verifying  : system-config-firewall-1.2.27-7.2.el6_6.noarch            77/249
  Verifying  : 1:perl-Compress-Raw-Zlib-2.021-136.el6_6.1.x86_64        78/249
  Verifying  : rpm-python-4.8.0-38.el6_6.x86_64                          79/249
  Verifying  : curl-7.19.7-40.el6_6.3.x86_64                            80/249
  Verifying  : sssd-client-1.11.6-30.el6_6.3.x86_64                      81/249
  Verifying  : 4:perl-devel-5.10.1-136.el6_6.1.x86_64                    82/249
  Verifying  : iproute-2.6.32-33.el6_6.x86_64                            83/249
  Verifying  : at-3.1.10-44.el6_6.2.x86_64                              84/249
  Verifying  : 1:java-1.7.0-openjdk-1.7.0.71-2.5.3.2.el6_6.x86_64        85/249
  Verifying  : device-mapper-1.02.90-2.el6_6.1.x86_64                    86/249
  Verifying  : sssd-ad-1.11.6-30.el6_6.3.x86_64                          87/249
  Verifying  : 4:perl-Time-HiRes-1.9721-136.el6_6.1.x86_64              88/249
  Verifying  : perl-ExtUtils-Embed-1.28-136.el6_6.1.x86_64              89/249
  Verifying  : libipa_hbac-python-1.11.6-30.el6_6.3.x86_64              90/249
  Verifying  : openssl-1.0.1e-30.el6_6.4.x86_64                          91/249
  Verifying  : perl-Test-Harness-3.17-136.el6_6.1.x86_64                92/249
  Verifying  : 1:perl-Log-Message-0.02-136.el6_6.1.x86_64                93/249
  Verifying  : 1:perl-Archive-Extract-0.38-136.el6_6.1.x86_64            94/249
  Verifying  : firefox-31.3.0-3.el6_6.x86_64                            95/249
  Verifying  : 1:perl-ExtUtils-CBuilder-0.27-136.el6_6.1.x86_64          96/249
  Verifying  : 1:perl-Object-Accessor-0.34-136.el6_6.1.x86_64            97/249
  Verifying  : nss-sysinit-3.16.2.3-3.el6_6.x86_64                      98/249
  Verifying  : perl-core-5.10.1-136.el6_6.1.x86_64                      99/249
  Verifying  : nss-tools-3.16.2.3-3.el6_6.x86_64                        100/249
  Verifying  : xorg-x11-server-Xorg-1.15.0-25.el6_6.x86_64              101/249
  Verifying  : sssd-common-1.11.6-30.el6_6.3.x86_64                    102/249
  Verifying  : policycoreutils-2.0.83-19.47.el6_6.1.x86_64              103/249
  Verifying  : python-sssdconfig-1.11.6-30.el6_6.3.noarch              104/249
  Verifying  : perl-CPANPLUS-0.88-136.el6_6.1.x86_64                    105/249
  Verifying  : openssh-5.3p1-104.el6_6.1.x86_64                        106/249
  Verifying  : openssh-clients-5.3p1-104.el6_6.1.x86_64                107/249
  Verifying  : selinux-policy-targeted-3.7.19-260.el6_6.1.noarch        108/249
  Verifying  : tzdata-java-2014j-1.el6.noarch                          109/249
  Verifying  : xorg-x11-server-common-1.15.0-25.el6_6.x86_64            110/249
  Verifying  : sssd-ldap-1.11.6-30.el6_6.3.x86_64                      111/249
  Verifying  : sssd-ipa-1.11.6-30.el6_6.3.x86_64                        112/249
  Verifying  : mailx-12.4-8.el6_6.x86_64                                113/249
  Verifying  : selinux-policy-3.7.19-260.el6_6.1.noarch                114/249
  Verifying  : lvm2-libs-2.02.111-2.el6_6.1.x86_64                      115/249
  Verifying  : perl-Time-Piece-1.15-136.el6_6.1.x86_64                  116/249
  Verifying  : 4:perl-libs-5.10.1-136.el6_6.1.x86_64                    117/249
  Verifying  : sssd-krb5-common-1.11.6-30.el6_6.3.x86_64                118/249
  Verifying  : 1:perl-Module-Pluggable-3.90-136.el6_6.1.x86_64          119/249
  Verifying  : perl-Test-Simple-0.92-136.el6_6.1.x86_64                120/249
  Verifying  : perl-IO-Compress-Zlib-2.021-136.el6_6.1.x86_64          121/249
  Verifying  : tzdata-2014j-1.el6.noarch                                122/249
  Verifying  : 1:perl-Digest-SHA-5.47-136.el6_6.1.x86_64                123/249
  Verifying  : 1:perl-Params-Check-0.26-136.el6_6.1.x86_64              124/249
  Verifying  : 1:perl-IO-Zlib-1.09-136.el6_6.1.x86_64                  125/249
  Verifying  : 1:perl-Log-Message-0.02-136.el6.x86_64                  126/249
  Verifying  : sssd-client-1.11.6-30.el6.x86_64                        127/249
  Verifying  : libxml2-python-2.7.6-14.el6_5.2.x86_64                  128/249
  Verifying  : scl-utils-20120927-8.el6.x86_64                          129/249
  Verifying  : perl-Compress-Zlib-2.021-136.el6.x86_64                  130/249
  Verifying  : ql2400-firmware-7.03.00-1.el6.noarch                    131/249
  Verifying  : at-3.1.10-43.el6_2.1.x86_64                              132/249
  Verifying  : 1:wpa_supplicant-0.7.3-4.el6.x86_64                      133/249
  Verifying  : yum-rhn-plugin-0.9.1-50.el6.noarch                      134/249
  Verifying  : rpm-libs-4.8.0-37.el6.x86_64                            135/249
  Verifying  : system-config-firewall-tui-1.2.27-7.1.el6.noarch        136/249
  Verifying  : perl-Test-Simple-0.92-136.el6.x86_64                    137/249
  Verifying  : perl-IO-Compress-Zlib-2.021-136.el6.x86_64              138/249
  Verifying  : kpartx-0.4.9-80.el6.x86_64                              139/249
  Verifying  : 1:perl-IO-Zlib-1.09-136.el6.x86_64                      140/249
  Verifying  : 1:perl-Params-Check-0.26-136.el6.x86_64                  141/249
  Verifying  : openssh-5.3p1-104.el6.x86_64                            142/249
  Verifying  : openssh-clients-5.3p1-104.el6.x86_64                    143/249
  Verifying  : perl-Module-CoreList-2.18-136.el6.x86_64                144/249
  Verifying  : device-mapper-event-libs-1.02.90-2.el6.x86_64            145/249
  Verifying  : 1:perl-Module-Load-0.16-136.el6.x86_64                  146/249
  Verifying  : firefox-31.1.0-5.el6_5.x86_64                            147/249
  Verifying  : openssh-askpass-5.3p1-104.el6.x86_64                    148/249
  Verifying  : ql2500-firmware-7.03.00-1.el6.noarch                    149/249
  Verifying  : sssd-ipa-1.11.6-30.el6.x86_64                            150/249
  Verifying  : cyrus-sasl-2.1.23-15.el6.x86_64                          151/249
  Verifying  : lvm2-2.02.111-2.el6.x86_64                              152/249
  Verifying  : perl-File-Fetch-0.26-136.el6.x86_64                      153/249
  Verifying  : ntpdate-4.2.6p5-1.el6.x86_64                            154/249
  Verifying  : perl-Log-Message-Simple-0.04-136.el6.x86_64              155/249
  Verifying  : device-mapper-event-1.02.90-2.el6.x86_64                156/249
  Verifying  : 1:perl-Pod-Escapes-1.04-136.el6.x86_64                  157/249
  Verifying  : perl-CGI-3.51-136.el6.x86_64                            158/249
  Verifying  : system-config-firewall-1.2.27-7.1.el6.noarch            159/249
  Verifying  : perl-CPAN-1.9402-136.el6.x86_64                          160/249
  Verifying  : nss-util-3.16.1-3.el6.x86_64                            161/249
  Verifying  : 4:perl-5.10.1-136.el6.x86_64                            162/249
  Verifying  : ntp-4.2.6p5-1.el6.x86_64                                163/249
  Verifying  : 1:java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64      164/249
  Verifying  : 1:perl-Locale-Maketext-Simple-0.18-136.el6.x86_64        165/249
  Verifying  : 1:perl-Package-Constants-0.02-136.el6.x86_64            166/249
  Verifying  : kernel-firmware-2.6.32-504.el6.noarch                    167/249
  Verifying  : sssd-common-1.11.6-30.el6.x86_64                        168/249
  Verifying  : iproute-2.6.32-32.el6_5.x86_64                          169/249
  Verifying  : wget-1.12-5.el6.x86_64                                  170/249
  Verifying  : xorg-x11-server-common-1.15.0-22.el6.x86_64              171/249
  Verifying  : 4:perl-devel-5.10.1-136.el6.x86_64                      172/249
  Verifying  : rsyslog-5.8.10-8.el6.x86_64                              173/249
  Verifying  : 1:perl-Parse-CPAN-Meta-1.40-136.el6.x86_64              174/249
  Verifying  : 1:perl-Pod-Simple-3.13-136.el6.x86_64                    175/249
  Verifying  : perl-Time-Piece-1.15-136.el6.x86_64                      176/249
  Verifying  : sssd-ldap-1.11.6-30.el6.x86_64                          177/249
  Verifying  : 1:perl-IPC-Cmd-0.56-136.el6.x86_64                      178/249
  Verifying  : 32:bind-libs-9.8.2-0.30.rc1.el6.x86_64                  179/249
  Verifying  : nss-tools-3.16.1-14.el6.x86_64                          180/249
  Verifying  : nss-softokn-freebl-3.14.3-17.el6.x86_64                  181/249
  Verifying  : perl-Module-Load-Conditional-0.30-136.el6.x86_64        182/249
  Verifying  : perl-Term-UI-0.20-136.el6.x86_64                        183/249
  Verifying  : device-mapper-libs-1.02.90-2.el6.x86_64                  184/249
  Verifying  : mailx-12.4-7.el6.x86_64                                  185/249
  Verifying  : policycoreutils-2.0.83-19.47.el6.x86_64                  186/249
  Verifying  : sssd-krb5-common-1.11.6-30.el6.x86_64                    187/249
  Verifying  : 1:perl-ExtUtils-CBuilder-0.27-136.el6.x86_64            188/249
  Verifying  : libxml2-2.7.6-14.el6_5.2.x86_64                          189/249
  Verifying  : curl-7.19.7-37.el6_5.3.x86_64                            190/249
  Verifying  : libXfont-1.4.5-3.el6_5.x86_64                            191/249
  Verifying  : 1:net-snmp-libs-5.5-49.el6_5.3.x86_64                    192/249
  Verifying  : sssd-common-pac-1.11.6-30.el6.x86_64                    193/249
  Verifying  : perl-ExtUtils-Embed-1.28-136.el6.x86_64                  194/249
  Verifying  : perl-IO-Compress-Base-2.021-136.el6.x86_64              195/249
  Verifying  : 1:perl-Compress-Raw-Zlib-2.021-136.el6.x86_64            196/249
  Verifying  : sssd-1.11.6-30.el6.x86_64                                197/249
  Verifying  : sssd-ad-1.11.6-30.el6.x86_64                            198/249
  Verifying  : rpm-4.8.0-37.el6.x86_64                                  199/249
  Verifying  : jasper-libs-1.900.1-15.el6_1.1.x86_64                    200/249
  Verifying  : openssl-1.0.1e-30.el6.x86_64                            201/249
  Verifying  : tzdata-java-2014g-1.el6.noarch                          202/249
  Verifying  : 1:perl-parent-0.221-136.el6.x86_64                      203/249
  Verifying  : tzdata-2014g-1.el6.noarch                                204/249
  Verifying  : sssd-krb5-1.11.6-30.el6.x86_64                          205/249
  Verifying  : perl-Test-Harness-3.17-136.el6.x86_64                    206/249
  Verifying  : libsss_idmap-1.11.6-30.el6.x86_64                        207/249
  Verifying  : cyrus-sasl-gssapi-2.1.23-15.el6.x86_64                  208/249
  Verifying  : sssd-proxy-1.11.6-30.el6.x86_64                          209/249
  Verifying  : nss-softokn-3.14.3-17.el6.x86_64                        210/249
  Verifying  : perl-ExtUtils-MakeMaker-6.55-136.el6.x86_64              211/249
  Verifying  : xorg-x11-server-Xorg-1.15.0-22.el6.x86_64                212/249
  Verifying  : 1:perl-Digest-SHA-5.47-136.el6.x86_64                    213/249
  Verifying  : libcurl-7.19.7-37.el6_5.3.x86_64                        214/249
  Verifying  : 1:perl-Module-Loaded-0.02-136.el6.x86_64                215/249
  Verifying  : 4:perl-libs-5.10.1-136.el6.x86_64                        216/249
  Verifying  : cyrus-sasl-lib-2.1.23-15.el6.x86_64                      217/249
  Verifying  : perl-Compress-Raw-Bzip2-2.021-136.el6.x86_64            218/249
  Verifying  : cyrus-sasl-plain-2.1.23-15.el6.x86_64                    219/249
  Verifying  : 1:perl-Module-Build-0.3500-136.el6.x86_64                220/249
  Verifying  : nss-sysinit-3.16.1-14.el6.x86_64                        221/249
  Verifying  : 1:perl-Module-Pluggable-3.90-136.el6.x86_64              222/249
  Verifying  : 1:perl-Object-Accessor-0.34-136.el6.x86_64              223/249
  Verifying  : 32:bind-utils-9.8.2-0.30.rc1.el6.x86_64                  224/249
  Verifying  : 1:java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64        225/249
  Verifying  : selinux-policy-targeted-3.7.19-260.el6.noarch            226/249
  Verifying  : libipa_hbac-python-1.11.6-30.el6.x86_64                  227/249
  Verifying  : openssh-server-5.3p1-104.el6.x86_64                      228/249
  Verifying  : rpm-python-4.8.0-37.el6.x86_64                          229/249
  Verifying  : webkitgtk-1.4.3-8.el6.x86_64                            230/249
  Verifying  : selinux-policy-3.7.19-260.el6.noarch                    231/249
  Verifying  : mdadm-3.3-6.el6.x86_64                                  232/249
  Verifying  : nss-3.16.1-14.el6.x86_64                                233/249
  Verifying  : perl-core-5.10.1-136.el6.x86_64                          234/249
  Verifying  : 1:perl-ExtUtils-ParseXS-2.2003.0-136.el6.x86_64          235/249
  Verifying  : system-config-firewall-base-1.2.27-7.1.el6.noarch        236/249
  Verifying  : 3:perl-version-0.77-136.el6.x86_64                      237/249
  Verifying  : 4:perl-Time-HiRes-1.9721-136.el6.x86_64                  238/249
  Verifying  : device-mapper-1.02.90-2.el6.x86_64                      239/249
  Verifying  : 1:perl-Archive-Extract-0.38-136.el6.x86_64              240/249
  Verifying  : perl-IO-Compress-Bzip2-2.021-136.el6.x86_64              241/249
  Verifying  : initscripts-9.03.46-1.el6.x86_64                        242/249
  Verifying  : libipa_hbac-1.11.6-30.el6.x86_64                        243/249
  Verifying  : perl-Archive-Tar-1.58-136.el6.x86_64                    244/249
  Verifying  : python-sssdconfig-1.11.6-30.el6.noarch                  245/249
  Verifying  : 1:net-snmp-5.5-49.el6_5.3.x86_64                        246/249
  Verifying  : lvm2-libs-2.02.111-2.el6.x86_64                          247/249
  Verifying  : kernel-headers-2.6.32-504.el6.x86_64                    248/249
  Verifying  : perl-CPANPLUS-0.88-136.el6.x86_64                        249/249


Installed:
* [[Anvil! m2 Tutorial - Sample Install Output|''Anvil!'' m2 Tutorial - Sample Install Output]]
  kernel.x86_64 0:2.6.32-504.3.3.el6                                           


Updated:
Reboot the system and your new Striker dashboard will be ready to use!
  at.x86_64 0:3.1.10-44.el6_6.2                                               
  bind-libs.x86_64 32:9.8.2-0.30.rc1.el6_6.1                                   
  bind-utils.x86_64 32:9.8.2-0.30.rc1.el6_6.1                                 
  curl.x86_64 0:7.19.7-40.el6_6.3                                             
  cyrus-sasl.x86_64 0:2.1.23-15.el6_6.1                                       
  cyrus-sasl-gssapi.x86_64 0:2.1.23-15.el6_6.1                                 
  cyrus-sasl-lib.x86_64 0:2.1.23-15.el6_6.1                                   
  cyrus-sasl-plain.x86_64 0:2.1.23-15.el6_6.1                                 
  device-mapper.x86_64 0:1.02.90-2.el6_6.1                                     
  device-mapper-event.x86_64 0:1.02.90-2.el6_6.1                               
  device-mapper-event-libs.x86_64 0:1.02.90-2.el6_6.1                         
  device-mapper-libs.x86_64 0:1.02.90-2.el6_6.1                               
  firefox.x86_64 0:31.3.0-3.el6_6                                             
  initscripts.x86_64 0:9.03.46-1.el6_6.1                                       
  iproute.x86_64 0:2.6.32-33.el6_6                                             
  jasper-libs.x86_64 0:1.900.1-16.el6_6.2                                     
  java-1.6.0-openjdk.x86_64 1:1.6.0.33-1.13.5.1.el6_6                         
  java-1.7.0-openjdk.x86_64 1:1.7.0.71-2.5.3.2.el6_6                           
  kernel-firmware.noarch 0:2.6.32-504.3.3.el6                                 
  kernel-headers.x86_64 0:2.6.32-504.3.3.el6                                   
  kpartx.x86_64 0:0.4.9-80.el6_6.1                                             
  libXfont.x86_64 0:1.4.5-4.el6_6                                             
  libcurl.x86_64 0:7.19.7-40.el6_6.3                                           
  libipa_hbac.x86_64 0:1.11.6-30.el6_6.3                                       
  libipa_hbac-python.x86_64 0:1.11.6-30.el6_6.3                               
  libsss_idmap.x86_64 0:1.11.6-30.el6_6.3                                     
  libxml2.x86_64 0:2.7.6-17.el6_6.1                                           
  libxml2-python.x86_64 0:2.7.6-17.el6_6.1                                     
  lvm2.x86_64 0:2.02.111-2.el6_6.1                                             
  lvm2-libs.x86_64 0:2.02.111-2.el6_6.1                                       
  mailx.x86_64 0:12.4-8.el6_6                                                 
  mdadm.x86_64 0:3.3-6.el6_6.1                                                 
  net-snmp.x86_64 1:5.5-50.el6_6.1                                             
  net-snmp-libs.x86_64 1:5.5-50.el6_6.1                                       
  nss.x86_64 0:3.16.2.3-3.el6_6                                               
  nss-softokn.x86_64 0:3.14.3-18.el6_6                                         
  nss-softokn-freebl.x86_64 0:3.14.3-18.el6_6                                 
  nss-sysinit.x86_64 0:3.16.2.3-3.el6_6                                       
  nss-tools.x86_64 0:3.16.2.3-3.el6_6                                         
  nss-util.x86_64 0:3.16.2.3-2.el6_6                                           
  ntp.x86_64 0:4.2.6p5-2.el6_6                                                 
  ntpdate.x86_64 0:4.2.6p5-2.el6_6                                             
  openssh.x86_64 0:5.3p1-104.el6_6.1                                           
  openssh-askpass.x86_64 0:5.3p1-104.el6_6.1                                   
  openssh-clients.x86_64 0:5.3p1-104.el6_6.1                                   
  openssh-server.x86_64 0:5.3p1-104.el6_6.1                                   
  openssl.x86_64 0:1.0.1e-30.el6_6.4                                           
  perl.x86_64 4:5.10.1-136.el6_6.1                                             
  perl-Archive-Extract.x86_64 1:0.38-136.el6_6.1                               
  perl-Archive-Tar.x86_64 0:1.58-136.el6_6.1                                   
  perl-CGI.x86_64 0:3.51-136.el6_6.1                                           
  perl-CPAN.x86_64 0:1.9402-136.el6_6.1                                       
  perl-CPANPLUS.x86_64 0:0.88-136.el6_6.1                                     
  perl-Compress-Raw-Bzip2.x86_64 0:2.021-136.el6_6.1                           
  perl-Compress-Raw-Zlib.x86_64 1:2.021-136.el6_6.1                           
  perl-Compress-Zlib.x86_64 0:2.021-136.el6_6.1                               
  perl-Digest-SHA.x86_64 1:5.47-136.el6_6.1                                   
  perl-ExtUtils-CBuilder.x86_64 1:0.27-136.el6_6.1                             
  perl-ExtUtils-Embed.x86_64 0:1.28-136.el6_6.1                               
  perl-ExtUtils-MakeMaker.x86_64 0:6.55-136.el6_6.1                           
  perl-ExtUtils-ParseXS.x86_64 1:2.2003.0-136.el6_6.1                         
  perl-File-Fetch.x86_64 0:0.26-136.el6_6.1                                   
  perl-IO-Compress-Base.x86_64 0:2.021-136.el6_6.1                             
  perl-IO-Compress-Bzip2.x86_64 0:2.021-136.el6_6.1                           
  perl-IO-Compress-Zlib.x86_64 0:2.021-136.el6_6.1                             
  perl-IO-Zlib.x86_64 1:1.09-136.el6_6.1                                       
  perl-IPC-Cmd.x86_64 1:0.56-136.el6_6.1                                       
  perl-Locale-Maketext-Simple.x86_64 1:0.18-136.el6_6.1                       
  perl-Log-Message.x86_64 1:0.02-136.el6_6.1                                   
  perl-Log-Message-Simple.x86_64 0:0.04-136.el6_6.1                           
  perl-Module-Build.x86_64 1:0.3500-136.el6_6.1                               
  perl-Module-CoreList.x86_64 0:2.18-136.el6_6.1                               
  perl-Module-Load.x86_64 1:0.16-136.el6_6.1                                   
  perl-Module-Load-Conditional.x86_64 0:0.30-136.el6_6.1                       
  perl-Module-Loaded.x86_64 1:0.02-136.el6_6.1                                 
  perl-Module-Pluggable.x86_64 1:3.90-136.el6_6.1                             
  perl-Object-Accessor.x86_64 1:0.34-136.el6_6.1                               
  perl-Package-Constants.x86_64 1:0.02-136.el6_6.1                             
  perl-Params-Check.x86_64 1:0.26-136.el6_6.1                                 
  perl-Parse-CPAN-Meta.x86_64 1:1.40-136.el6_6.1                               
  perl-Pod-Escapes.x86_64 1:1.04-136.el6_6.1                                   
  perl-Pod-Simple.x86_64 1:3.13-136.el6_6.1                                   
  perl-Term-UI.x86_64 0:0.20-136.el6_6.1                                       
  perl-Test-Harness.x86_64 0:3.17-136.el6_6.1                                 
  perl-Test-Simple.x86_64 0:0.92-136.el6_6.1                                   
  perl-Time-HiRes.x86_64 4:1.9721-136.el6_6.1                                 
  perl-Time-Piece.x86_64 0:1.15-136.el6_6.1                                   
  perl-core.x86_64 0:5.10.1-136.el6_6.1                                       
  perl-devel.x86_64 4:5.10.1-136.el6_6.1                                       
  perl-libs.x86_64 4:5.10.1-136.el6_6.1                                       
  perl-parent.x86_64 1:0.221-136.el6_6.1                                       
  perl-version.x86_64 3:0.77-136.el6_6.1                                       
  policycoreutils.x86_64 0:2.0.83-19.47.el6_6.1                               
  python-sssdconfig.noarch 0:1.11.6-30.el6_6.3                                 
  ql2400-firmware.noarch 0:7.03.00-1.el6_5                                     
  ql2500-firmware.noarch 0:7.03.00-1.el6_5                                     
  rpm.x86_64 0:4.8.0-38.el6_6                                                 
  rpm-libs.x86_64 0:4.8.0-38.el6_6                                             
  rpm-python.x86_64 0:4.8.0-38.el6_6                                           
  rsyslog.x86_64 0:5.8.10-10.el6_6                                             
  scl-utils.x86_64 0:20120927-23.el6_6                                         
  selinux-policy.noarch 0:3.7.19-260.el6_6.1                                   
  selinux-policy-targeted.noarch 0:3.7.19-260.el6_6.1                         
  sssd.x86_64 0:1.11.6-30.el6_6.3                                             
  sssd-ad.x86_64 0:1.11.6-30.el6_6.3                                           
  sssd-client.x86_64 0:1.11.6-30.el6_6.3                                       
  sssd-common.x86_64 0:1.11.6-30.el6_6.3                                       
  sssd-common-pac.x86_64 0:1.11.6-30.el6_6.3                                   
  sssd-ipa.x86_64 0:1.11.6-30.el6_6.3                                         
  sssd-krb5.x86_64 0:1.11.6-30.el6_6.3                                         
  sssd-krb5-common.x86_64 0:1.11.6-30.el6_6.3                                 
  sssd-ldap.x86_64 0:1.11.6-30.el6_6.3                                         
  sssd-proxy.x86_64 0:1.11.6-30.el6_6.3                                       
  system-config-firewall.noarch 0:1.2.27-7.2.el6_6                             
  system-config-firewall-base.noarch 0:1.2.27-7.2.el6_6                       
  system-config-firewall-tui.noarch 0:1.2.27-7.2.el6_6                         
  tzdata.noarch 0:2014j-1.el6                                                 
  tzdata-java.noarch 0:2014j-1.el6                                             
  webkitgtk.x86_64 0:1.4.3-9.el6_6                                             
  wget.x86_64 0:1.12-5.el6_6.1                                                 
  wpa_supplicant.x86_64 1:0.7.3-4.el6_3                                       
  xorg-x11-server-Xorg.x86_64 0:1.15.0-25.el6_6                               
  xorg-x11-server-common.x86_64 0:1.15.0-25.el6_6                             
  yum-rhn-plugin.noarch 0:0.9.1-52.el6_6                                       


Complete!
<syntaxhighlight lang="bash">
==============================================================================
reboot
Done.
</syntaxhighlight>
<syntaxhighlight lang="text">
Broadcast message from root@an-striker01.alteeve.ca
(/dev/pts/0) at 3:41 ...
 
The system is going down for reboot NOW!
</syntaxhighlight>
 
= Using Striker =
 
From here on in, we'll be using a normal web browser.
 
== Self-Signed SSL Certificate ==
 
{{note|1=By default, Striker listens for connections on both normal HTTP and secure HTTPS. We will use HTTPS for this tutorial to show how to accept a self-signed SSL certificate. We do this to encrypt traffic going between your computer and the Striker dashboard.}}
 
To connect to Striker, open up your favourite web browser and point it at the Striker server (use the [[Anvil!_m2_Tutorial#What_IP_addresses_to_use|IFN or BCN IP address]] set during the install).
 
In our case, that means we want to connect to [https://10.255.4.1 https://10.255.4.1].
 
{{note|1=This tutorial is shown using Firefox. The steps to accept a self-signed SSL certificate will be a little different on other browsers.}}
 
[[image:Striker-1.2.0b_Connect_Enter-URL_.png|thumb|center|665px|Striker - Enter the URL.]]
 
Type the address into your browser and then press '<span class="code"><enter></span>'.
 
[[image:Striker-1.2.0b_SSL-Understand-Risks.png|thumb|center|665px|Striker - "I understand the risks"]]
 
SSL-based security normally requires an independent third party to validate the certificate, which requires a fee.
 
If you want to do this, [[PPPower_Server#SSL_Virtual_Hosts|here is how to do it]].


Getting a list of currently installed packages.
In our case, we know that the Striker machine is ours, so this isn't really needed. So we need to tell the browser that we trust the certificate.
- .Existing lock /var/run/yum.pid: another copy is running as pid 13264.
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory :  31 M RSS (362 MB VSZ)
    Started: Tue Dec 30 03:33:00 2014 - 00:16 ago
    State  : Running, pid: 13264
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory :  65 M RSS (401 MB VSZ)
    Started: Tue Dec 30 03:33:00 2014 - 00:18 ago
    State  : Running, pid: 13264
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory : 137 M RSS (474 MB VSZ)
    Started: Tue Dec 30 03:33:00 2014 - 00:20 ago
    State  : Sleeping, pid: 13264
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory : 137 M RSS (474 MB VSZ)
    Started: Tue Dec 30 03:33:00 2014 - 00:22 ago
    State  : Sleeping, pid: 13264
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory : 137 M RSS (474 MB VSZ)
    Started: Tue Dec 30 03:33:00 2014 - 00:24 ago
    State  : Sleeping, pid: 13264
...........................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- ..............................................................
Done!


Checking to see if any packages need to be installed.
Click to expand "<span class="code">I Understand the Risks</span>".
- Package: [acpid] already installed.
- Package: [ccs] needs to be installed.
- Package: [cyrus-sasl] already installed.
- Package: [cyrus-sasl-plain] already installed.
- Package: [dhcp] needs to be installed.
- Package: [expect] needs to be installed.
- Package: [fence-agents] needs to be installed.
- Package: [guacd] needs to be installed.
- Package: [httpd] already installed.
- Package: [libcdio] already installed.
- Package: [libguac-client-rdp] needs to be installed.
- Package: [libguac-client-ssh] needs to be installed.
- Package: [libguac-client-vnc] needs to be installed.
- Package: [man] already installed.
- Package: [mlocate] already installed.
- Package: [mod_ssl] needs to be installed.
- Package: [ntp] already installed.
- Package: [openssl-devel] needs to be installed.
- Package: [perl-CGI] already installed.
- Package: [perl-CPAN] already installed.
- Package: [perl-Net-SSH2] needs to be installed.
- Package: [perl-Net-SSLeay] needs to be installed.
- Package: [perl-TermReadKey] needs to be installed.
- Package: [perl-Test-Simple] already installed.
- Package: [perl-XML-Simple] needs to be installed.
- Package: [perl-YAML-Tiny] needs to be installed.
- Package: [policycoreutils-python] needs to be installed.
- Package: [postfix] already installed.
- Package: [rsync] already installed.
- Package: [screen] needs to be installed.
- Package: [syslinux] needs to be installed.
- Package: [syslinux-tftpboot] needs to be installed.
- Package: [tftp-server] needs to be installed.
- Package: [tomcat6] needs to be installed.
- Package: [unzip] already installed.
- Package: [vim-common] already installed.
- Package: [vim-enhanced] already installed.
- Package: [wget] already installed.
- Package: [xinetd] needs to be installed.
- Done


Installing missing packages now. Please be patient.
[[image:Striker-1.2.0b_SSL-Add-Exception.png|thumb|center|665px|Striker - "Add Exception..."]]
==============================================================================
Loaded plugins: product-id, refresh-packagekit, rhnplugin, security,
              : subscription-manager
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ccs.x86_64 0:0.16.2-75.el6.anvil will be installed
---> Package dhcp.x86_64 12:4.1.1-43.P1.el6 will be installed
---> Package expect.x86_64 0:5.44.1.15-5.el6_4 will be installed
--> Processing Dependency: libtcl8.5.so()(64bit) for package: expect-5.44.1.15-5.el6_4.x86_64
---> Package fence-agents.x86_64 0:3.1.5-48.el6 will be installed
--> Processing Dependency: telnet for package: fence-agents-3.1.5-48.el6.x86_64
--> Processing Dependency: sg3_utils for package: fence-agents-3.1.5-48.el6.x86_64
--> Processing Dependency: python-suds for package: fence-agents-3.1.5-48.el6.x86_64
--> Processing Dependency: pexpect for package: fence-agents-3.1.5-48.el6.x86_64
--> Processing Dependency: perl-Net-Telnet for package: fence-agents-3.1.5-48.el6.x86_64
--> Processing Dependency: perl(Net::Telnet) for package: fence-agents-3.1.5-48.el6.x86_64
--> Processing Dependency: net-snmp-utils for package: fence-agents-3.1.5-48.el6.x86_64
--> Processing Dependency: /usr/bin/virsh for package: fence-agents-3.1.5-48.el6.x86_64
--> Processing Dependency: /usr/bin/ipmitool for package: fence-agents-3.1.5-48.el6.x86_64
---> Package guacd.x86_64 0:0.9.2-1.el6.anvil will be installed
--> Processing Dependency: libguac(x86-64) = 0.9.2-1.el6.anvil for package: guacd-0.9.2-1.el6.anvil.x86_64
--> Processing Dependency: libossp-uuid.so.16()(64bit) for package: guacd-0.9.2-1.el6.anvil.x86_64
--> Processing Dependency: libguac.so.7()(64bit) for package: guacd-0.9.2-1.el6.anvil.x86_64
---> Package libguac-client-rdp.x86_64 0:0.9.2-1.el6.anvil will be installed
--> Processing Dependency: libfreerdp-utils.so.1.0()(64bit) for package: libguac-client-rdp-0.9.2-1.el6.anvil.x86_64
--> Processing Dependency: libfreerdp-core.so.1.0()(64bit) for package: libguac-client-rdp-0.9.2-1.el6.anvil.x86_64
--> Processing Dependency: libfreerdp-codec.so.1.0()(64bit) for package: libguac-client-rdp-0.9.2-1.el6.anvil.x86_64
--> Processing Dependency: libfreerdp-channels.so.1.0()(64bit) for package: libguac-client-rdp-0.9.2-1.el6.anvil.x86_64
--> Processing Dependency: libfreerdp-cache.so.1.0()(64bit) for package: libguac-client-rdp-0.9.2-1.el6.anvil.x86_64
---> Package libguac-client-ssh.x86_64 0:0.9.2-1.el6.anvil will be installed
---> Package libguac-client-vnc.x86_64 0:0.9.2-1.el6.anvil will be installed
--> Processing Dependency: libvncclient.so.0()(64bit) for package: libguac-client-vnc-0.9.2-1.el6.anvil.x86_64
---> Package mod_ssl.x86_64 1:2.2.15-39.el6 will be installed
---> Package openssl-devel.x86_64 0:1.0.1e-30.el6_6.4 will be installed
--> Processing Dependency: zlib-devel for package: openssl-devel-1.0.1e-30.el6_6.4.x86_64
--> Processing Dependency: krb5-devel for package: openssl-devel-1.0.1e-30.el6_6.4.x86_64
---> Package perl-Net-SSH2.x86_64 0:0.53-3.el6.anvil will be installed
---> Package perl-Net-SSLeay.x86_64 0:1.35-9.el6 will be installed
---> Package perl-TermReadKey.x86_64 0:2.30-13.el6 will be installed
---> Package perl-XML-Simple.noarch 0:2.18-6.el6 will be installed
---> Package perl-YAML-Tiny.noarch 0:1.40-2.el6 will be installed
---> Package policycoreutils-python.x86_64 0:2.0.83-19.47.el6_6.1 will be installed
--> Processing Dependency: libsemanage-python >= 2.0.43-4 for package: policycoreutils-python-2.0.83-19.47.el6_6.1.x86_64
--> Processing Dependency: audit-libs-python >= 1.4.2-1 for package: policycoreutils-python-2.0.83-19.47.el6_6.1.x86_64
--> Processing Dependency: setools-libs-python for package: policycoreutils-python-2.0.83-19.47.el6_6.1.x86_64
--> Processing Dependency: libcgroup for package: policycoreutils-python-2.0.83-19.47.el6_6.1.x86_64
---> Package screen.x86_64 0:4.0.3-16.el6 will be installed
---> Package syslinux.x86_64 0:4.04-3.el6 will be installed
--> Processing Dependency: syslinux-nonlinux for package: syslinux-4.04-3.el6.x86_64
---> Package syslinux-tftpboot.noarch 0:4.04-3.el6 will be installed
---> Package tftp-server.x86_64 0:0.49-7.el6 will be installed
---> Package tomcat6.x86_64 0:6.0.24-80.el6 will be installed
--> Processing Dependency: tomcat6-lib = 6.0.24-80.el6 for package: tomcat6-6.0.24-80.el6.x86_64
--> Processing Dependency: mx4j for package: tomcat6-6.0.24-80.el6.x86_64
--> Processing Dependency: log4j for package: tomcat6-6.0.24-80.el6.x86_64
--> Processing Dependency: log4j for package: tomcat6-6.0.24-80.el6.x86_64
--> Processing Dependency: jakarta-commons-pool for package: tomcat6-6.0.24-80.el6.x86_64
--> Processing Dependency: jakarta-commons-logging for package: tomcat6-6.0.24-80.el6.x86_64
--> Processing Dependency: jakarta-commons-dbcp for package: tomcat6-6.0.24-80.el6.x86_64
--> Processing Dependency: jakarta-commons-daemon for package: tomcat6-6.0.24-80.el6.x86_64
--> Processing Dependency: jakarta-commons-collections for package: tomcat6-6.0.24-80.el6.x86_64
---> Package xinetd.x86_64 2:2.3.14-39.el6_4 will be installed
--> Running transaction check
---> Package audit-libs-python.x86_64 0:2.3.7-5.el6 will be installed
---> Package freerdp-libs.x86_64 0:1.0.2-2.el6 will be installed
---> Package ipmitool.x86_64 0:1.8.11-21.el6 will be installed
--> Processing Dependency: OpenIPMI for package: ipmitool-1.8.11-21.el6.x86_64
---> Package jakarta-commons-collections.noarch 0:3.2.1-3.4.el6 will be installed
---> Package jakarta-commons-daemon.x86_64 1:1.0.1-8.9.el6 will be installed
--> Processing Dependency: java-gcj-compat for package: 1:jakarta-commons-daemon-1.0.1-8.9.el6.x86_64
--> Processing Dependency: java-gcj-compat for package: 1:jakarta-commons-daemon-1.0.1-8.9.el6.x86_64
--> Processing Dependency: libgcj_bc.so.1()(64bit) for package: 1:jakarta-commons-daemon-1.0.1-8.9.el6.x86_64
---> Package jakarta-commons-dbcp.noarch 0:1.2.1-13.8.el6 will be installed
---> Package jakarta-commons-logging.noarch 0:1.0.4-10.el6 will be installed
---> Package jakarta-commons-pool.x86_64 0:1.3-12.7.el6 will be installed
---> Package krb5-devel.x86_64 0:1.10.3-33.el6 will be installed
--> Processing Dependency: libselinux-devel for package: krb5-devel-1.10.3-33.el6.x86_64
--> Processing Dependency: libcom_err-devel for package: krb5-devel-1.10.3-33.el6.x86_64
--> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.10.3-33.el6.x86_64
---> Package libcgroup.x86_64 0:0.40.rc1-15.el6_6 will be installed
---> Package libguac.x86_64 0:0.9.2-1.el6.anvil will be installed
---> Package libsemanage-python.x86_64 0:2.0.43-4.2.el6 will be installed
---> Package libvirt-client.x86_64 0:0.10.2-46.el6_6.2 will be installed
--> Processing Dependency: nc for package: libvirt-client-0.10.2-46.el6_6.2.x86_64
--> Processing Dependency: gnutls-utils for package: libvirt-client-0.10.2-46.el6_6.2.x86_64
--> Processing Dependency: cyrus-sasl-md5 for package: libvirt-client-0.10.2-46.el6_6.2.x86_64
--> Processing Dependency: libyajl.so.1()(64bit) for package: libvirt-client-0.10.2-46.el6_6.2.x86_64
---> Package libvncserver.x86_64 0:0.9.7-7.el6_6.1 will be installed
---> Package log4j.x86_64 0:1.2.14-6.4.el6 will be installed
--> Processing Dependency: xml-commons-apis for package: log4j-1.2.14-6.4.el6.x86_64
---> Package mx4j.noarch 1:3.0.1-9.13.el6 will be installed
--> Processing Dependency: javamail >= 1.2-5jpp for package: 1:mx4j-3.0.1-9.13.el6.noarch
--> Processing Dependency: bcel >= 5.0 for package: 1:mx4j-3.0.1-9.13.el6.noarch
--> Processing Dependency: axis >= 1.1 for package: 1:mx4j-3.0.1-9.13.el6.noarch
--> Processing Dependency: xml-commons-resolver for package: 1:mx4j-3.0.1-9.13.el6.noarch
--> Processing Dependency: jaf for package: 1:mx4j-3.0.1-9.13.el6.noarch
---> Package net-snmp-utils.x86_64 1:5.5-50.el6_6.1 will be installed
---> Package perl-Net-Telnet.noarch 0:3.03-11.el6 will be installed
---> Package pexpect.noarch 0:2.3-6.el6 will be installed
---> Package python-suds.noarch 0:0.4.1-3.el6 will be installed
---> Package setools-libs-python.x86_64 0:3.3.7-4.el6 will be installed
--> Processing Dependency: setools-libs = 3.3.7-4.el6 for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libsefs.so.4(VERS_4.0)(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libseaudit.so.4(VERS_4.2)(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libseaudit.so.4(VERS_4.1)(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libqpol.so.1(VERS_1.4)(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libqpol.so.1(VERS_1.3)(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libqpol.so.1(VERS_1.2)(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libpoldiff.so.1(VERS_1.3)(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libpoldiff.so.1(VERS_1.2)(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libapol.so.4(VERS_4.1)(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libapol.so.4(VERS_4.0)(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libsefs.so.4()(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libseaudit.so.4()(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libqpol.so.1()(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libpoldiff.so.1()(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
--> Processing Dependency: libapol.so.4()(64bit) for package: setools-libs-python-3.3.7-4.el6.x86_64
---> Package sg3_utils.x86_64 0:1.28-6.el6 will be installed
---> Package syslinux-nonlinux.noarch 0:4.04-3.el6 will be installed
---> Package tcl.x86_64 1:8.5.7-6.el6 will be installed
---> Package telnet.x86_64 1:0.17-48.el6 will be installed
---> Package tomcat6-lib.x86_64 0:6.0.24-80.el6 will be installed
--> Processing Dependency: tomcat6-servlet-2.5-api = 6.0.24-80.el6 for package: tomcat6-lib-6.0.24-80.el6.x86_64
--> Processing Dependency: tomcat6-jsp-2.1-api = 6.0.24-80.el6 for package: tomcat6-lib-6.0.24-80.el6.x86_64
--> Processing Dependency: tomcat6-el-2.1-api = 6.0.24-80.el6 for package: tomcat6-lib-6.0.24-80.el6.x86_64
--> Processing Dependency: ecj for package: tomcat6-lib-6.0.24-80.el6.x86_64
---> Package uuid.x86_64 0:1.6.1-10.el6 will be installed
---> Package zlib-devel.x86_64 0:1.2.3-29.el6 will be installed
--> Running transaction check
---> Package OpenIPMI.x86_64 0:2.0.16-14.el6 will be installed
--> Processing Dependency: OpenIPMI-libs = 2.0.16-14.el6 for package: OpenIPMI-2.0.16-14.el6.x86_64
--> Processing Dependency: libOpenIPMIutils.so.0()(64bit) for package: OpenIPMI-2.0.16-14.el6.x86_64
--> Processing Dependency: libOpenIPMIui.so.1()(64bit) for package: OpenIPMI-2.0.16-14.el6.x86_64
--> Processing Dependency: libOpenIPMIposix.so.0()(64bit) for package: OpenIPMI-2.0.16-14.el6.x86_64
--> Processing Dependency: libOpenIPMIglib.so.0()(64bit) for package: OpenIPMI-2.0.16-14.el6.x86_64
--> Processing Dependency: libOpenIPMIcmdlang.so.0()(64bit) for package: OpenIPMI-2.0.16-14.el6.x86_64
--> Processing Dependency: libOpenIPMI.so.0()(64bit) for package: OpenIPMI-2.0.16-14.el6.x86_64
--> Processing Dependency: libIPMIlanserv.so.0()(64bit) for package: OpenIPMI-2.0.16-14.el6.x86_64
---> Package axis.noarch 0:1.2.1-7.5.el6_5 will be installed
--> Processing Dependency: wsdl4j for package: axis-1.2.1-7.5.el6_5.noarch
--> Processing Dependency: jakarta-commons-httpclient for package: axis-1.2.1-7.5.el6_5.noarch
--> Processing Dependency: jakarta-commons-discovery for package: axis-1.2.1-7.5.el6_5.noarch
---> Package bcel.x86_64 0:5.2-7.2.el6 will be installed
--> Processing Dependency: regexp for package: bcel-5.2-7.2.el6.x86_64
---> Package classpathx-jaf.x86_64 0:1.0-15.4.el6 will be installed
---> Package classpathx-mail.noarch 0:1.1.1-9.4.el6 will be installed
---> Package cyrus-sasl-md5.x86_64 0:2.1.23-15.el6_6.1 will be installed
---> Package ecj.x86_64 1:3.4.2-6.el6 will be installed
---> Package gnutls-utils.x86_64 0:2.8.5-14.el6_5 will be installed
---> Package java-1.5.0-gcj.x86_64 0:1.5.0.0-29.1.el6 will be installed
--> Processing Dependency: sinjdoc for package: java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
---> Package keyutils-libs-devel.x86_64 0:1.4-5.el6 will be installed
---> Package libcom_err-devel.x86_64 0:1.41.12-21.el6 will be installed
---> Package libgcj.x86_64 0:4.4.7-11.el6 will be installed
---> Package libselinux-devel.x86_64 0:2.0.94-5.8.el6 will be installed
--> Processing Dependency: libsepol-devel >= 2.0.32-1 for package: libselinux-devel-2.0.94-5.8.el6.x86_64
--> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.0.94-5.8.el6.x86_64
---> Package nc.x86_64 0:1.84-22.el6 will be installed
---> Package setools-libs.x86_64 0:3.3.7-4.el6 will be installed
---> Package tomcat6-el-2.1-api.x86_64 0:6.0.24-80.el6 will be installed
---> Package tomcat6-jsp-2.1-api.x86_64 0:6.0.24-80.el6 will be installed
---> Package tomcat6-servlet-2.5-api.x86_64 0:6.0.24-80.el6 will be installed
---> Package xml-commons-apis.x86_64 0:1.3.04-3.6.el6 will be installed
---> Package xml-commons-resolver.x86_64 0:1.1-4.18.el6 will be installed
---> Package yajl.x86_64 0:1.0.7-3.el6 will be installed
--> Running transaction check
---> Package OpenIPMI-libs.x86_64 0:2.0.16-14.el6 will be installed
---> Package jakarta-commons-discovery.noarch 1:0.4-5.4.el6 will be installed
---> Package jakarta-commons-httpclient.x86_64 1:3.1-0.9.el6_5 will be installed
---> Package libsepol-devel.x86_64 0:2.0.41-4.el6 will be installed
---> Package regexp.x86_64 0:1.5-4.4.el6 will be installed
---> Package sinjdoc.x86_64 0:0.5-9.1.el6 will be installed
--> Processing Dependency: java_cup >= 0.10 for package: sinjdoc-0.5-9.1.el6.x86_64
---> Package wsdl4j.noarch 0:1.5.2-7.8.el6 will be installed
--> Running transaction check
---> Package java_cup.x86_64 1:0.10k-5.el6 will be installed
--> Finished Dependency Resolution


Dependencies Resolved
Click on the "<span class="code">Add Exception...</span>" button.


================================================================================
[[image:Striker-1.2.0b_SSL-Confirm-Exception.png|thumb|center|507px|Striker - "Confirm Exception"]]
Package                Arch  Version              Repository            Size
================================================================================
Installing:
ccs                    x86_64 0.16.2-75.el6.anvil  an-repo              50 k
dhcp                    x86_64 12:4.1.1-43.P1.el6  rhel-x86_64-server-6 819 k
expect                  x86_64 5.44.1.15-5.el6_4    rhel-x86_64-server-6 256 k
fence-agents            x86_64 3.1.5-48.el6        rhel-x86_64-server-6 166 k
guacd                  x86_64 0.9.2-1.el6.anvil    an-repo              16 k
libguac-client-rdp      x86_64 0.9.2-1.el6.anvil    an-repo              49 k
libguac-client-ssh      x86_64 0.9.2-1.el6.anvil    an-repo              36 k
libguac-client-vnc      x86_64 0.9.2-1.el6.anvil    an-repo              19 k
mod_ssl                x86_64 1:2.2.15-39.el6      rhel-x86_64-server-6  93 k
openssl-devel          x86_64 1.0.1e-30.el6_6.4    rhel-x86_64-server-6 1.2 M
perl-Net-SSH2          x86_64 0.53-3.el6.anvil    an-repo              97 k
perl-Net-SSLeay        x86_64 1.35-9.el6          rhel-x86_64-server-6 173 k
perl-TermReadKey        x86_64 2.30-13.el6          rhel-x86_64-server-6  31 k
perl-XML-Simple        noarch 2.18-6.el6          rhel-x86_64-server-optional-6
                                                                          72 k
perl-YAML-Tiny          noarch 1.40-2.el6          rhel-x86_64-server-6  33 k
policycoreutils-python  x86_64 2.0.83-19.47.el6_6.1 rhel-x86_64-server-6 346 k
screen                  x86_64 4.0.3-16.el6        rhel-x86_64-server-6 494 k
syslinux                x86_64 4.04-3.el6          rhel-x86_64-server-6 346 k
syslinux-tftpboot      noarch 4.04-3.el6          rhel-x86_64-server-optional-6
                                                                          402 k
tftp-server            x86_64 0.49-7.el6          rhel-x86_64-server-6  39 k
tomcat6                x86_64 6.0.24-80.el6        rhel-x86_64-server-6  92 k
xinetd                  x86_64 2:2.3.14-39.el6_4    rhel-x86_64-server-6 122 k
Installing for dependencies:
OpenIPMI                x86_64 2.0.16-14.el6        rhel-x86_64-server-6 156 k
OpenIPMI-libs          x86_64 2.0.16-14.el6        rhel-x86_64-server-6 473 k
audit-libs-python      x86_64 2.3.7-5.el6          rhel-x86_64-server-6  62 k
axis                    noarch 1.2.1-7.5.el6_5      rhel-x86_64-server-6 1.5 M
bcel                    x86_64 5.2-7.2.el6          rhel-x86_64-server-6 1.4 M
classpathx-jaf          x86_64 1.0-15.4.el6        rhel-x86_64-server-6 100 k
classpathx-mail        noarch 1.1.1-9.4.el6        rhel-x86_64-server-6 479 k
cyrus-sasl-md5          x86_64 2.1.23-15.el6_6.1    rhel-x86_64-server-6  47 k
ecj                    x86_64 1:3.4.2-6.el6        rhel-x86_64-server-6 2.8 M
freerdp-libs            x86_64 1.0.2-2.el6          rhel-x86_64-server-6 208 k
gnutls-utils            x86_64 2.8.5-14.el6_5      rhel-x86_64-server-6 100 k
ipmitool                x86_64 1.8.11-21.el6        rhel-x86_64-server-6 463 k
jakarta-commons-collections
                        noarch 3.2.1-3.4.el6        rhel-x86_64-server-6 523 k
jakarta-commons-daemon  x86_64 1:1.0.1-8.9.el6      rhel-x86_64-server-6  45 k
jakarta-commons-dbcp    noarch 1.2.1-13.8.el6      rhel-x86_64-server-6 116 k
jakarta-commons-discovery
                        noarch 1:0.4-5.4.el6        rhel-x86_64-server-6  73 k
jakarta-commons-httpclient
                        x86_64 1:3.1-0.9.el6_5      rhel-x86_64-server-6 593 k
jakarta-commons-logging noarch 1.0.4-10.el6        rhel-x86_64-server-6  52 k
jakarta-commons-pool    x86_64 1.3-12.7.el6        rhel-x86_64-server-6 122 k
java-1.5.0-gcj          x86_64 1.5.0.0-29.1.el6    rhel-x86_64-server-6 146 k
java_cup                x86_64 1:0.10k-5.el6        rhel-x86_64-server-6 197 k
keyutils-libs-devel    x86_64 1.4-5.el6            rhel-x86_64-server-6  29 k
krb5-devel              x86_64 1.10.3-33.el6        rhel-x86_64-server-6 498 k
libcgroup              x86_64 0.40.rc1-15.el6_6    rhel-x86_64-server-6 129 k
libcom_err-devel        x86_64 1.41.12-21.el6      rhel-x86_64-server-6  32 k
libgcj                  x86_64 4.4.7-11.el6        rhel-x86_64-server-6  19 M
libguac                x86_64 0.9.2-1.el6.anvil    an-repo              28 k
libselinux-devel        x86_64 2.0.94-5.8.el6      rhel-x86_64-server-6 137 k
libsemanage-python      x86_64 2.0.43-4.2.el6      rhel-x86_64-server-6  81 k
libsepol-devel          x86_64 2.0.41-4.el6        rhel-x86_64-server-6  64 k
libvirt-client          x86_64 0.10.2-46.el6_6.2    rhel-x86_64-server-6 4.0 M
libvncserver            x86_64 0.9.7-7.el6_6.1      rhel-x86_64-server-6 159 k
log4j                  x86_64 1.2.14-6.4.el6      rhel-x86_64-server-6 679 k
mx4j                    noarch 1:3.0.1-9.13.el6    rhel-x86_64-server-6 1.1 M
nc                      x86_64 1.84-22.el6          rhel-x86_64-server-6  57 k
net-snmp-utils          x86_64 1:5.5-50.el6_6.1    rhel-x86_64-server-6 174 k
perl-Net-Telnet        noarch 3.03-11.el6          rhel-x86_64-server-6  55 k
pexpect                noarch 2.3-6.el6            rhel-x86_64-server-6 147 k
python-suds            noarch 0.4.1-3.el6          rhel-x86_64-server-6 218 k
regexp                  x86_64 1.5-4.4.el6          rhel-x86_64-server-6 105 k
setools-libs            x86_64 3.3.7-4.el6          rhel-x86_64-server-6 400 k
setools-libs-python    x86_64 3.3.7-4.el6          rhel-x86_64-server-6 222 k
sg3_utils              x86_64 1.28-6.el6          rhel-x86_64-server-6 475 k
sinjdoc                x86_64 0.5-9.1.el6          rhel-x86_64-server-6 705 k
syslinux-nonlinux      noarch 4.04-3.el6          rhel-x86_64-server-6 574 k
tcl                    x86_64 1:8.5.7-6.el6        rhel-x86_64-server-6 1.9 M
telnet                  x86_64 1:0.17-48.el6        rhel-x86_64-server-6  58 k
tomcat6-el-2.1-api      x86_64 6.0.24-80.el6        rhel-x86_64-server-6  47 k
tomcat6-jsp-2.1-api    x86_64 6.0.24-80.el6        rhel-x86_64-server-6  84 k
tomcat6-lib            x86_64 6.0.24-80.el6        rhel-x86_64-server-6 2.9 M
tomcat6-servlet-2.5-api x86_64 6.0.24-80.el6        rhel-x86_64-server-6  98 k
uuid                    x86_64 1.6.1-10.el6        rhel-x86_64-server-6  54 k
wsdl4j                  noarch 1.5.2-7.8.el6        rhel-x86_64-server-6 157 k
xml-commons-apis        x86_64 1.3.04-3.6.el6      rhel-x86_64-server-6 439 k
xml-commons-resolver    x86_64 1.1-4.18.el6        rhel-x86_64-server-6 145 k
yajl                    x86_64 1.0.7-3.el6          rhel-x86_64-server-6  27 k
zlib-devel              x86_64 1.2.3-29.el6        rhel-x86_64-server-6  44 k


Transaction Summary
Understandably, the browser is being cautious and is being careful to explain what you are doing. So we need to confirm what we're asking by clicking on "<span class="code">Confirm Security Exception</span>".
================================================================================
Install      79 Package(s)


Total download size: 49 M
That's it, we can now access Striker!
Installed size: 932 k
Downloading Packages:
--------------------------------------------------------------------------------
Total                                          921 kB/s |  49 MB    00:54   
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libgcj-4.4.7-11.el6.x86_64                                  1/79
  Installing : uuid-1.6.1-10.el6.x86_64                                    2/79
  Installing : jakarta-commons-logging-1.0.4-10.el6.noarch                3/79
  Installing : libguac-0.9.2-1.el6.anvil.x86_64                            4/79
  Installing : jakarta-commons-collections-3.2.1-3.4.el6.noarch            5/79
  Installing : syslinux-nonlinux-4.04-3.el6.noarch                        6/79
  Installing : syslinux-4.04-3.el6.x86_64                                  7/79
  Installing : tomcat6-servlet-2.5-api-6.0.24-80.el6.x86_64                8/79
  Installing : tomcat6-jsp-2.1-api-6.0.24-80.el6.x86_64                    9/79
  Installing : 1:jakarta-commons-discovery-0.4-5.4.el6.noarch            10/79
  Installing : java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64                    11/79
  Installing : 1:java_cup-0.10k-5.el6.x86_64                              12/79
  Installing : sinjdoc-0.5-9.1.el6.x86_64                                13/79
  Installing : jakarta-commons-pool-1.3-12.7.el6.x86_64                  14/79
  Installing : xml-commons-apis-1.3.04-3.6.el6.x86_64                    15/79
  Installing : log4j-1.2.14-6.4.el6.x86_64                                16/79
  Installing : classpathx-jaf-1.0-15.4.el6.x86_64                        17/79
  Installing : classpathx-mail-1.1.1-9.4.el6.noarch                      18/79
  Installing : jakarta-commons-dbcp-1.2.1-13.8.el6.noarch                19/79
  Installing : xml-commons-resolver-1.1-4.18.el6.x86_64                  20/79
  Installing : 1:jakarta-commons-daemon-1.0.1-8.9.el6.x86_64              21/79
  Installing : regexp-1.5-4.4.el6.x86_64                                  22/79
  Installing : bcel-5.2-7.2.el6.x86_64                                    23/79
  Installing : 1:jakarta-commons-httpclient-3.1-0.9.el6_5.x86_64          24/79
  Installing : wsdl4j-1.5.2-7.8.el6.noarch                                25/79
  Installing : axis-1.2.1-7.5.el6_5.noarch                                26/79
  Installing : 1:mx4j-3.0.1-9.13.el6.noarch                              27/79
  Installing : 1:ecj-3.4.2-6.el6.x86_64                                  28/79
  Installing : libcgroup-0.40.rc1-15.el6_6.x86_64                        29/79
  Installing : libsemanage-python-2.0.43-4.2.el6.x86_64                  30/79
  Installing : libcom_err-devel-1.41.12-21.el6.x86_64                    31/79
  Installing : pexpect-2.3-6.el6.noarch                                  32/79
  Installing : keyutils-libs-devel-1.4-5.el6.x86_64                      33/79
  Installing : yajl-1.0.7-3.el6.x86_64                                    34/79
  Installing : 1:telnet-0.17-48.el6.x86_64                                35/79
  Installing : perl-Net-Telnet-3.03-11.el6.noarch                        36/79
  Installing : OpenIPMI-libs-2.0.16-14.el6.x86_64                        37/79
  Installing : OpenIPMI-2.0.16-14.el6.x86_64                              38/79
  Installing : ipmitool-1.8.11-21.el6.x86_64                              39/79
  Installing : tomcat6-el-2.1-api-6.0.24-80.el6.x86_64                    40/79
  Installing : tomcat6-lib-6.0.24-80.el6.x86_64                          41/79
  Installing : 1:net-snmp-utils-5.5-50.el6_6.1.x86_64                    42/79
  Installing : gnutls-utils-2.8.5-14.el6_5.x86_64                        43/79
  Installing : cyrus-sasl-md5-2.1.23-15.el6_6.1.x86_64                    44/79
  Installing : zlib-devel-1.2.3-29.el6.x86_64                            45/79
  Installing : audit-libs-python-2.3.7-5.el6.x86_64                      46/79
  Installing : python-suds-0.4.1-3.el6.noarch                            47/79
  Installing : 2:xinetd-2.3.14-39.el6_4.x86_64                            48/79
  Installing : freerdp-libs-1.0.2-2.el6.x86_64                            49/79
  Installing : nc-1.84-22.el6.x86_64                                      50/79
  Installing : libvirt-client-0.10.2-46.el6_6.2.x86_64                    51/79
  Installing : libsepol-devel-2.0.41-4.el6.x86_64                        52/79
  Installing : libselinux-devel-2.0.94-5.8.el6.x86_64                    53/79
  Installing : krb5-devel-1.10.3-33.el6.x86_64                            54/79
  Installing : sg3_utils-1.28-6.el6.x86_64                                55/79
  Installing : setools-libs-3.3.7-4.el6.x86_64                            56/79
  Installing : setools-libs-python-3.3.7-4.el6.x86_64                    57/79
  Installing : libvncserver-0.9.7-7.el6_6.1.x86_64                        58/79
  Installing : 1:tcl-8.5.7-6.el6.x86_64                                  59/79
  Installing : expect-5.44.1.15-5.el6_4.x86_64                            60/79
  Installing : libguac-client-vnc-0.9.2-1.el6.anvil.x86_64                61/79
  Installing : policycoreutils-python-2.0.83-19.47.el6_6.1.x86_64        62/79
  Installing : fence-agents-3.1.5-48.el6.x86_64                          63/79
Stopping kdump:[  OK  ]
Starting kdump:[  OK  ]
  Installing : openssl-devel-1.0.1e-30.el6_6.4.x86_64                    64/79
  Installing : libguac-client-rdp-0.9.2-1.el6.anvil.x86_64                65/79
  Installing : tftp-server-0.49-7.el6.x86_64                              66/79
  Installing : tomcat6-6.0.24-80.el6.x86_64                              67/79
  Installing : syslinux-tftpboot-4.04-3.el6.noarch                        68/79
  Installing : libguac-client-ssh-0.9.2-1.el6.anvil.x86_64                69/79
  Installing : guacd-0.9.2-1.el6.anvil.x86_64                            70/79
  Installing : perl-Net-SSLeay-1.35-9.el6.x86_64                          71/79
  Installing : perl-Net-SSH2-0.53-3.el6.anvil.x86_64                      72/79
  Installing : perl-TermReadKey-2.30-13.el6.x86_64                        73/79
  Installing : perl-YAML-Tiny-1.40-2.el6.noarch                          74/79
  Installing : 12:dhcp-4.1.1-43.P1.el6.x86_64                            75/79
  Installing : screen-4.0.3-16.el6.x86_64                                76/79
  Installing : 1:mod_ssl-2.2.15-39.el6.x86_64                            77/79
  Installing : perl-XML-Simple-2.18-6.el6.noarch                          78/79
  Installing : ccs-0.16.2-75.el6.anvil.x86_64                            79/79
  Verifying  : axis-1.2.1-7.5.el6_5.noarch                                1/79
  Verifying  : classpathx-mail-1.1.1-9.4.el6.noarch                        2/79
  Verifying  : ipmitool-1.8.11-21.el6.x86_64                              3/79
  Verifying  : ccs-0.16.2-75.el6.anvil.x86_64                              4/79
  Verifying  : 1:jakarta-commons-discovery-0.4-5.4.el6.noarch              5/79
  Verifying  : openssl-devel-1.0.1e-30.el6_6.4.x86_64                      6/79
  Verifying  : 1:jakarta-commons-daemon-1.0.1-8.9.el6.x86_64              7/79
  Verifying  : setools-libs-python-3.3.7-4.el6.x86_64                      8/79
  Verifying  : 1:tcl-8.5.7-6.el6.x86_64                                    9/79
  Verifying  : jakarta-commons-collections-3.2.1-3.4.el6.noarch          10/79
  Verifying  : perl-XML-Simple-2.18-6.el6.noarch                          11/79
  Verifying  : sinjdoc-0.5-9.1.el6.x86_64                                12/79
  Verifying  : libvncserver-0.9.7-7.el6_6.1.x86_64                        13/79
  Verifying  : setools-libs-3.3.7-4.el6.x86_64                            14/79
  Verifying  : sg3_utils-1.28-6.el6.x86_64                                15/79
  Verifying  : libsepol-devel-2.0.41-4.el6.x86_64                        16/79
  Verifying  : 1:mod_ssl-2.2.15-39.el6.x86_64                            17/79
  Verifying  : bcel-5.2-7.2.el6.x86_64                                    18/79
  Verifying  : syslinux-tftpboot-4.04-3.el6.noarch                        19/79
  Verifying  : regexp-1.5-4.4.el6.x86_64                                  20/79
  Verifying  : screen-4.0.3-16.el6.x86_64                                21/79
  Verifying  : nc-1.84-22.el6.x86_64                                      22/79
  Verifying  : tomcat6-jsp-2.1-api-6.0.24-80.el6.x86_64                  23/79
  Verifying  : 1:jakarta-commons-httpclient-3.1-0.9.el6_5.x86_64          24/79
  Verifying  : freerdp-libs-1.0.2-2.el6.x86_64                            25/79
  Verifying  : 2:xinetd-2.3.14-39.el6_4.x86_64                            26/79
  Verifying  : fence-agents-3.1.5-48.el6.x86_64                          27/79
  Verifying  : jakarta-commons-logging-1.0.4-10.el6.noarch                28/79
  Verifying  : wsdl4j-1.5.2-7.8.el6.noarch                                29/79
  Verifying  : policycoreutils-python-2.0.83-19.47.el6_6.1.x86_64        30/79
  Verifying  : python-suds-0.4.1-3.el6.noarch                            31/79
  Verifying  : tftp-server-0.49-7.el6.x86_64                              32/79
  Verifying  : 12:dhcp-4.1.1-43.P1.el6.x86_64                            33/79
  Verifying  : libvirt-client-0.10.2-46.el6_6.2.x86_64                    34/79
  Verifying  : audit-libs-python-2.3.7-5.el6.x86_64                      35/79
  Verifying  : zlib-devel-1.2.3-29.el6.x86_64                            36/79
  Verifying  : libguac-client-rdp-0.9.2-1.el6.anvil.x86_64                37/79
  Verifying  : cyrus-sasl-md5-2.1.23-15.el6_6.1.x86_64                    38/79
  Verifying  : gnutls-utils-2.8.5-14.el6_5.x86_64                        39/79
  Verifying  : java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64                    40/79
  Verifying  : perl-YAML-Tiny-1.40-2.el6.noarch                          41/79
  Verifying  : 1:net-snmp-utils-5.5-50.el6_6.1.x86_64                    42/79
  Verifying  : tomcat6-el-2.1-api-6.0.24-80.el6.x86_64                    43/79
  Verifying  : log4j-1.2.14-6.4.el6.x86_64                                44/79
  Verifying  : libguac-client-vnc-0.9.2-1.el6.anvil.x86_64                45/79
  Verifying  : OpenIPMI-libs-2.0.16-14.el6.x86_64                        46/79
  Verifying  : 1:mx4j-3.0.1-9.13.el6.noarch                              47/79
  Verifying  : perl-Net-Telnet-3.03-11.el6.noarch                        48/79
  Verifying  : jakarta-commons-dbcp-1.2.1-13.8.el6.noarch                49/79
  Verifying  : tomcat6-6.0.24-80.el6.x86_64                              50/79
  Verifying  : 1:telnet-0.17-48.el6.x86_64                                51/79
  Verifying  : expect-5.44.1.15-5.el6_4.x86_64                            52/79
  Verifying  : perl-TermReadKey-2.30-13.el6.x86_64                        53/79
  Verifying  : xml-commons-resolver-1.1-4.18.el6.x86_64                  54/79
  Verifying  : syslinux-4.04-3.el6.x86_64                                55/79
  Verifying  : yajl-1.0.7-3.el6.x86_64                                    56/79
  Verifying  : keyutils-libs-devel-1.4-5.el6.x86_64                      57/79
  Verifying  : krb5-devel-1.10.3-33.el6.x86_64                            58/79
  Verifying  : jakarta-commons-pool-1.3-12.7.el6.x86_64                  59/79
  Verifying  : xml-commons-apis-1.3.04-3.6.el6.x86_64                    60/79
  Verifying  : libguac-0.9.2-1.el6.anvil.x86_64                          61/79
  Verifying  : pexpect-2.3-6.el6.noarch                                  62/79
  Verifying  : 1:java_cup-0.10k-5.el6.x86_64                              63/79
  Verifying  : tomcat6-servlet-2.5-api-6.0.24-80.el6.x86_64              64/79
  Verifying  : tomcat6-lib-6.0.24-80.el6.x86_64                          65/79
  Verifying  : libcom_err-devel-1.41.12-21.el6.x86_64                    66/79
  Verifying  : syslinux-nonlinux-4.04-3.el6.noarch                        67/79
  Verifying  : classpathx-jaf-1.0-15.4.el6.x86_64                        68/79
  Verifying  : uuid-1.6.1-10.el6.x86_64                                  69/79
  Verifying  : OpenIPMI-2.0.16-14.el6.x86_64                              70/79
  Verifying  : libselinux-devel-2.0.94-5.8.el6.x86_64                    71/79
  Verifying  : libguac-client-ssh-0.9.2-1.el6.anvil.x86_64                72/79
  Verifying  : perl-Net-SSH2-0.53-3.el6.anvil.x86_64                      73/79
  Verifying  : libsemanage-python-2.0.43-4.2.el6.x86_64                  74/79
  Verifying  : perl-Net-SSLeay-1.35-9.el6.x86_64                          75/79
  Verifying  : 1:ecj-3.4.2-6.el6.x86_64                                  76/79
  Verifying  : libgcj-4.4.7-11.el6.x86_64                                77/79
  Verifying  : guacd-0.9.2-1.el6.anvil.x86_64                            78/79
  Verifying  : libcgroup-0.40.rc1-15.el6_6.x86_64                        79/79


Installed:
== Logging In ==
  ccs.x86_64 0:0.16.2-75.el6.anvil                                             
  dhcp.x86_64 12:4.1.1-43.P1.el6                                               
  expect.x86_64 0:5.44.1.15-5.el6_4                                           
  fence-agents.x86_64 0:3.1.5-48.el6                                           
  guacd.x86_64 0:0.9.2-1.el6.anvil                                             
  libguac-client-rdp.x86_64 0:0.9.2-1.el6.anvil                               
  libguac-client-ssh.x86_64 0:0.9.2-1.el6.anvil                               
  libguac-client-vnc.x86_64 0:0.9.2-1.el6.anvil                               
  mod_ssl.x86_64 1:2.2.15-39.el6                                               
  openssl-devel.x86_64 0:1.0.1e-30.el6_6.4                                     
  perl-Net-SSH2.x86_64 0:0.53-3.el6.anvil                                     
  perl-Net-SSLeay.x86_64 0:1.35-9.el6                                         
  perl-TermReadKey.x86_64 0:2.30-13.el6                                       
  perl-XML-Simple.noarch 0:2.18-6.el6                                         
  perl-YAML-Tiny.noarch 0:1.40-2.el6                                           
  policycoreutils-python.x86_64 0:2.0.83-19.47.el6_6.1                         
  screen.x86_64 0:4.0.3-16.el6                                                 
  syslinux.x86_64 0:4.04-3.el6                                                 
  syslinux-tftpboot.noarch 0:4.04-3.el6                                       
  tftp-server.x86_64 0:0.49-7.el6                                             
  tomcat6.x86_64 0:6.0.24-80.el6                                               
  xinetd.x86_64 2:2.3.14-39.el6_4                                             


Dependency Installed:
When you connect to Striker, a pop-up window will ask your for your user name and password.
  OpenIPMI.x86_64 0:2.0.16-14.el6                                             
  OpenIPMI-libs.x86_64 0:2.0.16-14.el6                                         
  audit-libs-python.x86_64 0:2.3.7-5.el6                                       
  axis.noarch 0:1.2.1-7.5.el6_5                                               
  bcel.x86_64 0:5.2-7.2.el6                                                   
  classpathx-jaf.x86_64 0:1.0-15.4.el6                                         
  classpathx-mail.noarch 0:1.1.1-9.4.el6                                       
  cyrus-sasl-md5.x86_64 0:2.1.23-15.el6_6.1                                   
  ecj.x86_64 1:3.4.2-6.el6                                                     
  freerdp-libs.x86_64 0:1.0.2-2.el6                                           
  gnutls-utils.x86_64 0:2.8.5-14.el6_5                                         
  ipmitool.x86_64 0:1.8.11-21.el6                                             
  jakarta-commons-collections.noarch 0:3.2.1-3.4.el6                           
  jakarta-commons-daemon.x86_64 1:1.0.1-8.9.el6                               
  jakarta-commons-dbcp.noarch 0:1.2.1-13.8.el6                                 
  jakarta-commons-discovery.noarch 1:0.4-5.4.el6                               
  jakarta-commons-httpclient.x86_64 1:3.1-0.9.el6_5                           
  jakarta-commons-logging.noarch 0:1.0.4-10.el6                               
  jakarta-commons-pool.x86_64 0:1.3-12.7.el6                                   
  java-1.5.0-gcj.x86_64 0:1.5.0.0-29.1.el6                                     
  java_cup.x86_64 1:0.10k-5.el6                                               
  keyutils-libs-devel.x86_64 0:1.4-5.el6                                       
  krb5-devel.x86_64 0:1.10.3-33.el6                                           
  libcgroup.x86_64 0:0.40.rc1-15.el6_6                                         
  libcom_err-devel.x86_64 0:1.41.12-21.el6                                     
  libgcj.x86_64 0:4.4.7-11.el6                                                 
  libguac.x86_64 0:0.9.2-1.el6.anvil                                           
  libselinux-devel.x86_64 0:2.0.94-5.8.el6                                     
  libsemanage-python.x86_64 0:2.0.43-4.2.el6                                   
  libsepol-devel.x86_64 0:2.0.41-4.el6                                         
  libvirt-client.x86_64 0:0.10.2-46.el6_6.2                                   
  libvncserver.x86_64 0:0.9.7-7.el6_6.1                                       
  log4j.x86_64 0:1.2.14-6.4.el6                                               
  mx4j.noarch 1:3.0.1-9.13.el6                                                 
  nc.x86_64 0:1.84-22.el6                                                     
  net-snmp-utils.x86_64 1:5.5-50.el6_6.1                                       
  perl-Net-Telnet.noarch 0:3.03-11.el6                                         
  pexpect.noarch 0:2.3-6.el6                                                   
  python-suds.noarch 0:0.4.1-3.el6                                             
  regexp.x86_64 0:1.5-4.4.el6                                                 
  setools-libs.x86_64 0:3.3.7-4.el6                                           
  setools-libs-python.x86_64 0:3.3.7-4.el6                                     
  sg3_utils.x86_64 0:1.28-6.el6                                               
  sinjdoc.x86_64 0:0.5-9.1.el6                                                 
  syslinux-nonlinux.noarch 0:4.04-3.el6                                       
  tcl.x86_64 1:8.5.7-6.el6                                                     
  telnet.x86_64 1:0.17-48.el6                                                 
  tomcat6-el-2.1-api.x86_64 0:6.0.24-80.el6                                   
  tomcat6-jsp-2.1-api.x86_64 0:6.0.24-80.el6                                   
  tomcat6-lib.x86_64 0:6.0.24-80.el6                                           
  tomcat6-servlet-2.5-api.x86_64 0:6.0.24-80.el6                               
  uuid.x86_64 0:1.6.1-10.el6                                                   
  wsdl4j.noarch 0:1.5.2-7.8.el6                                               
  xml-commons-apis.x86_64 0:1.3.04-3.6.el6                                     
  xml-commons-resolver.x86_64 0:1.1-4.18.el6                                   
  yajl.x86_64 0:1.0.7-3.el6                                                   
  zlib-devel.x86_64 0:1.2.3-29.el6                                             


Complete!
[[image:Striker-1.2.0b_Login-Popup.png|thumb|center|665px|Striker - Login Pop-up]]
==============================================================================
Done.


Getting a list of currently installed packages.
The user name and password are the ones [[#When_user_name_and_password_to_use.3F|use chose during the Striker install]].
- .Existing lock /var/run/yum.pid: another copy is running as pid 13795.
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory : 136 M RSS (467 MB VSZ)
    Started: Tue Dec 30 03:37:36 2014 - 00:24 ago
    State  : Sleeping, pid: 13795
...........................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- ................................................................
Done!


Verifying that everything is installed now.
Enter them and click on "<span class="code">OK</span>".
- Package: [acpid] installed.
- Package: [ccs] installed.
- Package: [cyrus-sasl] installed.
- Package: [cyrus-sasl-plain] installed.
- Package: [dhcp] installed.
- Package: [expect] installed.
- Package: [fence-agents] installed.
- Package: [guacd] installed.
- Package: [httpd] installed.
- Package: [libcdio] installed.
- Package: [libguac-client-rdp] installed.
- Package: [libguac-client-ssh] installed.
- Package: [libguac-client-vnc] installed.
- Package: [man] installed.
- Package: [mlocate] installed.
- Package: [mod_ssl] installed.
- Package: [ntp] installed.
- Package: [openssl-devel] installed.
- Package: [perl-CGI] installed.
- Package: [perl-CPAN] installed.
- Package: [perl-Net-SSH2] installed.
- Package: [perl-Net-SSLeay] installed.
- Package: [perl-TermReadKey] installed.
- Package: [perl-Test-Simple] installed.
- Package: [perl-XML-Simple] installed.
- Package: [perl-YAML-Tiny] installed.
- Package: [policycoreutils-python] installed.
- Package: [postfix] installed.
- Package: [rsync] installed.
- Package: [screen] installed.
- Package: [syslinux] installed.
- Package: [syslinux-tftpboot] installed.
- Package: [tftp-server] installed.
- Package: [tomcat6] installed.
- Package: [unzip] installed.
- Package: [vim-common] installed.
- Package: [vim-enhanced] installed.
- Package: [wget] installed.
- Package: [xinetd] installed.
- All required packages are now installed.


Downloading Striker, if needed.
[[image:Striker-1.2.0b_First-Page.png|thumb|center|665px|Striker - First Page]]
- Downloading the developer version from github.
==============================================================================
--2014-12-30 03:38:03--  https://github.com/digimer/striker/archive/master.zip
Resolving github.com... 192.30.252.129
Connecting to github.com|192.30.252.129|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/digimer/striker/zip/master [following]
--2014-12-30 03:38:03--  https://codeload.github.com/digimer/striker/zip/master
Resolving codeload.github.com... 192.30.252.146
Connecting to codeload.github.com|192.30.252.146|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: `master.zip'


    [      <=>                                                                                                                                                                                                                            ] 2,632,928  1.97M/s  in 1.3s   
That's in, we're in!


2014-12-30 03:38:05 (1.97 MB/s) - `master.zip' saved [2632928]
= Create an "Install Manifest" =


==============================================================================
To build a new ''Anvil!'', we need to create an "Install Manifest". This is a simple [[XML]] file that Striker will use as a blueprint on how to build up a pair of nodes into your ''Anvil!''. It will also serve as instructions for rebuilding or replacing a node that failed down the road.
- Download complete.
- Extracting: [master.zip]
- Output: [Archive:  master.zip]
- Output: [e5b01b1adf258a54d5d0cea9259fdd00b66738e7]
- Output: [  creating: striker-master/]
- Output: [  inflating: striker-master/CHANGELOG  ]
- Output: [  inflating: striker-master/README.md  ]
- Output: [  inflating: striker-master/anvil-node-installer  ]
- Output: [  inflating: striker-master/anvil_setup  ]
- Output: [  creating: striker-master/cgi-bin/]
- Output: [  creating: striker-master/cgi-bin/Data/]
- Output: [  inflating: striker-master/cgi-bin/Data/ajax_schema.xml  ]
- Output: [  inflating: striker-master/cgi-bin/Data/common.xml  ]
- Output: [  inflating: striker-master/cgi-bin/Data/strings.xml  ]
- Output: [  creating: striker-master/cgi-bin/lib/]
- Output: [  creating: striker-master/cgi-bin/lib/AN/]
- Output: [  inflating: striker-master/cgi-bin/lib/AN/Cluster.pm  ]
- Output: [  inflating: striker-master/cgi-bin/lib/AN/Common.pm  ]
- Output: [  inflating: striker-master/cgi-bin/lib/AN/InstallManifest.pm  ]
- Output: [  inflating: striker-master/cgi-bin/lib/AN/MediaLibrary.pm  ]
- Output: [  inflating: striker-master/cgi-bin/lib/AN/Striker.pm  ]
- Output: [  inflating: striker-master/cgi-bin/mediaLibrary  ]
- Output: [  inflating: striker-master/cgi-bin/striker  ]
- Output: [  creating: striker-master/guacamole/]
- Output: [  inflating: striker-master/guacamole/README  ]
- Output: [  inflating: striker-master/guacamole/guacamole-0.9.2.war  ]
- Output: [  inflating: striker-master/guacamole/guacamole-auth-noauth-0.9.2.jar  ]
- Output: [  inflating: striker-master/guacamole/guacamole.properties  ]
- Output: [  inflating: striker-master/guacamole/noauth-config.xml  ]
- Output: [  creating: striker-master/html/]
- Output: [  inflating: striker-master/html/an-cdb.css  ]
- Output: [  inflating: striker-master/html/an-cdb.js  ]
- Output: [  inflating: striker-master/html/favicon.ico  ]
- Output: [  inflating: striker-master/html/index.html  ]
- Output: [  inflating: striker-master/html/jquery-latest.js  ]
- Output: [  creating: striker-master/html/skins/]
- Output: [  creating: striker-master/html/skins/alteeve/]
- Output: [  inflating: striker-master/html/skins/alteeve/common.css  ]
- Output: [  inflating: striker-master/html/skins/alteeve/common.html  ]
- Output: [  inflating: striker-master/html/skins/alteeve/common.js  ]
- Output: [  inflating: striker-master/html/skins/alteeve/config.html  ]
- Output: [  inflating: striker-master/html/skins/alteeve/config.js  ]
- Output: [  creating: striker-master/html/skins/alteeve/images/]
- Output: [ extracting: striker-master/html/skins/alteeve/images/anvil-url_16x16.png  ]
- Output: [ extracting: striker-master/html/skins/alteeve/images/back.png  ]
- Output: [  inflating: striker-master/html/skins/alteeve/images/gather_info.gif  ]
- Output: [  inflating: striker-master/html/skins/alteeve/images/hard-drive-with-led_128x128.png  ]
- Output: [  inflating: striker-master/html/skins/alteeve/images/hard-drive_128x128.png  ]
- Output: [ extracting: striker-master/html/skins/alteeve/images/icon_clear-fields_16x16.png  ]
- Output: [  inflating: striker-master/html/skins/alteeve/images/icon_edit-anvil_16x16.png  ]
- Output: [ extracting: striker-master/html/skins/alteeve/images/icon_server-desktop_n01.png  ]
- Output: [ extracting: striker-master/html/skins/alteeve/images/icon_server-desktop_n02.png  ]
- Output: [ extracting: striker-master/html/skins/alteeve/images/icon_server-desktop_offline.png  ]
- Output: [ extracting: striker-master/html/skins/alteeve/images/icon_server-desktop_oops.png  ]
- Output: [  inflating: striker-master/html/skins/alteeve/images/logo_striker_01.png  ]
- Output: [ extracting: striker-master/html/skins/alteeve/images/pxe_splash_1024_768.png  ]
- Output: [ extracting: striker-master/html/skins/alteeve/images/raid_battery_128x128.png  ]
- Output: [  inflating: striker-master/html/skins/alteeve/images/raid_controller_128x128.png  ]
- Output: [ extracting: striker-master/html/skins/alteeve/images/raid_logical-disk_128x128.png  ]
- Output: [ extracting: striker-master/html/skins/alteeve/images/refresh.png  ]
- Output: [  inflating: striker-master/html/skins/alteeve/images/t.png  ]
- Output: [  inflating: striker-master/html/skins/alteeve/install-manifest.html  ]
- Output: [  inflating: striker-master/html/skins/alteeve/jquery-latest.js  ]
- Output: [  inflating: striker-master/html/skins/alteeve/lsi-storage.html  ]
- Output: [  inflating: striker-master/html/skins/alteeve/main-page.html  ]
- Output: [  inflating: striker-master/html/skins/alteeve/media-library.html  ]
- Output: [  inflating: striker-master/html/skins/alteeve/select-anvil.html  ]
- Output: [  inflating: striker-master/html/skins/alteeve/server.html  ]
- Output: [  inflating: striker-master/striker-installer  ]
- Output: [  inflating: striker-master/striker.conf  ]
- Output: [  creating: striker-master/t/]
- Output: [  inflating: striker-master/t/01-striker.t  ]
- Output: [  inflating: striker-master/t/02-common.t  ]
- Output: [  inflating: striker-master/t/03-installmanifest.t  ]
- Output: [  inflating: striker-master/t/04-cluster.t  ]
- Output: [  inflating: striker-master/t/05-memdialibrary.t  ]
- Output: [  creating: striker-master/tools/]
- Output: [  inflating: striker-master/tools/99-striker-usb.rules  ]
- Output: [  inflating: striker-master/tools/an-cluster_setup.pl  ]
- Output: [  inflating: striker-master/tools/an-cm  ]
- Output: [  inflating: striker-master/tools/an-cm.lib  ]
- Output: [  inflating: striker-master/tools/anvil-configure-network  ]
- Output: [  inflating: striker-master/tools/anvil-cycle-kvm-interfaces.pl  ]
- Output: [  inflating: striker-master/tools/anvil-map-drives  ]
- Output: [  inflating: striker-master/tools/anvil-map-network  ]
- Output: [  inflating: striker-master/tools/anvil-self-destruct  ]
- Output: [  inflating: striker-master/tools/archive_an-cm.log.sh  ]
- Output: [  inflating: striker-master/tools/archive_megasas.log.sh  ]
- Output: [  inflating: striker-master/tools/backup_node_config.sh  ]
- Output: [  inflating: striker-master/tools/bond_watch  ]
- Output: [  inflating: striker-master/tools/call_gather-system-info  ]
- Output: [  inflating: striker-master/tools/call_gather-system-info.c  ]
- Output: [  inflating: striker-master/tools/check_dvd  ]
- Output: [  inflating: striker-master/tools/check_dvd.c  ]
- Output: [  inflating: striker-master/tools/cycle_vm_nics.pl  ]
- Output: [  inflating: striker-master/tools/do_dd  ]
- Output: [  inflating: striker-master/tools/do_dd.c  ]
- Output: [  inflating: striker-master/tools/gather-system-info  ]
- Output: [  inflating: striker-master/tools/generate_tz_list  ]
- Output: [  inflating: striker-master/tools/oui_parser  ]
- Output: [  inflating: striker-master/tools/restart_guacd  ]
- Output: [  inflating: striker-master/tools/restart_guacd.c  ]
- Output: [  inflating: striker-master/tools/restart_tomcat6  ]
- Output: [  inflating: striker-master/tools/restart_tomcat6.c  ]
- Output: [  inflating: striker-master/tools/safe_anvil_start  ]
- Output: [  inflating: striker-master/tools/striker-installer  ]
- Output: [  inflating: striker-master/tools/striker-usb-insert  ]
- Output: [  inflating: striker-master/tools/striker-usb-remove  ]
- Output: [  inflating: striker-master/tools/striker-usb.conf  ]
- Output: [  inflating: striker-master/tools/striker-usb.lib  ]
- Output: [ extracting: striker-master/version  ]
- Will use the source directory: [./striker-master/]
Done.


Configuring Apache.
Once created, the Install Manifest will be saved for future use. You can also download it for safe keeping.
- Backing up original files.
- Copying: [/etc/httpd] to: [/root/anvil/]
- Reading in the existing system user file.
- Writing out the new version.
- Creating the apache home directories.
- Creating: [/var/www/home].
- Creating: [/var/www/home/archive].
- Creating: [/var/www/home/cache].
- Creating: [/var/www/home/media].
- Creating: [/var/www/home/status].
- Creating: [/var/www/html/manifests].
- Setting ownership to: [apache:apache].
- Setting mode to: [0775].
- Setting up Striker's authentication via Apache's htpasswd...
- Generating: [admin]'s: [/var/www/home/htpasswd] password file.
Adding password for user admin
- Reading in the existing config file and adjusting as needed.
- Writing out the new version.
Done.


- Writing out the apache manifest configuration file.
[[image:Striker-1.2.0b_Install-Manifest_Start.png|thumb|center|665px|Striker - Start creating the 'Install Manifest'.]]
Done.


Configuring Tomcat.
Click on the "<span class="code">Install Manifests</span>" file.
- Backing up: [/etc/tomcat6/server.xml].
- Copying: [/etc/tomcat6/server.xml] to: [/root/anvil/]
- Reading in the existing tomcat server configuration server.
- Writing out the new version.
Done.


Configuring guacamole
[[image:Striker-1.2.0b_Install-Manifest_Blank-Form.png|thumb|center|665px|Striker - Install Manifest - Blank form]]
- Creating the Guacamole configuration directory.
- Creating the Guacamole Tomcat directory.
- Creating the Guacamole library directory.
- Creating the Guacamole classpath directory.
- Copying the 'auth-noauth' module into place.
- Copying: [./striker-master//guacamole/guacamole-auth-noauth-0.9.2.jar]
      to: [/var/lib/guacamole/classpath/]
- Copying the 'auth-noauth' module into place.
- Copying: [./striker-master//guacamole/noauth-config.xml]
      to: [/etc/guacamole/]
- Copying: [./striker-master//guacamole/guacamole-0.9.2.war]
      to: [/var/lib/guacamole]
- Creating guacamole web archive symlink.
- Symlink created successfully.
- Copying: [./striker-master//guacamole/guacamole.properties]
      to: [/etc/guacamole/]
- Creating guacamole properties symlink.
- Symlink created successfully.
Done.


Configuring SSH daemon to allow faster logins.
Don't worry, we only need to set the fields in the top, and Striker will auto-fill the rest.
- Backing up: [/etc/ssh/sshd_config].
- Copying: [/etc/ssh/sshd_config] to: [/root/anvil/]
- Reading in the existing ssh daemon configuration file.
- Writing out the new version.
- Generating: [apache]'s RSA keys.
- [ Note ] Please be patient! It might take time to collect entropy.
- Output: [Generating public/private rsa key pair.]
- Output: [Created directory '/var/www/home/.ssh'.]
- Output: [Your identification has been saved in /var/www/home/.ssh/id_rsa.]
- Output: [Your public key has been saved in /var/www/home/.ssh/id_rsa.pub.]
- Output: [The key fingerprint is:]
- Output: [66:f7:6a:1b:ca:96:f8:e4:b7:2f:60:c8:94:4f:48:de apache@an-striker01.alteeve.ca]
- Output: [The key's randomart image is:]
- Output: [+--[ RSA 8191]----+]
- Output: [|                |]
- Output: [|      .          |]
- Output: [|    o +        |]
- Output: [|      = E        |]
- Output: [|    o +S .      |]
- Output: [|      oo+. .    |]
- Output: [|      o.o. .    |]
- Output: [|      .+o.+o    |]
- Output: [|      o=o+=.    |]
- Output: [+-----------------+]
Done.


Configuring the firewall to allow normal and secure web access.
== Filling Out the Top Form ==
- Backing up: [/etc/sysconfig/iptables].
- Copying: [/etc/sysconfig/iptables] to: [/root/anvil/]
- Reading the current firewall configuration.
- Opening access for standard web access.
- Opening access for secure web access.
- Saving the new iptables configuration.
Done.


Copying Striker program files into place.
There are only a few fields you have to set manually.
- Backing up: [/var/www].
- Copying: [/var/www] to: [/root/anvil/]
- Copying HTML files and skins.
- Copying executable files and languages.
- Copying tools.
- Creating the Striker configuration directory.
- Copying base Striker configuration file.
- Copying: [./striker-master//striker.conf]
      to: [/etc/striker]
- Updating mail server values in Striker's configuration file.
- Writing out the new version.
Done.


- Creating empty Striker log file.
[[image:Striker-1.2.0b_Install-Manifest_Form_Top-Section.png|thumb|center|665px|Striker - Install Manifest - Form - Top section]]
Done.


Configuring DHCP server for PXE installs.
{{warning|1=The password will be saved in plan-text in the install manifest out of necessity. So you might want to use a unique password.}}
- Copying: [/etc/dhcp/dhcpd.conf] to: [/root/anvil/]
- Writing out dhcp daemon configuration file.
Done.


Configuring xinetd/tftp server for PXE installs.
A few things you might want to set:
- Copying: [/etc/xinetd.d/tftp] to: [/root/anvil/]
- Reading in current: [/etc/xinetd.d/tftp]
- Writing out the new version.
- Verifying the PXE config directory exists.
- Created: [/var/lib/tftpboot/pxelinux.cfg]
- Verifying the PXE boot directory exists.
- Created: [/var/lib/tftpboot/boot]
Done.


Setting up the install ISOs for PXE installs.
* If you are building your first ''Anvil!'', and if you are following convention, you '''only''' need to set the password you want to use.
- RHEL source defined, configuring.
* If you are building another ''Anvil!'', then increment the "<span class="code">Sequence Number</span>" (ie: use '<span class="code">2</span>' for your second ''Anvil!'', '<span class="code">8</span>' for your eighth, etc.).
- Created: [/var/www//html/rhel6]
* If you're main network, the [[IFN]], isn't using '<span class="code">10.255.0.0/255.255.0.0</span>', then change this to reflect your network.
- Created: [/var/www//html/rhel6/x86_64]
* If your site has no Internet access, you can [[Anvil! m2 Tutorial - Create Local Repositories|create a local repository]] and then pass the path to the repository file in the '<span class="code">Repository</span>' field.
- Created: [/var/www//html/rhel6/x86_64/iso]
- Created: [/var/www//html/rhel6/x86_64/img]
- Created: [/var/www//html/rhel6/x86_64/ks]
- Created: [/var/www//html/rhel6/x86_64/files]
- A RHEL ISO will be generated from the disk in the optical drive.
- Generating a RHEL disk image from the DVD in the optical drive.
- Creating image of optical disk.
  Please be patient as this might take a few minutes.
- Output file: [/var/www//html/rhel6/x86_64/iso//RHEL-6.6_Server.x86_64.iso]
  Write complete!
- Mounting the ISO: [/var/www//html/rhel6/x86_64/iso//RHEL-6.6_Server.x86_64.iso]
- At mount point:  [/var/www//html/rhel6/x86_64/img/]
- Mounted successfully
- Copying isolinux boot files to TFTP.
- Creating tftp boot target: [/var/lib/tftpboot/boot/rhel6/x86_64/]
- target created.
- Unmounted successfully


cat > /etc/yum.repos.d/striker-an-striker01.alteeve.ca-rhel.repo << EOF
[[image:Striker-1.2.0b_Install-Manifest_Form_Top-Section-Filled-Out.png|thumb|center|665px|Striker - Install Manifest - Form - Top section filled out]]
[striker-an-striker01.alteeve.ca-bcn-rhel]
name=Striker an-striker01.alteeve.ca's RHEL 6 BCN repo.
baseurl=http://10.20.4.1/rhel6/x86_64/img/
enabled=1
gpgcheck=0


[striker-an-striker01.alteeve.ca-ifn-rhel]
For this tutorial, we will be creating our fifth internally-used ''Anvil!'', so we will set:
name=Striker an-striker01.alteeve.ca's RHEL 6 IFN repo.
* "<span class="code">Sequence Number</span>" to '<span class="code">5</span>'
baseurl=http://10.255.4.1/rhel6/x86_64/img/
* "<span class="code">''Anvil!'' Password</span>" to '<span class="code">Initial1</span>'
enabled=1
gpgcheck=0
EOF


%end
== Auto-Populating the rest of the Form ==


### Script to setup partitions.
Everything else will be left as default values. If you want to know what the other fields are for, read the description to their right. Some also have a "<span class="code">More Info</span>" button that links to the appropriate section of the main tutorial.
%pre --log=/tmp/ks-preinstall.log


#!/bin/sh
[[image:Striker-1.2.0b_Install-Manifest_Form_Set-Below-Values.png|thumb|center|665px|Striker - Install Manifest - Form - "Set Below Values"]]


# Prepare the disks in the script below. It checks '/proc/partitions' to see
Once ready, click on '<span class="code">Set Below Values</span>'
# what configuration to use. It's obviously just a basic script, and should
# be customized for each use-case. IE: RAID 5 doesn't make sense with disks >
# 1 TB... etc.


cat > /etc/yum.repos.d/striker-an-striker01.alteeve.ca-rhel.repo << EOF
[[image:Striker-1.2.0b_Install-Manifest_Form_Fields-Set.png|thumb|center|665px|Striker - Install Manifest - Form - Fields set]]
[striker-an-striker01.alteeve.ca-bcn-rhel]
name=Striker an-striker01.alteeve.ca's RHEL 6 BCN repo.
baseurl=http://10.20.4.1/rhel6/x86_64/img/
enabled=1
gpgcheck=0


[striker-an-striker01.alteeve.ca-ifn-rhel]
When you do this, Striker will fill out all the fields in the second section of the form.
name=Striker an-striker01.alteeve.ca's RHEL 6 IFN repo.
baseurl=http://10.255.4.1/rhel6/x86_64/img/
enabled=1
gpgcheck=0
EOF


%end
Review these values, particularly if your [[IFN]] is a '<span class="code">/24</span>' ([[netmask]] of '<span class="code">255.255.255.0</span>').


### Script to setup partitions.
{{warning|1=It is vital that the "<span class="code">PDU X Outlet</span>" assigned to each node' [[AN!Cluster_Tutorial_2#Why_Switched_PDUs.3F|switched PDU]] correspond to the port numbers you've actually plugged the nodes into!}}
%pre --log=/tmp/ks-preinstall.log


#!/bin/sh
== Generating the Install Manifest ==


# Prepare the disks in the script below. It checks '/proc/partitions' to see
[[image:Striker-1.2.0b_Install-Manifest_Generate.png|thumb|center|665px|Striker - Install Manifest - Form - Generate]]
# what configuration to use. It's obviously just a basic script, and should
# be customized for each use-case. IE: RAID 5 doesn't make sense with disks >
# 1 TB... etc.
- Writing out RHEL node kickstart file.
- Wrote: [/var/www//html/rhel6/x86_64/ks/anvil-m3-node-basic-bios_rhel.ks].


- Writing out RHEL striker kickstart file.
Once you're happy with the settings, and have updated any you want to tune, click on the "<span class="code">Generate</span>" button at the bottom-right.
- Wrote: [/var/www//html/rhel6/x86_64/ks/striker-m3-basic-bios_rhel.ks].


- RHEL PXE configuration complete.
[[image:Striker-1.2.0b_Install-Manifest_Summary.png|thumb|center|665px|Striker - Install Manifest - Summary]]
- Done!


Configuring PXE server configuration files.
Striker will show you a condensed summary of the install manifest. Please review it '''carefully''' to make sure everything is right.
- Writing out dhcp daemon configuration file.
- Copying PXE server's wallpaper into place.
Done.


Setting ownership and permissions/modes on Striker files.
[[image:Striker-1.2.0b_Install-Manifest_Summary-Generate.png|thumb|center|665px|Striker - Install Manifest - Form - Summary - Generate]]
- On: [/var/www],
  Setting ownership and mode to: [apache:apache] and: [g+w], respectively.
- On: [/etc/guacamole/noauth-config.xml],
  Setting ownership and mode to: [root:apache] and: [0664], respectively.
- On: [/etc/hosts],
  Setting ownership and mode to: [root:apache] and: [g+w], respectively.
- On: [/var/lib/tftpboot/pxelinux.cfg],
  Setting ownership and mode to: [root:root] and: [755], respectively.
- On: [/etc/ssh/ssh_config],
  Setting ownership and mode to: [root:apache] and: [g+w], respectively.
- On: [/etc/striker/striker.conf],
  Setting ownership and mode to: [apache:apache] and: [0660], respectively.
- On: [/etc/an],
  Setting ownership and mode to: [apache:apache] and: [g+w], respectively.
/bin/chown: cannot access `/etc/an': No such file or directory
- On: [/var/log/striker.log],
  Setting ownership and mode to: [apache:apache] and: [g+w], respectively.
- On: [/var/www/tools/call_gather-system-info],
  Setting ownership and mode to: [root:root] and: [6755], respectively.
- On: [/var/www/tools/check_dvd],
  Setting ownership and mode to: [root:root] and: [6755], respectively.
- On: [/var/www/tools/do_dd],
  Setting ownership and mode to: [root:root] and: [6755], respectively.
- On: [/var/www/tools/restart_guacd],
  Setting ownership and mode to: [root:root] and: [6755], respectively.
- On: [/var/www/tools/restart_tomcat6],
  Setting ownership and mode to: [root:root] and: [6755], respectively.
Done.


Configuring daemons to start/stop on boot and start/stop daemons.
Once you are happy, click on "<span class="code">Generate</span>".
- Disabling: [ip6tables] on boot and stopping it.
- Output: [ip6tables: Setting chains to policy ACCEPT: filt[  OK  ]]
- Output: [ip6tables: Flushing firewall rules:            [  OK  ]]
- Output: [ip6tables: Unloading modules:                  [  OK  ]]
- Disabling: [dhcpd] on boot and stopping it.
- Disabling: [NetworkManager] on boot but NOT stopping it.
- Enabling: [iptables] on boot and (re)starting it.
- Output: [iptables: Setting chains to policy ACCEPT: filte[  OK  ]]
- Output: [iptables: Flushing firewall rules:              [  OK  ]]
- Output: [iptables: Unloading modules:                    [  OK  ]]
- Output: [iptables: Applying firewall rules:              [  OK  ]]
- Enabling: [httpd] on boot and (re)starting it.
- Output: [Stopping httpd:                                [FAILED]]
httpd: apr_sockaddr_info_get() failed for an-striker01.alteeve.ca
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
- Output: [Starting httpd:                                [  OK  ]]
- Enabling: [haldaemon] on boot and (re)starting it.
- Output: [Stopping HAL daemon:                            [  OK  ]]
- Output: [Starting HAL daemon:                            [  OK  ]]
- Enabling: [acpid] on boot and (re)starting it.
- Output: [Stopping acpi daemon:                          [  OK  ]]
- Output: [Starting acpi daemon:                          [  OK  ]]
- Enabling: [tomcat6] on boot and (re)starting it.
- Output: [Stopping tomcat6:                              [  OK  ]]
- Output: [Starting tomcat6:                              [  OK  ]]
- Enabling: [guacd] on boot and (re)starting it.
- Output: [Stopping guacd:                                [FAILED]]
guacd[14270]: INFO:  Guacamole proxy daemon (guacd) version 0.9.2
guacd[14270]: INFO:  Successfully bound socket to host ::1, port 4822
guacd[14270]: INFO:  Exiting and passing control to PID 14271
guacd[14271]: INFO:  Exiting and passing control to PID 14272
- Output: [Starting guacd:                                [  OK  ]]
- Enabling: [network] on boot but NOT restarting it.
- Enabling: [ntpd] on boot and (re)starting it.
- Output: [Shutting down ntpd:                            [  OK  ]]
- Output: [Starting ntpd:                                  [  OK  ]]
- Enabling: [xinetd] on boot and (re)starting it.
- Output: [Stopping xinetd:                                [FAILED]]
- Output: [Starting xinetd:                                [  OK  ]]
Done.


Making sure that selinux is permissive.
[[image:Striker-1.2.0b_Install-Manifest_Created.png|thumb|center|665px|Striker - Install Manifest - Generated]]
- Backing up: [/etc/selinux/config].
- Copying: [/etc/selinux/config] to: [/root/anvil/]
- Reading in the existing selinux config file.
- Setting selinux to 'permissive'.
- Writing out the new version.
Done.


Setting root user's password.
- Output: [Changing password for user root.]
- Output: [passwd: all authentication tokens updated successfully.]
Done!
Done!


##############################################################################
You can now create a new manifest if you want, download the one you just created or, if you're ready, run the one you just made.
# NOTE: Your 'root' user password is now the same as the Striker user's     #
 
#      password you just specified. If you want a different password,       #
= Building an Anvil! =
#      change it now with 'passwd'!                                        #
 
##############################################################################
{{Warning|1=Be sure your switched PDUs are configured! The install will fail if it tries to reach the PDUs and can not do so!}}
 
* [[Configuring an APC AP7900]]
 
== Installing the OS on the Nodes via Striker ==
 
If you recall, one of Striker's nice features is acting as a boot target for new ''Anvil!'' nodes.
 
Before we can run our new install manifest, we need to have the nodes running a fresh install. So that is what we will do first.
 
{{note|1=How you enable network booting will depend on your hardware. Please consult your vendor's document.}}
 
* [[Configuring Hardware RAID Arrays on Fujitsu Primergy]]
* [[Configuring Network Boot on Fujitsu Primergy]]
 
=== Building a Node's OS Using Striker ===
 
{{warning|1=This process will completely erase '''ALL''' data on your server! Be certain there is nothing on the node you want to save before proceeding!}}
 
If your network has a normal [[DHCP]] server, it will be hard to ensure that your new node gets it's IP address (and boot instructions) from Striker.
 
{{note|1=The easiest way to deal with this is to unplug the [[IFN]] and [[SN]] links until after your node has booted.}}
 
[[image:Fujitsu_RX300-S8_Boot-Screen.png|thumb|center|665px|Fujitsu RX300 S6 - BIOS boot screen - <span class="code"><F12> Boot Menu</span>]]
 
Boot your node and, when prompted, press the key assigned to your server to manually select a boot device.
 
* On most computers, including Fujitsu servers, this is the <span class="code"><F12></span> key.
* On HP machines, this is the <span class="code"><F11></span> key.
 
This will bring up a menu list of bootable devices (found and enabled in the BIOS).
 
If you see one or more entries with "<span class="code">IBA GE Slot ####</span>" in them, those are your network cards. (<span class="code">IBA GE</span> is short for "Intel Boot Agent, Gigabit Ethernet)
 
You will have to experiment to figure out which one is on the [[BCN]], but once you figure it out on one node, you will know the right one to use on the second node, assuming you've cabled the machines the same way (and you really should have!).
 
[[image:Fujitsu_RX300-S8_Boot-Selection.png|thumb|center|665px|Fujitsu RX300 S6 - BIOS selection screen]]
 
In my case, the "<span class="code">PCI BEV: IBA GE Slot 0201 v1338</span>" was the boot option of one of the interfaces on my node's BCN, so that is what I selected.


Writing the new udev rules file: [/etc/udev/rules.d/70-persistent-net.rules]
Once selected, the node will send out a "[[DHCP]] reqest" (a broadcast message sent to the entire network asking if anyone will give it an IP address).
Done.


Deleting old network configuration files:
The Striker machine will answer with an offer. If you want to see what this looks like, open a terminal on your Striker dashboard and run:
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth0]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth3]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth1]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth2]
Done.


Writing new network configuration files.
<syntaxhighlight lang="bash">
tail -f -n 0 /var/log/messages
</syntaxhighlight>


[ Warning ] - Please confirm the network settings match what you expect and
When the request comes in and Striker sends on offer, you should see something like this:
              then reboot this machine.


Installation of Striker is complete!
<syntaxhighlight lang="text">
Dec 31 19:16:30 an-striker01 dhcpd: DHCPDISCOVER from 00:1b:21:81:c3:35 via bcn-bond1
Dec 31 19:16:31 an-striker01 dhcpd: DHCPOFFER on 10.20.10.200 to 00:1b:21:81:c3:35 via bcn-bond1
Dec 31 19:16:32 an-striker01 dhcpd: DHCPREQUEST for 10.20.10.200 (10.20.4.1) from 00:1b:21:81:c3:35 via bcn-bond1
Dec 31 19:16:32 an-striker01 dhcpd: DHCPACK on 10.20.10.200 to 00:1b:21:81:c3:35 via bcn-bond1
Dec 31 19:16:32 an-striker01 xinetd[14839]: START: tftp pid=14848 from=10.20.10.200
Dec 31 19:16:32 an-striker01 in.tftpd[14849]: tftp: client does not accept options
</syntaxhighlight>
</syntaxhighlight>


*Ding*
The '<span class="code">00:1b:21:81:c3:35</span>' string is the [[MAC]] address of the network interface you just booted from.
 
Pretty cool, eh?
 
Back to the node...
 
[[image:Fujitsu_RX300-S8_PXE-Boot-Started.png|thumb|center|665px|Fujitsu RX300 S6 - PXE boot starting]]
 
Here we see what the DHCP transaction looks like from the node's side.
 
* See the "<span class="code">CLIENT IP: 10.20.10.200</span>"? That is the first IP in the [[#Do_we_want_to_be_an_Anvil.21_node_install_target.3F|range we selected earlier]].
* See the "<span class="code">DHCP IP: 10.20.4.1</span>"? That is the IP address of the Striker dashboard, confirming that it was the one who we're booting off of.
* The "<span class="code">TFTP...</span>" shows us that the node is downloading the boot image. There is some more text after that, but it tends to fly by and it isn't as interesting, anyway.
 
[[image:Fujitsu_RX300-S8_PXE-Boot-Main-Page.png|thumb|center|665px|Fujitsu RX300 S6 - PXE boot main page]]
 
Shortly after, you will see the "Boot Menu".
 
If you do nothing, after 60 seconds, the menu will close and the node will try to boot off of it's hard drive. If you press the 'down' arrow, it will stop the timer. This is used in case someone sets their node to boot off of the network card all the time, their node will still boot normally, it will just take about a minute longer.
 
{{note|1=If you specified both RHEL and [[CentOS]] install media, you will see four options in your menu. If you installed CentOS only, then that will be show instead of RHEL.}}
 
[[image:Fujitsu_RX300-S8_PXE-Boot-Main-RHEL-Node-Selected.png|thumb|center|665px|Fujitsu RX300 S6 - PXE boot - RHEL 6 Node selected]]
 
We want to build a [[RHEL]] based node, so we're going to select option "<span class="code">2) Anvil! M3 node - Traditional BIOS - RHEL 6</span>".
 
[[image:Fujitsu_RX300-S8_PXE-Boot-Install-Loading.png|thumb|center|665px|Fujitsu RX300 S6 - PXE boot - RHEL 6 install loading]]
 
After you press <span class="code"><enter></span>, you will see a whirl of text go by.
 
[[image:Fujitsu_RX300-S8_PXE-Boot-Install-NIC-Selection.png|thumb|center|665px|Fujitsu RX300 S6 - PXE boot - RHEL 6 NIC selection screen]]
 
Up until now, we were working with the machine's BIOS, which lives below the software on the machine.
 
At this stage, the operating system (or rather, it's installer) has taken over. It is separate, so it doesn't know which network card was used to get to this point.
 
Unfortunately, that means we need to select which NIC to install from.
 
If you watched Striker's log file, you will recall that it told us the DHCP request came in from "<span class="code">00:1b:21:81:c3:35</span>". Thanks to that, we know exactly which interface to choose; "<span class="code">eth5</span>" in my case.
 
If you didn't watch the logs, but if you've unplugged the [[IFN]] and [[SN]] network cards, then this shouldn't be too tedious.
 
If you don't know which port to use, start with '<span class="code">eth0</span>' and work your way up. If you select the wrong interface, it will time out and let you choose again.
 
{{note|1=If your nodes are effectively identical, then it's likely that the '<span class="code">ethX</span>' device you end up using on the first node will be the same on the second node, but that is not a guarantee.}}
 
[[image:Fujitsu_RX300-S8_PXE-Boot-Install-Configuring-eth0.png|thumb|center|665px|Fujitsu RX300 S6 - PXE boot - RHEL 6 - Configuring <span class="code">eth0</span>]]
 
No matter which interface you select, the OS will try to configure '<span class="code">eth0</span>'. This is normal. Odd, but normal.


Striker is done!
[[image:Fujitsu_RX300-S8_Install_Retrieving-install-image.png|thumb|center|665px|Fujitsu RX300 S6 - Downloading install image]]
 
Once you get the right interface, the system will download the "install image". This of it like a specialized small live CD; It gets your system running well enough to install the actual operating system.
 
[[image:Fujitsu_RX300-S8_Install_Formatting-HDD.png|thumb|center|665px|Fujitsu RX300 S6 - Formatting hard drive]]
 
Next, the installer will partition and format the hard drive. If you created a hardware [[RAID]] array, it will look like just one big hard drive to the OS.
 
[[image:Fujitsu_RX300-S8_Install_Underway.png|thumb|center|665px|Fujitsu RX300 S6 - Install underway]]
 
Once the format is done, the install of the OS itself will start.
 
If you have fast servers, this step won't take very long at all. If you have more modest servers, it might take a little while.
 
[[image:Fujitsu_RX300-S8_Install_Complete.png|thumb|center|665px|Fujitsu RX300 S6 - Install complete!]]
 
Finally, the install will finish.
 
It will wait until you tell it to reboot.
 
{{note|1=ToDo: Show the user how to disable the dashboard's DHCP server.}}
 
'''Before you do!'''
 
Remember to plug your network cables back in if you unplugged them earlier. Once they're in, click on '<span class="code">reboot</span>'.
 
=== Looking Up the New Node's IP Address ===
 
[[image:Striker-v1.2.0b_Node-Install_First-Boot.png|thumb|center|665px|Node Install - First boot]]
 
The default user name is '<span class="code">root</span>' and the default password is '<span class="code">Initial1</span>'.
 
[[image:Striker-v1.2.0b_Node-Install_First-Login.png|thumb|center|665px|Node Install - First login]]
 
Excellent!
 
In order for Striker to be able to use the new node, we have to tell it where to find it. To do this, we need to know the node's IP address.


Reboot the system and your new Striker dashboard will be ready to use!
We can look at the IP addresses already assigned to the node using the command:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
reboot
ifconfig
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
Broadcast message from root@an-striker01.alteeve.ca
eth0      Link encap:Ethernet  HWaddr A0:36:9F:02:E0:04 
(/dev/pts/0) at 3:41 ...
          inet6 addr: fe80::a236:9fff:fe02:e004/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:2520 (2.4 KiB)
          Memory:ce400000-ce4fffff
 
lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
</syntaxhighlight>
 
{{note|1=If the text scrolls off your screen, press '<span class="code">ctrl</span> + <span class="code">PgUp</span>' to scroll up one "page" at a time.}}
 
Depending on how your network is setup, your new node may have not booted with an IP address, as is the case above (note that there is no IP address beside '<span class="code">eth0</span>').
 
This is because RHEL6, by default, doesn't enable network interfaces that weren't using during the install.
 
Thankfully, this is usually easy to fix.
 
On most servers, the six network cards will be named '<span class="code">eth0</span>' through '<span class="code">eth5</span>', as we saw during the install.
 
You can try this command to see if you get an IP address:


The system is going down for reboot NOW!
<syntaxhighlight lang="bash">
ifup eth1
</syntaxhighlight>
<syntaxhighlight lang="text">
Determining IP information for eth1... done.
</syntaxhighlight>
</syntaxhighlight>


= Using Striker =
This looks good! Lets take a look at what we got:


[[image:Striker-Install_RHEL6_.png|thumb|center|400px|RHEL 6.6 - ]]
<span class="code"></span>
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
ifconfig eth1
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
eth1      Link encap:Ethernet  HWaddr A0:36:9F:02:E0:05 
          inet addr:10.255.1.24  Bcast:10.255.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a236:9fff:fe02:e005/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:435 errors:0 dropped:0 overruns:0 frame:0
          TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:33960 (33.1 KiB)  TX bytes:13947 (13.6 KiB)
          Memory:ce500000-ce5fffff
</syntaxhighlight>
</syntaxhighlight>
See the part that says '<span class="code">inet addr:10.255.1.24</span>'? That is telling us that this new node has the IP address '<span class="code">10.255.1.24</span>'.
That's all we need!
Jot this down and lets go back to the Striker installer.
== Running the Install Manifest ==
{{note|1=Did you remember to install the OS on both nodes? If not, repeat the steps above for the second node.}}
[[image:Striker-1.2.0b_Install-Manifest_Run.png|thumb|center|665px|Striker - Install Manifest - Run]]
When you're ready, click on "<span class="code">Run</span>".
[[image:Striker-1.2.0b_Install-Manifest_Current-IPs.png|thumb|center|665px|Striker - Install Manifest - Summary and current nodes' IPs and passwords]]
A summary of the install manifest will be show, please review it carefully and be sure you are about to run the correct one.
[[#Looking Up the New Node's IP Address|If you recall]], we noted the IP address each new node got after it's operating system was installed. This is where you enter each machine's current IP address and '''current''' password, which is usually "<span class="code">Initial1</span>" when installed via Striker.
When ready, click on '<span class="code">Begin Install</span>'!
=== Initial hardware scan ===
{{note|1=This section will be a little long, mainly due to screen shots and explaining what is happening. Baring trouble though, once the network remap is done, everything else is automated. So long as the install finishes successfully, there is no need to read all this outside of curiosity.}}
Before the install starts, Striker looks to see if there is enough storage to meet the requested space and to see if the network needs to be mapped.
A remap is needed if the install manifest doesn't recognize the physical network interfaces and if the network wasn't previously configured.
In this tutorial, the nodes are totally new so both will be remapped.
[[image:Striker-1.2.0b_Hardware-scan_01.png|thumb|center|665px|Striker - v1.2.0b - Initial sanity checks and network remap started]]
The steps explained;
{|class="wikitable"
|-
|style="color: #13749a; font-weight: bold;"|Testing access to nodes
|This is a simple test to ensure that Striker can log into the two nodes. If this fails, check the IP address and password
|-
|style="color: #13749a; font-weight: bold;"|Checking OS version
|The ''Anvil!'' is supported on [[Red Hat Enterprise Linux]] and [[CentOS]] version 6 or newer. This check ensures that one these versions is in use.<br />{{note|1=If the y-stream ("<span class="code">6.x</span>") sub-version is not "<span class="code">6</span>", a warning will me issued but the install will proceed.}}
|-
|style="color: #13749a; font-weight: bold;"|Checking Internet access
|A check is made to ping the open DNS server at IP address '<span class="code">8.8.8.8</span>' as a test of Internet access. If no access is found, the installer will warn you but it will try to proceed.<br />{{note|1=This steps checks for network routes that might conflict with the default route and will temporarily delete any found from the active routing table.}}{{note|1=If you don't have Internet access and if the install fails, be sure to [[Anvil! m2 Tutorial - Create Local Repositories|setup a local repository]] and specify it in the Install Manifest.}}
|-
|style="color: #13749a; font-weight: bold;"|Checking for execution environment
|The Striker installer copies a couple of small programs written in the "<span class="code">[[perl]]</span>" programming language to assist with the configuration of the nodes. This check ensures that <span class="code">perl</span> has been installed and, if not, attempts to install it.
|-
|style="color: #13749a; font-weight: bold;"|Checking storage
|This step is one of the more important ones. It examines the existing partitions and/or available free hard space, compares it against the requested storage pool and media library size and tries to determine if the install can proceed safely.<br /><br />If it can, it tells you how the storage will be divided up (if at all). This is where you can confirm that the to-be-created storage pools are, in fact, what you want.
|-
|style="color: #13749a; font-weight: bold;"|Current Network
|Here, Striker checks to see if the network has already been configured or not. If not, it checks to see if it recognizes the interfaces already. In this tutorial, it doesn't so it determines that the network on both nodes needs to be "remapped". That is, it needs to determine which physical interface (by [[MAC]] address) will be used for which role.
|}
=== Remapping the network ===
{{note|1=If you can not monitor the screen and unplug the network at the same time, the remap order will be:
# [[Back-Channel Network]] - Link 1
# [[Back-Channel Network]] - Link 2
# [[Storage Network]] - Link 1
# [[Storage Network]] - Link 2
# [[Internet-Facing Network]] - Link 1
# [[Internet-Facing Network]] - Link 2
You can do all these in sequence without watching the screen. Please allow five seconds per step. That is, unplug the cable, '''count to 5''', plug the cable in, '''count to 5''', unplug the next cable.
If you get any cables wrong, don't worry.
Just proceed by unplugging the rest until all have been unplugged at least once. You will get a chance to re-run the mapping if you don't get it right the first time.}}
In order for Striker to map the network, it needs to first make sure all interfaces have been started. It does this by configuring each inactive interface to have no address and then "brings them up" so that the operating system will be able to monitor their state.
Next, Striker asks you to physically unplug, wait a few seconds and then plug back in each network interface.
As you do this, Striker sees the OS report a given interface losing and then restoring it's network link. It knows which MAC address is assigned to each device, and thus can map out how to reconfigure the network.
It might feel a little tedious, but this is the last step you need to do manually.
{{note|1=All six network interfaces must be plugged into a switch for this stage to complete. The installer will prompt you and then wait if this is not the case.}}
==== Mapping Node 1 - "Back-Channel Network - Link 1" ====
[[image:Striker-1.2.0b_Network-Remap_Node-1_BCN-Link1.png|thumb|center|665px|Striker - Network Remap - Node 1 - BCN Link 1 prompt]]
The first interface to map is the "[[Back-Channel Network]] - Link 1". This is the primary [[BCN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 1 - "Back-Channel Network - Link 2" ====
[[image:Striker-1.2.0b_Network-Remap_Node-1_BCN-Link2.png|thumb|center|665px|Striker - Network Remap - Node 1 - BCN Link 2 prompt]]
Notice that it now shows the [[MAC]] address and current device name for BCN Link 1? Nice!
The next interface to map is the "[[Back-Channel Network]] - Link 2". This is the backup [[BCN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 1 - "Storage Network - Link 1" ====
[[image:Striker-1.2.0b_Network-Remap_Node-1_SN-Link1.png|thumb|center|665px|Striker - Network Remap - Node 1 - SN Link 1 prompt]]
Next up is the "[[Storage Network]] - Link 1". This is the primary [[SN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 1 - "Storage Network - Link 2" ====
[[image:Striker-1.2.0b_Network-Remap_Node-1_SN-Link2.png|thumb|center|665px|Striker - Network Remap - Node 1 - SN Link 2 prompt]]
Next is the "[[Storage Network]] - Link 2". This is the backup [[SN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 1 - "Internet-Facing Network - Link 1" ====
[[image:Striker-1.2.0b_Network-Remap_Node-1_IFN-Link1.png|thumb|center|665px|Striker - Network Remap - Node 1 - IFN Link 1 prompt]]
Now we're onto the last network pair with the "[[Internet-Facing Network]] - Link 1". This is the primary [[IFN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 1 - "Internet-Facing Network - Link 2" ====
[[image:Striker-1.2.0b_Network-Remap_Node-1_IFN-Link2.png|thumb|center|665px|Striker - Network Remap - Node 1 - IFN Link 2 prompt]]
Last for this node is the "[[Internet-Facing Network]] - Link 2". This is the secondary [[IFN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
=== Mapping Node 1 - Done! ===
[[image:Striker-1.2.0b_Network-Remap_Node-1_Complete.png|thumb|center|665px|Striker - Network Remap - Node 1 - Complete]]
This ends the remap of the first node.
==== Mapping Node 2 - "Back-Channel Network - Link 1" ====
[[image:Striker-1.2.0b_Network-Remap_Node-2_BCN-Link1.png|thumb|center|665px|Striker - Network Remap - Node 2 - BCN Link 1 prompt]]
Now we're on to the second node!
The prompts are going to be in the same order as it was for node 1.
The first interface to map is the "[[Back-Channel Network]] - Link 1". This is the primary [[BCN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 2 - "Back-Channel Network - Link 2" ====
[[image:Striker-1.2.0b_Network-Remap_Node-2_BCN-Link2.png|thumb|center|665px|Striker - Network Remap - Node 2 - BCN Link 2 prompt]]
Notice that it now shows the [[MAC]] address and current device name for BCN Link 1? Nice!
The next interface to map is the "[[Back-Channel Network]] - Link 2". This is the backup [[BCN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 2 - "Storage Network - Link 1" ====
[[image:Striker-1.2.0b_Network-Remap_Node-2_SN-Link1.png|thumb|center|665px|Striker - Network Remap - Node 2 - SN Link 1 prompt]]
Next up is the "[[Storage Network]] - Link 1". This is the primary [[SN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 2 - "Storage Network - Link 2" ====
[[image:Striker-1.2.0b_Network-Remap_Node-2_SN-Link2.png|thumb|center|665px|Striker - Network Remap - Node 2 - SN Link 2 prompt]]
Next is the "[[Storage Network]] - Link 2". This is the backup [[SN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 2 - "Internet-Facing Network - Link 1" ====
[[image:Striker-1.2.0b_Network-Remap_Node-2_IFN-Link1.png|thumb|center|665px|Striker - Network Remap - Node 2 - IFN Link 1 prompt]]
Now we're onto the last network pair with the "[[Internet-Facing Network]] - Link 1". This is the primary [[IFN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 2 - "Internet-Facing Network - Link 2" ====
[[image:Striker-1.2.0b_Network-Remap_Node-2_IFN-Link2.png|thumb|center|665px|Striker - Network Remap - Node 2 - IFN Link 2 prompt]]
Last for this node is the "[[Internet-Facing Network]] - Link 2". This is the secondary [[IFN]] link.
Please unplug it, '''count to 5''' and then plug it back in.
==== Mapping Node 2 - Done! ====
[[image:Striker-1.2.0b_Network-Remap_Node-2_Complete.png|thumb|center|665px|Striker - Network Remap - Node 2 - Complete]]
This ends the remap of the first node.
=== Final review ===
[[image:Striker-1.2.0b_Install-Summary-and-Review-Menu.png|thumb|center|665px|Striker - Install summary and review]]
Now that Striker has had a chance to review the hardware it can tell you '''exactly''' how it will build your ''Anvil!''.
The main two points to review are the storage layout and the networking.
==== Optional; Registering with RHN ====
{{warning|1=If you skip RHN registration and if you haven't defined a local repository with the needed packages, the install will almost certainly fail!
Each node will consume a "Base" and "Resilient Storage" entitlement as well as use the "Optional" package group. If you do not have sufficient entitlements, the install will likely fail as well.}}
{{note|1=[[CentOS]] users can ignore this section.}}
If Striker detected that you are running [[RHEL]] proper, and if it detected that the nodes haven't been registered with Red Hat yet, it will provide an opportunity to register the nodes as part of the install process.
The user name and password are passed to the nodes only (via [[SSH]]) and registration works via the '<span class="code">rhn_register</span>' tool.
==== If you are unhappy with the planned storage layout ====
If the storage is not going to be allocated the way you like, you will need to modify the Install Manifest itself.
To do this, click on the '<span class="code">Modify Manifest</span>' button at the bottom-left.
This will take you back to the same page that you used to create the original manifest. Adjust the storage and then generate a new manifest. After being created, locate it at the top of the page and press '<span class="code">Run</span>'. The new run should show you your newly configured storage.
==== If you are unhappy with the planned network mapping ====
If you mixed up the cables when you were reseating them during the mapping stage, simply click on the '<span class="code">Remap Network</span>' button at the bottom-center of the page.
The portion of the install that just ran will start over.
=== Running the install! ===
If you are happy with the plan, press the '<span class="code">Install</span>' button at the bottom-right.
There is now nothing more for you to do, so long as nothing fails. '''If''' something fails, correct the error and then re-run the install. Striker tries to be smart enough to figure out what part of the install was already completely and pick up where it left off on subsequent runs.
=== Understanding the output ===
{{warning|1=The install process can '''take a long time''' to run, please don't interrupt it!
On my test system (pair of older Fujitsu RX300 S6 nodes) and a fast internet connection, the "<span style="color: #13749a; font-weight: bold;">Installing Programs</span>" stage alone took over ten minutes to complete and appear on the screen. The "<span style="color: #13749a; font-weight: bold;">Updating OS</span>" stage took another five minutes. The entire process taking up to a half-hour to complete.
Please be patient and let the program run.}}
[[image:Striker-1.2.0b_Install-Complete.png|thumb|center|665px|Striker - Install completed successfully!]]
The sanity check runs one more time just the be sure nothing changed. Once done, the install starts.
Below is a table that explains what is happening at each stage:
{|class="wikitable"
|-
|style="color: #13749a; font-weight: bold;"|Backing up original files
|No program is perfect, so Striker makes backups of all files it might change under '<span class="code">/root/</span>'. If Striker sees that backups already exist, it '''does not''' copy them again, to help ensure re-runs don't clobber original backups.
|-
|style="color: #13749a; font-weight: bold;"|OS Registration
|If you are running [[RHEL]] and the nodes were not registered with RHN, and if you provided RHN credentials, this is where they will be registered. This process can take a couple of minutes to complete, depending on the speen of your network and the load on the RHN servers.
|-
|style="color: #13749a; font-weight: bold;"|Network configuration
|Here, the existing network configuration files are removed and new ones are written, if needed, based on the mapping done earlier. When this completes, you will have six interfaces bound into three fault-tolerant bonds with the [[IFN]] bond being connected to the node's '<span class="code"></span>ifn-bridge1<span class="code"></span>' virtual bridge.
{{note|1=The network changes '''are not''' activated at this stage! If the network was changed, the node will be queued up to reboot later.}}
|-
|style="color: #13749a; font-weight: bold;"|Repo: '<span class="code">X</span>'
|The <span class="code">[https://alteeve.ca/repo/el6/ an.repo]</span> repository, plus any you defined earlier, are added to the nodes and activated at this stage.
|-
|style="color: #13749a; font-weight: bold;"|Installing programs
|{{note|1=This is usually the longest stage of the install, please be patient.}}
At this stage, all additional software that is needed for the ''Anvil!'' nodes to work is installed. This requires a pretty large download which, depending on the speed of your Internet connection, could take a very long time to complete. Using a [[Anvil! m2 Tutorial - Create Local Repositories|local repository]] can greatly speed this stage up.
|-
|style="color: #13749a; font-weight: bold;"|Updating OS
|{{note|1=This is usually the second longest stage of the install, please still be patient.}}
At this stage, all of the pre-installed programs on the nodes are updated. This requires downloading more packages from the Internet, so it can be slow depending on the speed of your connection. Again, using a local repository can dramatically speed up this stage.
|-
|style="color: #13749a; font-weight: bold;"|Configuring daemons
|At this stage, all installed [[daemons]] are configured so that they start or don't start when the node boots.
|-
|style="color: #13749a; font-weight: bold;"|Updating cluster password
|The cluster uses it's own password, which in turn Striker uses to create and remove servers from the ''Anvil!''. That password is set here.
|-
|style="color: #13749a; font-weight: bold;"|Configuring cluster
|Here, the core configuration file for the cluster stack is created and written out.
|-
|style="color: #13749a; font-weight: bold;"|Configuring cluster LVM
|By default, [[LVM]] is not cluster-aware. At this stage, we reconfigure it so that it becomes cluster aware.
|-
|style="color: #13749a; font-weight: bold;"|Configure IPMI
|Our primary [[AN!Cluster_Tutorial_2#Concept.3B_Fencing|fence method]] is to use the [[IPMI]] baseboard in each node. At this stage, their IPs are assigned and their password is set.
|-
|style="color: #13749a; font-weight: bold;"|Partitioning Pool 1
|If needed, the first partition is created on each node for storing the "Media Library" data and for the servers that will eventually run on the first node.
If a partition is created, the node will be scheduled for reboot.
|-
|style="color: #13749a; font-weight: bold;"|Partitioning Pool 2
|Again if needed, the second partition is created on each node for storing the servers that will run on node 2.
If a partition is created, the node will be scheduled for reboot.
|-
|style="color: #13749a; font-weight: bold;"|Rebooting
|If either or both node needs to be rebooted for changed to take effected, that will happen at this stage.
{{note|1=Striker reboots node 1 first, then node 2. Should node 1 fail to come back up, the installer will abort immediately. This way, hopefully, you can use node 2 to try and diagnose the problem with node 2 instead of risking both nodes being left inaccessible.}}
|-
|style="color: #13749a; font-weight: bold;"|Pool 1 Meta-data
|After the reboot, the first partition will be configured for use in the ''Anvil!'''s replicated storage subsystem, called [[DRBD]]. This step configures the storage for pool 1, if needed.
|-
|style="color: #13749a; font-weight: bold;"|Pool 2 Meta-data
|This stage handles configuring the storage for pool 2, if needed.
|-
|style="color: #13749a; font-weight: bold;"|Cluster membership first start
|At this stage, communication between the nodes on the [[BCN]] is verified. If access is good, the cluster stack's communication and fencing layer will start for the first time. Once started, fencing mechanisms are tested.
{{note|1=If either fence method fails, the install will abort. It is not safe to proceed until fencing works, so please address any issues that arise at this stage before trying to re-run the installer!}}
|-
|style="color: #13749a; font-weight: bold;"|Configuring <span class="code">root</span>'s SSH
|Each node needs to record the other's [[SSH]] "fingerprint" in order for [[live-migration]] of the servers to work. This is ensured at this stage.
|-
|style="color: #13749a; font-weight: bold;"|DRBD first start
|When both nodes are new, the replicated storage will need to be initialized in order for it to work. This is handled here. If there was existing data, then the replication is simply started.
|-
|style="color: #13749a; font-weight: bold;"|Start clustered LVM
|The replicated storage is raw and needs to be managed. The ''Anvil!'' uses clustered [[LVM]] for this. Here we start the [[daemon]] the provides this capability.
{{note|1=After this stage, the storage acts as one on both nodes, so the following storage configuration happens on one node only.}}
|-
|style="color: #13749a; font-weight: bold;"|Create Physical Volumes
|Here, each replicated storage device that backs our two storage pools is configured for use by clustered LVM as a "Physical Volume" ([[PV]]).
|-
|style="color: #13749a; font-weight: bold;"|Create Volume Groups
|This is the second stage of the [[LVM]] configuration. Here, the PVs are assigned to a "Volume Group" ([[VG]]).
|-
|style="color: #13749a; font-weight: bold;"|Create the LV for cluster FS
|The ''Anvil!'' uses a small amount of space, 40 [[GiB]] by default, for storing server definition files, provision scripts and install media (DVD images). This step carves a small "Logical Volume" ([[LV]]) out of the first storage pool's [[VG]].
|-
|style="color: #13749a; font-weight: bold;"|Create Clustered Filesystem
|The [[LV]] from the previous step is, basically, raw storage. This step formats it with the [[GFS2]] filesystem which allows for the data on it to be accessed by both nodes at the same time.
|-
|style="color: #13749a; font-weight: bold;"|Configure FS Table
(mislabelled in the screen shot)
|If the cluster filesystem was created, the information about this new filesystem is added the each node's central file system table.
|-
|style="color: #13749a; font-weight: bold;"|Starting the storage service
|With the storage now configured and running, it is now placed under the cluster's management and control.
|-
|style="color: #13749a; font-weight: bold;"|Starting the hypervisor
|This enables virtualization layer needed for the ''Anvil!'' to host servers.
|-
|style="color: #13749a; font-weight: bold;"|Updating system password
|This is the last stage of the install! Here, the '<span class="code">root</span>' password on each node is changed to match that defined in the install manifest.
|}
Done!
Your ''Anvil!'' is now ready to be added to Striker.


{{footer}}
{{footer}}

Latest revision as of 19:13, 11 November 2015

 AN!Wiki :: How To :: Anvil! m2 Tutorial

Warning: This tutorial is NOT complete! It is being written using Striker version 1.2.0 β. Things may change between now and final release.

How to build an Anvil! from scratch in under a day!

I hear you now; "Oh no, another book!"

Well don't despair. If this tutorial is a "book", it's a picture book.

You should be able to finish the entire build in a day or so.

If you're familiar with RHEL/Linux, then you might well be able to finish by lunch!

A typical Anvil! build-out

What is an 'Anvil!', Anyway?

Simply put;

  • The Anvil! is a high-availability cluster platform for hosting virtual machines.

Slightly less simply put;

  • The Anvil! is;
    • Exceptionally easy to build and operate.
    • A pair of "nodes" that work as one to host one or more highly-available (virtual) servers in a manner transparent to the servers.
      • Hosted servers can live-migrate between nodes, allowing business-hours maintenance of all systems without downtime.
      • Existing expertise and work-flow are almost 100% maintained requiring almost no training for staff and users.
    • A "Foundation Pack" of fault-tolerant network switches, switched PDUs and UPSes. Each Foundation pack can support one or more "Compute Pack" node pairs.
    • A pair of "Striker" dashboard management and support systems which provide very simple, web-based management on the Anvil! and it's hosted servers.
    • A "Scan Core" monitoring and alert system tightly couple to all software and hardware systems that provides fault detection, predictive failure analysis, and environmental monitoring with an early-warning system.
      • Optionally, "Scan Core" can automatically, gracefully shut down an Anvil! and it's hosted servers in low-battery and over-temperature events as well as automatically recovery when safe to do so.
    • Optional commercial supported with 24x7x365 monitoring, installation, management and customization services.
    • 100% open source (GPL v2+ license) with HA systems built to be compliant with Red Hat support.
    • No vendor lock-in.
      • Entirely COTS equipment, entirely open platform. You are always free to shift vendors at any time.

Pretty darn impressive, really.

What This Tutorial Is

This is meant to be a quick to follow project.

It assumes no prior experience with Linux, High Availability clustering or virtual servers.

It does require a basic understanding of things like networking, but as few assumptions as possible are made about prior knowledge.

What This Tutorial Is Not

Unlike the main tutorial, this tutorial is not meant to give the reader an in-depth understanding of High Availability concepts.

Likewise, it will not go into depth on why the Anvil! is designed the way it is.

It will not go into a discussion of how and why you should choose hardware for this project, either.

All this said, this tutorial will try to provide links to the appropriate sections in the main tutorial as needed. So if there is a point where you feel lost, please take a break and follow those thinks.

What is Needed?

Note: We are an unabashed Fujitsu, Brocade and APC reseller. No vendor is perfect, of course, but we've selected these companies for their high quality build standards and excellent post-sales support. You are, of course, perfectly able to substitute in any hardware you like, just so long as it meets the system requirements listed.

Some system requirements;

(All equipment must support RHEL version 6)

A machine for Striker

A server? An appliance!

The Striker dashboard runs like your home router; It has a web-interface that allows you to create, manage and access new highly-available servers, manage nodes and monitor foundation pack hardware.

Fujitsu Primergy RX1330 M1; Photo by Fujitsu.
Intel NUC NUC5i5RYH; Photo by Intel.

The Striker dashboard has very low performance requirements. If you build two dashboards, then no redundancy in the dashboard itself is required as each will provide backup for the other.

We have used;

If you use a pair on non-redundant "appliance" machines, be sure to stager each of them across the two power power rails and network switches.

A Pair of Anvil! Nodes

The more fault-tolerant, the better!

The Anvil! Nodes host power your highly-available servers, but the servers themselves are totally decoupled from the hardware. You can move your servers back and forth between these nodes without any interruption. If a node catastrophically fails without warning, the survivor will reboot your servers within seconds ensuring the most minimal service interruptions (typical recovery time from node crash to server being at the login prompt is 30 to 90 seconds).

The beastly Fujitsu Primergy RX300 S8; Photo by Fujitsu.
The rediculously tiny Fujitsu Primergy TX1320 M1; Photo by Fujitsu.

The requirements are two servers with the following;

Beyond these requirements, the rest is up to you; your performance requirements, your budget and your desire for as much fault-tolerance as possible.

Note: If you have a bit of time, you should really read the section discussing hardware considerations from the main tutorial before purchasing hardware for this project. It is very much not a case of "buy the most expensive and you're good".

Foundation Pack

The foundation pack is the bedrock that the Anvil! node pairs sit on top of.

The foundation pack provides two independent power "rails" and each Anvil! node has two power supplies. When you plug in each node across the two rails, you get full fault tolerance.

If you have redundant power supplies on your switches and/or Striker dashboards, they can span the rails too. If they have only one power supply, then you're still OK. You plug the first switch and dashboard into the first power rail, the second switch and dashboard into the second rail and you're covered! Of course, be sure you plug the first dashboard's network connections into the same switch!

UPSes
APC SmartUPS 1500 RM2U 120vAC UPS. Photo by APC.
APC SmartUPS 1500 Pedestal 120vAC UPS. Photo by APC.
Switched PDUs
APC AP7900 8-Outlet 1U 120vAC PDU. Photo by APC.
APC AP7931 16-Outlet 0U 120vAC PDU. Photo by APC.
Network Switches
Brocade ICX6610-48 8x SFP+, 48x 1Gbps RJ45, 160Gbit stacked switch. Photo by Brocade.
Brocade ICX6450-48 4x SFP+, 24x 1Gbps RJ45, 40Gbit stacked switch. Photo by Brocade.

It is easy, and actually critical, that the hardware you select be fault-tolerant. The trickiest part is ensuring your switches can fail back and forth without interrupting traffic, a concept called "hitless fail-over". The power is, by comparison, much easier to deal with.

You will need;

  • Two UPSes (Uninterruptable Power Supplies) with enough battery capacity to run your entire Anvil! for your minimum no-power hold up time.
  • Two switched PDUs (Power Distribution Units) (basically network-controller power bars)
  • Two network switches with hitless fail-over support, if stacked. Redundant power supplies are recommended.

What is the Build Process?

The core of the Anvil!'s support and management is the Striker dashboard. It will become the platform off of which nodes and other dashboards are built from.

So the build process consists of:

Setup the Striker Dashboard

If you're not familiar with installing Linux, please don't worry. It is quite easy and we'll walk through each step carefully.

We will:

  1. Do a minimal install off of a standard RHEL 6 install disk.
  2. Grab the Striker install script and run it.
  3. Load up the Striker Web Interface.

That's it, we're web-based from there on.

Preparing the Anvil! Nodes

Note: Every server vendor has it's own way to configure a node's BIOS and storage. For this reason, we're skipping that part here. Please consult your server or motherboard manual to enable network booting and for creating your storage array.

It's rather difficult to fully automate the node install process, but Striker does automate the vast majority of it.

It simplifies the few manual parts by automatically becoming a simple menu-driven target for operating system installs.

The main goal of this stage is to get an operating system onto the nodes so that the web-based installer can take over.

  1. Boot off the network
  2. Select the "Anvil! Node" install option
  3. Select the network card to install from, wait for the install to finish
  4. Find and note the node's IP address.
  5. Repeat for the second node.

We can proceed from here using the web interface.

Some mini tutorials that might be helpful:

Configure the Foundation Pack Backup Fencing

Note: Every vendor has their own way of configuring their hardware. We we describe the setup for the APC-brand switched PDUs.

We need to ensure that the switched PDUs are ready for use as fence devices before we configure an Anvil!.

Thankfully, this is pretty easy.

Create an "Install Manifest"

An "Install Manifest" is a simple file you can create using Striker.

You just enter a few things like the name and sequence number of the new Anvil! and the password to use. It will recommend all the other settings needed, which you can tweak if you want.

Once the manifest is created, you can load it, specify the new nodes' IP addresses and let it run. When it finishes, your Anvil! will be ready!

Adding Your New Anvil! to Striker

The last step will be to add your shiny new Anvil! to your Striker system.

Basic Use of Striker

It's all well and good that you have an Anvil!, but it doesn't mean much unless you can use it. So we will finish this tutorial by covering a few basic tasks;

  • Create a new server
  • Migrate a server between nodes.
  • Modify an existing server

We'll also cover the nodes;

  • Powering nodes off and on (for upgrades, repairs or maintenance)
  • Cold-stop your Anvil! (before an extended power outage, as an example)
  • Cold-start your Anvil! (after power is restored, continuing the example)

The full Striker instructions can be found on the Striker page.

Building a Striker Dashboard

We recommend Red Hat Enterprise Linux (RHEL), but you can also use the free, binary-compatible rebuild called CentOS. Collectively these (and other RHEL-based operating systems) are often call "EL" (for "Enterprise Linux"). We will be using release version 6, which is abbreviated to simple EL6.

Installing the Operating System

If you are familiar with installing RHEL or CentOS, please do a normal "Desktop" or "Minimal" install. If you install 'Minimal', please install the 'perl' package as well.

If you are not familiar with Linux in general, or RHEL/CentOS in particular, don't worry.

Here is a complete walk-through of the process:

Download the Striker Installer

The Striker installer is a small "command line" program that you download and run.

We need to download it from the Internet. You can download it in your browser by clicking here, if you like.

To do that, run this command:

wget -c https://raw.githubusercontent.com/digimer/striker/master/tools/striker-installer
--2014-12-29 17:10:48--  https://raw.githubusercontent.com/digimer/striker/master/tools/striker-installer
Resolving raw.githubusercontent.com... 23.235.44.133
Connecting to raw.githubusercontent.com|23.235.44.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 154973 (151K) [text/plain]
Saving to: “striker-installer”

100%[======================================>] 154,973      442K/s   in 0.3s    

2014-12-29 17:10:48 (442 KB/s) - “striker-installer” saved [154973/154973]

To tell Linux that a file is actually a program, we have to set it's "mode" to be "executable". To do this, run this command:

chmod a+x striker-installer

There is no output from that command, so lets verify that it worked with the 'ls' too.

ls -lah striker-installer
-rwxr-xr-x. 1 root root 152K Dec 29 17:10 striker-installer

See the '-rwxr-xr-x.' line? That tells use that the file is now 'executable'.

We're ready!

Knowing What we Want

When we run the Striker installer, we're going to tell it how to configure itself. So to do this, we need to make a few decisions.

What company or organization name to use?

When a user logs into Striker, they are asked for a user name and password. The box that pops up has a company (or organization) name to help tell the user what they are connecting to.

This can be whatever makes sense to you. For this tutorial, we'll use 'Alteeve's Niche!'.

What do we want to call this Striker dashboard?

To help identify this machine on the network and to differentiate it from the other dashboards you might build, we'll want to give it a name. This name has to be similar to a domain name you would see on the Internet, but beyond that it can be whatever you want.

Generally, this name is made up of a two or three letter "prefix" that describes who owns it. Our name is "Alteeve's Niche!", we we use the prefix 'an-'. Following this is a description of the machine followed by our domain name.

This is our first Striker dashboard and our domain name is 'alteeve.ca', so we're going to use the name 'an-striker01.alteeve.ca'.

How can we send email?

The Anvil! nodes will send out an email alert should anything of note happen. In order to do this though, it needs to know what mail server to use and what email address and password to use when authenticating.

You will need to get this information from whomever provides you with email services.

In our case, our mail server is at the address 'mail.alteeve.ca' listening for connections on TCP port '587'. We're going to use the email account 'example@alteeve.ca' which has the password 'Initial1'.

When user name and password to use?

There is no default user account or default password on Striker dashboards.

Both the user name and password are up to you to choose. Most people use the user name 'admin', but this is by convention only.

For this tutorial, we're going to use the user name 'admin' and the password 'Initial1'.

What IP addresses to use

Note: This section requires a basic understanding of how networks work. If you want a bit more information on networking in the Anvil!, please see the "Subnets" section of the main tutorial.

The Striker dashboard will connect to two networks;

The IP address we use on the IFN will depend on your current network. Most networks use 192.168.1.0/24, 10.255.0.0/16 or similar. In order to access the Internet, we're going to need to specify the default gateway and a couple DNS servers to use.

For this tutorial, we'll be using the IP address '10.255.4.1/16', the default gateway is '10.255.255.254' and we'll use Google's open DNS servers at the IP addresses '8.8.8.8' and '8.8.4.4'.

The IP address we use on the BCN is almost always on the '10.20.0.0/16' network. For this tutorial, we'll be using the IP address '10.20.4.1/16'.

Do we want to be an Anvil! node install target?

One of the really nice features of Striker dashboards is that you can use them to automatically install the base operating system on new and replacement Anvil! nodes.

To do this, Striker can be told to setup a "PXE" (P're-boot eXecution Environment) server. When this is enabled, you can tell a new node to "boot off the network". Doing this allows you to boot and install an operating system without using a boot disc. Also, it allows us to specify special install instruction, removing the need to ask you how you want to configure the OS.

The Striker dashboard will do everything for you to be an install target.

When it's done, it will offer up IP addresses on the BCN network (to avoid conflicting with any existing DHCP servers you might have). It will configure RHEL and/or CentOS install targets and all the ancillary steps needed to make all this work.

We will need to tell it a few things though;

  • What range of IPs should it offer to new nodes being installed?
  • Do we want to offer RHEL as a target? If so, where do we find the install media?
  • Do we want to offer CentOS as a target? If so, where do we find the install media?
Note: If you are using CentOS, switch to setup CentOS and skip RHEL.

For this tutorial, we're going to use the choose;

  • A network range of '10.20.10.200' to '10.20.10.210'
  • Setup as a RHEL install target using the disc in the DVD drive
  • Skip being a CentOS install target.

Do we need to register with RHN?

If you are using CentOS, the answer is "No".

If you are using RHEL, and if you skipped registration during the OS install like we did above, you will need to register now. We skipped it at the time to avoid the network hassle some people run into.

To save an extra step of manually registering, we can tell the Striker installer that we want to register and what our RHN credentials are. This will be the user name and password Red Hat gave you when you signed up for the trial or when you bought your Red Hat support.

We're going to do that here. For the sake of documentation, we'll use the pretend credentials 'user' and the password 'password'.

Mapping network connections

In the same way that every car has a unique VIN, so does every network card. Each network port has it's own MAC address.

There is no inherent way for the Striker installer to know which network port plugs into what network. So the first step of the installer needs to ask you to unplug and then plug in each network card when prompted.

If you want to know more about how networks are used in the Anvil!, please see:

If your Striker dashboard has just two network interfaces, then the first will ask you which interface plugs into your Back-Channel Network and then which one plugs into your Internet-Facing Network.

If your Striker dashboard has four network interfaces, then two will be paired up for the BCN and two will be paired up for the IFN. This will allow you to span each pair across the two switches for redundancy.

The Striker installer is smart enough to sort this all out for you. You just need to unplug the right cables when prompter.

Running the Striker Installer

Excellent, now we're ready!

When we run the striker-installer program, we will tell Striker of our decisions using "command line switches". These take the form of:

  • -x value
  • --foo value

If the 'value' has a space in it, then we'll put quotes around it.

If you want to know more about the switches, you can run './striker-installer' by itself and all the available switches and how to use them will be explained.

Note: This uses the 'git' repository option. It will be redone later without this option once version 1.2.0 is released. Please do not use 'git' versions in production!

Here is how we take our decisions above and turn them into a command line call:

Purpose Switch Value Note
Company name -c "Alteeve's Niche\!" At the command line, the ! has a special meaning.
By using '\!' we're telling the system to treat it literally.
Host name -n an-striker01.alteeve.ca The network name of the Striker dashboard.
Mail server -m mail.alteeve.ca:587 The server name and TCP port number of the mail server we route email to.
Email user -e "example@alteeve.ca:Initial1" In this case, the password doesn't have a space, so quotes aren't needed.
We're using them to show what it would look like if you did need it.
Striker user -u "admin:Initial1" As with the email user, we don't need quotes here because our password doesn't have a space in it.
It's harmless to use quotes though, so we use them.
IFN IP address -i 10.255.4.1/16,dg=10.255.255.254,dns1=8.8.8.8,dns2=8.8.4.4 Sets the IP address, default gateway and DNS servers to use on the Internet-Facing Network.
BCN IP address -b 10.20.4.1/16 Sets the IP address of the Back-Channel Network.
Boot IP Range -p 10.20.10.200:10.20.10.210 The range of IP addresses we will offer to nodes using this Striker dashboard to install their operating system.
RHEL Install Media --rhel-iso dvd Tell Striker to setup RHEL as an install target and to use the files on the disc in the DVD drive.
Note: If you didn't install off of a DVD, then change this to either:

"--rhel-iso /path/to/local/rhel-server-6.6-x86_64-dvd.iso"
or
"--rhel-uso http://some.url/rhel-server-6.6-x86_64-dvd.iso"

Striker will copy your local copy or download the remote copy to the right location.
RHN Credentials --rhn "user:secret" The Red Hat Network user and password needed to register this machine with Red Hat.
Note: Skip this if you're using CentOS.
Note: In Linux, you and put a ' \' to spread one command over multiple lines. We're doing it this way to make it easier to read only. You can type the whole command on one line.

Putting it all together, this is what our command will look like:

./striker-installer \
 -c "Alteeve's Niche\!" \
 -n an-striker01.alteeve.ca \
 -m mail.alteeve.ca:587 \
 -e "example@alteeve.ca:Initial1" \
 -u "admin:Initial1" \
 -i 10.255.4.1/16,dg=10.255.255.254,dns1=8.8.8.8,dns2=8.8.4.4 \
 -b 10.20.4.1/16 \
 -p 10.20.10.200:10.20.10.210 \
 --rhel-iso dvd \
 --rhn "user:secret"

Done!

When you press <enter>, the install will start.

Let's Go!

Here is what the install should look like:

 ##############################################################################
 #   ___ _       _ _                                    The Anvil! Dashboard  #
 #  / __| |_ _ _(_) |_____ _ _                                 -=] Installer  #
 #  \__ \  _| '_| | / / -_) '_|                                               #
 #  |___/\__|_| |_|_\_\___|_|                                                 #
 #                                               https://alteeve.ca/w/Striker #
 ##############################################################################

[ Note ] - Will install the latest version from git.

 ##############################################################################
 # [ Warning ] - Please do NOT use a git version in production!               #
 ##############################################################################

Sanity checks complete.

Checking the operating system to ensure it is compatible.
- We're on a RHEL (based) OS, good. Checking version.
- Looks good! You're on: [6.6]
- This OS is RHEL proper.
- RHN credentials given. Attempting to register now.
- [ Note ] Please be patient, this might take a minute...
- Registration was successful.
- Adding 'Optional' channel...
- 'Optional' channel added successfully.
Done.

Backing up some network related system files.
- Backing up: [/etc/udev/rules.d/70-persistent-net.rules]
- Previous backup exists, skipping.
- Backing up: [/etc/sysconfig/network-scripts]
- Previous backup exists, skipping.
Done.

Checking if we need to freeze NetworkManager on the active interface.
- NetworkManager is running, will examine interfaces.
- Freezing interfaces: eth0
- Note: Other interfaces may go down temporarily.
Done

Making sure all network interfaces are up.
- The network interface: [eth1] is down. It must be started for the next stage.
- Checking if: [/etc/sysconfig/network-scripts/ifcfg-eth1] exists.
- Config file exists, changing BOOTPROTO to 'none'.
- Attempting to bring up: [eth1]...
- Checking to see if it is up now.
- The interface: [eth1] is now up!
- The network interface: [eth2] is down. It must be started for the next stage.
- Checking if: [/etc/sysconfig/network-scripts/ifcfg-eth2] exists.
- Config file exists, changing BOOTPROTO to 'none'.
- Attempting to bring up: [eth2]...
- Checking to see if it is up now.
- The interface: [eth2] is now up!
- The network interface: [eth3] is down. It must be started for the next stage.
- Checking if: [/etc/sysconfig/network-scripts/ifcfg-eth3] exists.
- Config file exists, changing BOOTPROTO to 'none'.
- Attempting to bring up: [eth3]...
- Checking to see if it is up now.
- The interface: [eth3] is now up!
Done.

-=] Configuring network to enable access to Anvil! systems.

This is where you now need to unplug each network cable, wait a few seconds and then plug it back in.

Beginning NIC identification...
- Please unplug the interface you want to make:
  [Back-Channel Network, Link 1]

When you unplug the cable, you will see:

- NIC with MAC: [52:54:00:00:7a:51] will become: [bcn-link1]
  (it is currently: [eth0])
- Please plug in all network cables to proceed.

When you plug it back in, it will move on to the next interface. Repeat this for your other (or three other) network interfaces.

- Please unplug the interface you want to make:
  [Back-Channel Network, Link 2]
- NIC with MAC: [52:54:00:a1:77:b7] will become: [bcn-link2]
  (it is currently: [eth1])
- Please plug in all network cables to proceed.
- Please unplug the interface you want to make:
  [Internet-Facing Network, Link 1]
- NIC with MAC: [52:54:00:00:7a:50] will become: [ifn-link1]
  (it is currently: [eth2])
- Please plug in all network cables to proceed.
- Please unplug the interface you want to make:
  [Internet-Facing Network, Link 2]
- NIC with MAC: [52:54:00:a1:77:b8] will become: [ifn-link2]
  (it is currently: [eth3])
- Please plug in all network cables to proceed.

A summary will be shown:

Here is what you selected:
- Interface: [52:54:00:00:7A:51], currently named: [eth0],
  will be renamed to: [bcn-link1]
- Interface: [52:54:00:A1:77:B7], currently named: [eth1],
  will be renamed to: [bcn-link2]
- Interface: [52:54:00:00:7A:50], currently named: [eth2],
  will be renamed to: [ifn-link1]
- Interface: [52:54:00:A1:77:B8], currently named: [eth3],
  will be renamed to: [ifn-link2]

The Back-Channel Network interface will be set to:
- IP:      [10.20.4.1]
- Netmask: [255.255.0.0]

The Internet-Facing Network interface will be set to:
- IP:      [10.255.4.1]
- Netmask: [255.255.0.0]
- Gateway: [10.255.255.254]
- DNS1:    [8.8.8.8]
- DNS2:    [8.8.4.4]

Shall I proceed? [Y/n]
Note: If you are not happy with this, press 'n' and the network mapping part will start over. If you want to change the command line switches, press 'ctrl' + 'c' to cancel the install entirely.

If you are happy with the install plan, press '<enter>'.

- Thank you, I will start to work now.

There is no other intervention needed now. The rest of the install will complete automatically, but it might take some time.

Now is a good time to go have a $drink.

Warning: There are times when it might look like the install has hung or crashed. It almost certainly has not. Some of the output from the system buffers and it can take many minutes at times before you see output. Please be patient!
Configuring this system's host name.
- Reading in the existing hostname file.
- Writing out the new version.
Done.

-=] Beginning configuration and installation processes now. [=-

Checking if anything needs to be installed.
- The AN!Repo hasn't been added yet, adding it now.
- Added. Clearing yum's cache.
- output: [Loaded plugins: product-id, refresh-packagekit, rhnplugin, security,]
- output: [              : subscription-manager]
- output: [Cleaning repos: InstallMedia an-repo rhel-x86_64-server-6]
- output: [Cleaning up Everything]
- Done!

Checking for OS updates.
"Final Jeopardy" theme is
© 2014 Sony Corporation of America

-=] Some time and much output later ... [=-

Setting root user's password.
- Output: [Changing password for user root.]
- Output: [passwd: all authentication tokens updated successfully.]
Done!

 ##############################################################################
 # NOTE: Your 'root' user password is now the same as the Striker user's      #
 #       password you just specified. If you want a different password,       #
 #       change it now with 'passwd'!                                         #
 ##############################################################################

Writing the new udev rules file: [/etc/udev/rules.d/70-persistent-net.rules]
Done.

Deleting old network configuration files:
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth0]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth3]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth1]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth2]
Done.

Writing new network configuration files.

[ Warning ] - Please confirm the network settings match what you expect and
              then reboot this machine.

Installation of Striker is complete!

*Ding*

Striker is done!

The output above was truncated as it is thousands of lines long. If you want to see the full output though, you can:

Reboot the system and your new Striker dashboard will be ready to use!

reboot
Broadcast message from root@an-striker01.alteeve.ca
	(/dev/pts/0) at 3:41 ...

The system is going down for reboot NOW!

Using Striker

From here on in, we'll be using a normal web browser.

Self-Signed SSL Certificate

Note: By default, Striker listens for connections on both normal HTTP and secure HTTPS. We will use HTTPS for this tutorial to show how to accept a self-signed SSL certificate. We do this to encrypt traffic going between your computer and the Striker dashboard.

To connect to Striker, open up your favourite web browser and point it at the Striker server (use the IFN or BCN IP address set during the install).

In our case, that means we want to connect to https://10.255.4.1.

Note: This tutorial is shown using Firefox. The steps to accept a self-signed SSL certificate will be a little different on other browsers.
Striker - Enter the URL.

Type the address into your browser and then press '<enter>'.

Striker - "I understand the risks"

SSL-based security normally requires an independent third party to validate the certificate, which requires a fee.

If you want to do this, here is how to do it.

In our case, we know that the Striker machine is ours, so this isn't really needed. So we need to tell the browser that we trust the certificate.

Click to expand "I Understand the Risks".

Striker - "Add Exception..."

Click on the "Add Exception..." button.

Striker - "Confirm Exception"

Understandably, the browser is being cautious and is being careful to explain what you are doing. So we need to confirm what we're asking by clicking on "Confirm Security Exception".

That's it, we can now access Striker!

Logging In

When you connect to Striker, a pop-up window will ask your for your user name and password.

Striker - Login Pop-up

The user name and password are the ones use chose during the Striker install.

Enter them and click on "OK".

Striker - First Page

That's in, we're in!

Create an "Install Manifest"

To build a new Anvil!, we need to create an "Install Manifest". This is a simple XML file that Striker will use as a blueprint on how to build up a pair of nodes into your Anvil!. It will also serve as instructions for rebuilding or replacing a node that failed down the road.

Once created, the Install Manifest will be saved for future use. You can also download it for safe keeping.

Striker - Start creating the 'Install Manifest'.

Click on the "Install Manifests" file.

Striker - Install Manifest - Blank form

Don't worry, we only need to set the fields in the top, and Striker will auto-fill the rest.

Filling Out the Top Form

There are only a few fields you have to set manually.

Striker - Install Manifest - Form - Top section
Warning: The password will be saved in plan-text in the install manifest out of necessity. So you might want to use a unique password.

A few things you might want to set:

  • If you are building your first Anvil!, and if you are following convention, you only need to set the password you want to use.
  • If you are building another Anvil!, then increment the "Sequence Number" (ie: use '2' for your second Anvil!, '8' for your eighth, etc.).
  • If you're main network, the IFN, isn't using '10.255.0.0/255.255.0.0', then change this to reflect your network.
  • If your site has no Internet access, you can create a local repository and then pass the path to the repository file in the 'Repository' field.
Striker - Install Manifest - Form - Top section filled out

For this tutorial, we will be creating our fifth internally-used Anvil!, so we will set:

  • "Sequence Number" to '5'
  • "Anvil! Password" to 'Initial1'

Auto-Populating the rest of the Form

Everything else will be left as default values. If you want to know what the other fields are for, read the description to their right. Some also have a "More Info" button that links to the appropriate section of the main tutorial.

Striker - Install Manifest - Form - "Set Below Values"

Once ready, click on 'Set Below Values'

Striker - Install Manifest - Form - Fields set

When you do this, Striker will fill out all the fields in the second section of the form.

Review these values, particularly if your IFN is a '/24' (netmask of '255.255.255.0').

Warning: It is vital that the "PDU X Outlet" assigned to each node' switched PDU correspond to the port numbers you've actually plugged the nodes into!

Generating the Install Manifest

Striker - Install Manifest - Form - Generate

Once you're happy with the settings, and have updated any you want to tune, click on the "Generate" button at the bottom-right.

Striker - Install Manifest - Summary

Striker will show you a condensed summary of the install manifest. Please review it carefully to make sure everything is right.

Striker - Install Manifest - Form - Summary - Generate

Once you are happy, click on "Generate".

Striker - Install Manifest - Generated

Done!

You can now create a new manifest if you want, download the one you just created or, if you're ready, run the one you just made.

Building an Anvil!

Warning: Be sure your switched PDUs are configured! The install will fail if it tries to reach the PDUs and can not do so!

Installing the OS on the Nodes via Striker

If you recall, one of Striker's nice features is acting as a boot target for new Anvil! nodes.

Before we can run our new install manifest, we need to have the nodes running a fresh install. So that is what we will do first.

Note: How you enable network booting will depend on your hardware. Please consult your vendor's document.

Building a Node's OS Using Striker

Warning: This process will completely erase ALL data on your server! Be certain there is nothing on the node you want to save before proceeding!

If your network has a normal DHCP server, it will be hard to ensure that your new node gets it's IP address (and boot instructions) from Striker.

Note: The easiest way to deal with this is to unplug the IFN and SN links until after your node has booted.
Fujitsu RX300 S6 - BIOS boot screen - <F12> Boot Menu

Boot your node and, when prompted, press the key assigned to your server to manually select a boot device.

  • On most computers, including Fujitsu servers, this is the <F12> key.
  • On HP machines, this is the <F11> key.

This will bring up a menu list of bootable devices (found and enabled in the BIOS).

If you see one or more entries with "IBA GE Slot ####" in them, those are your network cards. (IBA GE is short for "Intel Boot Agent, Gigabit Ethernet)

You will have to experiment to figure out which one is on the BCN, but once you figure it out on one node, you will know the right one to use on the second node, assuming you've cabled the machines the same way (and you really should have!).

Fujitsu RX300 S6 - BIOS selection screen

In my case, the "PCI BEV: IBA GE Slot 0201 v1338" was the boot option of one of the interfaces on my node's BCN, so that is what I selected.

Once selected, the node will send out a "DHCP reqest" (a broadcast message sent to the entire network asking if anyone will give it an IP address).

The Striker machine will answer with an offer. If you want to see what this looks like, open a terminal on your Striker dashboard and run:

tail -f -n 0 /var/log/messages

When the request comes in and Striker sends on offer, you should see something like this:

Dec 31 19:16:30 an-striker01 dhcpd: DHCPDISCOVER from 00:1b:21:81:c3:35 via bcn-bond1
Dec 31 19:16:31 an-striker01 dhcpd: DHCPOFFER on 10.20.10.200 to 00:1b:21:81:c3:35 via bcn-bond1
Dec 31 19:16:32 an-striker01 dhcpd: DHCPREQUEST for 10.20.10.200 (10.20.4.1) from 00:1b:21:81:c3:35 via bcn-bond1
Dec 31 19:16:32 an-striker01 dhcpd: DHCPACK on 10.20.10.200 to 00:1b:21:81:c3:35 via bcn-bond1
Dec 31 19:16:32 an-striker01 xinetd[14839]: START: tftp pid=14848 from=10.20.10.200
Dec 31 19:16:32 an-striker01 in.tftpd[14849]: tftp: client does not accept options

The '00:1b:21:81:c3:35' string is the MAC address of the network interface you just booted from.

Pretty cool, eh?

Back to the node...

Fujitsu RX300 S6 - PXE boot starting

Here we see what the DHCP transaction looks like from the node's side.

  • See the "CLIENT IP: 10.20.10.200"? That is the first IP in the range we selected earlier.
  • See the "DHCP IP: 10.20.4.1"? That is the IP address of the Striker dashboard, confirming that it was the one who we're booting off of.
  • The "TFTP..." shows us that the node is downloading the boot image. There is some more text after that, but it tends to fly by and it isn't as interesting, anyway.
Fujitsu RX300 S6 - PXE boot main page

Shortly after, you will see the "Boot Menu".

If you do nothing, after 60 seconds, the menu will close and the node will try to boot off of it's hard drive. If you press the 'down' arrow, it will stop the timer. This is used in case someone sets their node to boot off of the network card all the time, their node will still boot normally, it will just take about a minute longer.

Note: If you specified both RHEL and CentOS install media, you will see four options in your menu. If you installed CentOS only, then that will be show instead of RHEL.
Fujitsu RX300 S6 - PXE boot - RHEL 6 Node selected

We want to build a RHEL based node, so we're going to select option "2) Anvil! M3 node - Traditional BIOS - RHEL 6".

Fujitsu RX300 S6 - PXE boot - RHEL 6 install loading

After you press <enter>, you will see a whirl of text go by.

Fujitsu RX300 S6 - PXE boot - RHEL 6 NIC selection screen

Up until now, we were working with the machine's BIOS, which lives below the software on the machine.

At this stage, the operating system (or rather, it's installer) has taken over. It is separate, so it doesn't know which network card was used to get to this point.

Unfortunately, that means we need to select which NIC to install from.

If you watched Striker's log file, you will recall that it told us the DHCP request came in from "00:1b:21:81:c3:35". Thanks to that, we know exactly which interface to choose; "eth5" in my case.

If you didn't watch the logs, but if you've unplugged the IFN and SN network cards, then this shouldn't be too tedious.

If you don't know which port to use, start with 'eth0' and work your way up. If you select the wrong interface, it will time out and let you choose again.

Note: If your nodes are effectively identical, then it's likely that the 'ethX' device you end up using on the first node will be the same on the second node, but that is not a guarantee.
Fujitsu RX300 S6 - PXE boot - RHEL 6 - Configuring eth0

No matter which interface you select, the OS will try to configure 'eth0'. This is normal. Odd, but normal.

Fujitsu RX300 S6 - Downloading install image

Once you get the right interface, the system will download the "install image". This of it like a specialized small live CD; It gets your system running well enough to install the actual operating system.

Fujitsu RX300 S6 - Formatting hard drive

Next, the installer will partition and format the hard drive. If you created a hardware RAID array, it will look like just one big hard drive to the OS.

Fujitsu RX300 S6 - Install underway

Once the format is done, the install of the OS itself will start.

If you have fast servers, this step won't take very long at all. If you have more modest servers, it might take a little while.

Fujitsu RX300 S6 - Install complete!

Finally, the install will finish.

It will wait until you tell it to reboot.

Note: ToDo: Show the user how to disable the dashboard's DHCP server.

Before you do!

Remember to plug your network cables back in if you unplugged them earlier. Once they're in, click on 'reboot'.

Looking Up the New Node's IP Address

Node Install - First boot

The default user name is 'root' and the default password is 'Initial1'.

Node Install - First login

Excellent!

In order for Striker to be able to use the new node, we have to tell it where to find it. To do this, we need to know the node's IP address.

We can look at the IP addresses already assigned to the node using the command:

ifconfig
eth0      Link encap:Ethernet  HWaddr A0:36:9F:02:E0:04  
          inet6 addr: fe80::a236:9fff:fe02:e004/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:2520 (2.4 KiB)
          Memory:ce400000-ce4fffff 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
Note: If the text scrolls off your screen, press 'ctrl + PgUp' to scroll up one "page" at a time.

Depending on how your network is setup, your new node may have not booted with an IP address, as is the case above (note that there is no IP address beside 'eth0').

This is because RHEL6, by default, doesn't enable network interfaces that weren't using during the install.

Thankfully, this is usually easy to fix.

On most servers, the six network cards will be named 'eth0' through 'eth5', as we saw during the install.

You can try this command to see if you get an IP address:

ifup eth1
Determining IP information for eth1... done.

This looks good! Lets take a look at what we got:

ifconfig eth1
eth1      Link encap:Ethernet  HWaddr A0:36:9F:02:E0:05  
          inet addr:10.255.1.24  Bcast:10.255.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a236:9fff:fe02:e005/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:435 errors:0 dropped:0 overruns:0 frame:0
          TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:33960 (33.1 KiB)  TX bytes:13947 (13.6 KiB)
          Memory:ce500000-ce5fffff

See the part that says 'inet addr:10.255.1.24'? That is telling us that this new node has the IP address '10.255.1.24'.

That's all we need!

Jot this down and lets go back to the Striker installer.

Running the Install Manifest

Note: Did you remember to install the OS on both nodes? If not, repeat the steps above for the second node.
Striker - Install Manifest - Run

When you're ready, click on "Run".

Striker - Install Manifest - Summary and current nodes' IPs and passwords

A summary of the install manifest will be show, please review it carefully and be sure you are about to run the correct one.

If you recall, we noted the IP address each new node got after it's operating system was installed. This is where you enter each machine's current IP address and current password, which is usually "Initial1" when installed via Striker.

When ready, click on 'Begin Install'!

Initial hardware scan

Note: This section will be a little long, mainly due to screen shots and explaining what is happening. Baring trouble though, once the network remap is done, everything else is automated. So long as the install finishes successfully, there is no need to read all this outside of curiosity.

Before the install starts, Striker looks to see if there is enough storage to meet the requested space and to see if the network needs to be mapped.

A remap is needed if the install manifest doesn't recognize the physical network interfaces and if the network wasn't previously configured.

In this tutorial, the nodes are totally new so both will be remapped.

Striker - v1.2.0b - Initial sanity checks and network remap started

The steps explained;

Testing access to nodes This is a simple test to ensure that Striker can log into the two nodes. If this fails, check the IP address and password
Checking OS version The Anvil! is supported on Red Hat Enterprise Linux and CentOS version 6 or newer. This check ensures that one these versions is in use.
Note: If the y-stream ("6.x") sub-version is not "6", a warning will me issued but the install will proceed.
Checking Internet access A check is made to ping the open DNS server at IP address '8.8.8.8' as a test of Internet access. If no access is found, the installer will warn you but it will try to proceed.
Note: This steps checks for network routes that might conflict with the default route and will temporarily delete any found from the active routing table.
Note: If you don't have Internet access and if the install fails, be sure to setup a local repository and specify it in the Install Manifest.
Checking for execution environment The Striker installer copies a couple of small programs written in the "perl" programming language to assist with the configuration of the nodes. This check ensures that perl has been installed and, if not, attempts to install it.
Checking storage This step is one of the more important ones. It examines the existing partitions and/or available free hard space, compares it against the requested storage pool and media library size and tries to determine if the install can proceed safely.

If it can, it tells you how the storage will be divided up (if at all). This is where you can confirm that the to-be-created storage pools are, in fact, what you want.
Current Network Here, Striker checks to see if the network has already been configured or not. If not, it checks to see if it recognizes the interfaces already. In this tutorial, it doesn't so it determines that the network on both nodes needs to be "remapped". That is, it needs to determine which physical interface (by MAC address) will be used for which role.

Remapping the network

Note: If you can not monitor the screen and unplug the network at the same time, the remap order will be:
  1. Back-Channel Network - Link 1
  2. Back-Channel Network - Link 2
  3. Storage Network - Link 1
  4. Storage Network - Link 2
  5. Internet-Facing Network - Link 1
  6. Internet-Facing Network - Link 2

You can do all these in sequence without watching the screen. Please allow five seconds per step. That is, unplug the cable, count to 5, plug the cable in, count to 5, unplug the next cable.

If you get any cables wrong, don't worry.

Just proceed by unplugging the rest until all have been unplugged at least once. You will get a chance to re-run the mapping if you don't get it right the first time.

In order for Striker to map the network, it needs to first make sure all interfaces have been started. It does this by configuring each inactive interface to have no address and then "brings them up" so that the operating system will be able to monitor their state.

Next, Striker asks you to physically unplug, wait a few seconds and then plug back in each network interface.

As you do this, Striker sees the OS report a given interface losing and then restoring it's network link. It knows which MAC address is assigned to each device, and thus can map out how to reconfigure the network.

It might feel a little tedious, but this is the last step you need to do manually.

Note: All six network interfaces must be plugged into a switch for this stage to complete. The installer will prompt you and then wait if this is not the case.

Mapping Node 1 - "Back-Channel Network - Link 1"

Striker - Network Remap - Node 1 - BCN Link 1 prompt

The first interface to map is the "Back-Channel Network - Link 1". This is the primary BCN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 1 - "Back-Channel Network - Link 2"

Striker - Network Remap - Node 1 - BCN Link 2 prompt

Notice that it now shows the MAC address and current device name for BCN Link 1? Nice!

The next interface to map is the "Back-Channel Network - Link 2". This is the backup BCN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 1 - "Storage Network - Link 1"

Striker - Network Remap - Node 1 - SN Link 1 prompt

Next up is the "Storage Network - Link 1". This is the primary SN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 1 - "Storage Network - Link 2"

Striker - Network Remap - Node 1 - SN Link 2 prompt

Next is the "Storage Network - Link 2". This is the backup SN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 1 - "Internet-Facing Network - Link 1"

Striker - Network Remap - Node 1 - IFN Link 1 prompt

Now we're onto the last network pair with the "Internet-Facing Network - Link 1". This is the primary IFN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 1 - "Internet-Facing Network - Link 2"

Striker - Network Remap - Node 1 - IFN Link 2 prompt

Last for this node is the "Internet-Facing Network - Link 2". This is the secondary IFN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 1 - Done!

Striker - Network Remap - Node 1 - Complete

This ends the remap of the first node.

Mapping Node 2 - "Back-Channel Network - Link 1"

Striker - Network Remap - Node 2 - BCN Link 1 prompt

Now we're on to the second node!

The prompts are going to be in the same order as it was for node 1.

The first interface to map is the "Back-Channel Network - Link 1". This is the primary BCN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 2 - "Back-Channel Network - Link 2"

Striker - Network Remap - Node 2 - BCN Link 2 prompt

Notice that it now shows the MAC address and current device name for BCN Link 1? Nice!

The next interface to map is the "Back-Channel Network - Link 2". This is the backup BCN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 2 - "Storage Network - Link 1"

Striker - Network Remap - Node 2 - SN Link 1 prompt

Next up is the "Storage Network - Link 1". This is the primary SN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 2 - "Storage Network - Link 2"

Striker - Network Remap - Node 2 - SN Link 2 prompt

Next is the "Storage Network - Link 2". This is the backup SN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 2 - "Internet-Facing Network - Link 1"

Striker - Network Remap - Node 2 - IFN Link 1 prompt

Now we're onto the last network pair with the "Internet-Facing Network - Link 1". This is the primary IFN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 2 - "Internet-Facing Network - Link 2"

Striker - Network Remap - Node 2 - IFN Link 2 prompt

Last for this node is the "Internet-Facing Network - Link 2". This is the secondary IFN link.

Please unplug it, count to 5 and then plug it back in.

Mapping Node 2 - Done!

Striker - Network Remap - Node 2 - Complete

This ends the remap of the first node.

Final review

Striker - Install summary and review

Now that Striker has had a chance to review the hardware it can tell you exactly how it will build your Anvil!.

The main two points to review are the storage layout and the networking.

Optional; Registering with RHN

Warning: If you skip RHN registration and if you haven't defined a local repository with the needed packages, the install will almost certainly fail! Each node will consume a "Base" and "Resilient Storage" entitlement as well as use the "Optional" package group. If you do not have sufficient entitlements, the install will likely fail as well.
Note: CentOS users can ignore this section.

If Striker detected that you are running RHEL proper, and if it detected that the nodes haven't been registered with Red Hat yet, it will provide an opportunity to register the nodes as part of the install process.

The user name and password are passed to the nodes only (via SSH) and registration works via the 'rhn_register' tool.

If you are unhappy with the planned storage layout

If the storage is not going to be allocated the way you like, you will need to modify the Install Manifest itself.

To do this, click on the 'Modify Manifest' button at the bottom-left.

This will take you back to the same page that you used to create the original manifest. Adjust the storage and then generate a new manifest. After being created, locate it at the top of the page and press 'Run'. The new run should show you your newly configured storage.

If you are unhappy with the planned network mapping

If you mixed up the cables when you were reseating them during the mapping stage, simply click on the 'Remap Network' button at the bottom-center of the page.

The portion of the install that just ran will start over.

Running the install!

If you are happy with the plan, press the 'Install' button at the bottom-right.

There is now nothing more for you to do, so long as nothing fails. If something fails, correct the error and then re-run the install. Striker tries to be smart enough to figure out what part of the install was already completely and pick up where it left off on subsequent runs.

Understanding the output

Warning: The install process can take a long time to run, please don't interrupt it!

On my test system (pair of older Fujitsu RX300 S6 nodes) and a fast internet connection, the "Installing Programs" stage alone took over ten minutes to complete and appear on the screen. The "Updating OS" stage took another five minutes. The entire process taking up to a half-hour to complete.

Please be patient and let the program run.
Striker - Install completed successfully!

The sanity check runs one more time just the be sure nothing changed. Once done, the install starts.

Below is a table that explains what is happening at each stage:

Backing up original files No program is perfect, so Striker makes backups of all files it might change under '/root/'. If Striker sees that backups already exist, it does not copy them again, to help ensure re-runs don't clobber original backups.
OS Registration If you are running RHEL and the nodes were not registered with RHN, and if you provided RHN credentials, this is where they will be registered. This process can take a couple of minutes to complete, depending on the speen of your network and the load on the RHN servers.
Network configuration Here, the existing network configuration files are removed and new ones are written, if needed, based on the mapping done earlier. When this completes, you will have six interfaces bound into three fault-tolerant bonds with the IFN bond being connected to the node's 'ifn-bridge1' virtual bridge.
Note: The network changes are not activated at this stage! If the network was changed, the node will be queued up to reboot later.
Repo: 'X' The an.repo repository, plus any you defined earlier, are added to the nodes and activated at this stage.
Installing programs
Note: This is usually the longest stage of the install, please be patient.

At this stage, all additional software that is needed for the Anvil! nodes to work is installed. This requires a pretty large download which, depending on the speed of your Internet connection, could take a very long time to complete. Using a local repository can greatly speed this stage up.

Updating OS
Note: This is usually the second longest stage of the install, please still be patient.

At this stage, all of the pre-installed programs on the nodes are updated. This requires downloading more packages from the Internet, so it can be slow depending on the speed of your connection. Again, using a local repository can dramatically speed up this stage.

Configuring daemons At this stage, all installed daemons are configured so that they start or don't start when the node boots.
Updating cluster password The cluster uses it's own password, which in turn Striker uses to create and remove servers from the Anvil!. That password is set here.
Configuring cluster Here, the core configuration file for the cluster stack is created and written out.
Configuring cluster LVM By default, LVM is not cluster-aware. At this stage, we reconfigure it so that it becomes cluster aware.
Configure IPMI Our primary fence method is to use the IPMI baseboard in each node. At this stage, their IPs are assigned and their password is set.
Partitioning Pool 1 If needed, the first partition is created on each node for storing the "Media Library" data and for the servers that will eventually run on the first node.

If a partition is created, the node will be scheduled for reboot.

Partitioning Pool 2 Again if needed, the second partition is created on each node for storing the servers that will run on node 2.

If a partition is created, the node will be scheduled for reboot.

Rebooting If either or both node needs to be rebooted for changed to take effected, that will happen at this stage.
Note: Striker reboots node 1 first, then node 2. Should node 1 fail to come back up, the installer will abort immediately. This way, hopefully, you can use node 2 to try and diagnose the problem with node 2 instead of risking both nodes being left inaccessible.
Pool 1 Meta-data After the reboot, the first partition will be configured for use in the Anvil!'s replicated storage subsystem, called DRBD. This step configures the storage for pool 1, if needed.
Pool 2 Meta-data This stage handles configuring the storage for pool 2, if needed.
Cluster membership first start At this stage, communication between the nodes on the BCN is verified. If access is good, the cluster stack's communication and fencing layer will start for the first time. Once started, fencing mechanisms are tested.
Note: If either fence method fails, the install will abort. It is not safe to proceed until fencing works, so please address any issues that arise at this stage before trying to re-run the installer!
Configuring root's SSH Each node needs to record the other's SSH "fingerprint" in order for live-migration of the servers to work. This is ensured at this stage.
DRBD first start When both nodes are new, the replicated storage will need to be initialized in order for it to work. This is handled here. If there was existing data, then the replication is simply started.
Start clustered LVM The replicated storage is raw and needs to be managed. The Anvil! uses clustered LVM for this. Here we start the daemon the provides this capability.
Note: After this stage, the storage acts as one on both nodes, so the following storage configuration happens on one node only.
Create Physical Volumes Here, each replicated storage device that backs our two storage pools is configured for use by clustered LVM as a "Physical Volume" (PV).
Create Volume Groups This is the second stage of the LVM configuration. Here, the PVs are assigned to a "Volume Group" (VG).
Create the LV for cluster FS The Anvil! uses a small amount of space, 40 GiB by default, for storing server definition files, provision scripts and install media (DVD images). This step carves a small "Logical Volume" (LV) out of the first storage pool's VG.
Create Clustered Filesystem The LV from the previous step is, basically, raw storage. This step formats it with the GFS2 filesystem which allows for the data on it to be accessed by both nodes at the same time.
Configure FS Table

(mislabelled in the screen shot)

If the cluster filesystem was created, the information about this new filesystem is added the each node's central file system table.
Starting the storage service With the storage now configured and running, it is now placed under the cluster's management and control.
Starting the hypervisor This enables virtualization layer needed for the Anvil! to host servers.
Updating system password This is the last stage of the install! Here, the 'root' password on each node is changed to match that defined in the install manifest.

Done!

Your Anvil! is now ready to be added to Striker.

 

Any questions, feedback, advice, complaints or meanderings are welcome.
Alteeve's Niche! Enterprise Support:
Alteeve Support
Community Support
© Alteeve's Niche! Inc. 1997-2024   Anvil! "Intelligent Availability®" Platform
legal stuff: All info is provided "As-Is". Do not use anything here unless you are willing and able to take responsibility for your own actions.