Seasonal Learning Opportunities

As we rush into the holidays, we’re all aware – and constantly reminded – of the sales and deals out there on Black Friday, Cyber Monday, and the rest of the holiday season straight through New Year’s Day. Apart from the toys (electronic or other), household items, music, games,  etc. that are on sale, the season also provides tremendous opportunities for discounted learning and reference material. Related to my prior Always Be Learning post, below I’ll suggest a few places you might want to look to help improve your abilities this holiday season.

The following are simply in alphabetical order, and I’m sure only represent the tip of the iceberg of good deals. Please share any others you hear about in the comments.

Books and Videos

CiscoPress

Cisco Press are having a Black Friday Sale with 35% off one item, or 55% off two or more items. This includes books, ebooks, video training, practice exams, and more. They also consistently offer eBook and Video Deals of the Week (which are different deals than those from Pearson).

Manning Publications

Manning typically publish development and programming focused books, though they also cover topics of more interest to non-devs like Chef, Docker, SQL Server, SharePoint, PowerShell, and Python. This year they’re having a “Green Tuesday” sale from today until the end of November where all eBook purchases under $50 are 40% off (code gt114013) and purchases over $50 are 50% off (code gt115013).

In prior years they’ve also offered deals on their entire catalog of physical books as well, and of course they normally have a Deal of the Day selected from across their entire catalog (eBooks, physical/printed books, or “MEAPs” – Manning Early Access Program books similar to O’Reilly’s Rough Cuts where books are made available as chapters are completed).

O’Reilly

O’Reilly have been one of the premier publishers of IT books for decades, and in recent years have of course added ebooks, videos, and other media to their output. While O’Reilly have Ebook Deals of the Day (usually two) and Video Deal of the Week, their biggest sales are at this time of year. They’ll be kicking off their Cyber Monday Sales starting this Friday, and while they haven’t announced the details, I would expect to see 50-60% off a large selection of titles. And remember – O’Reilly sell/distribute books by other publishers as well including No Starch Press, Wrox, Wiley, Sybex, and many others.

PacktPub

Packt Publishing are “deal friendly”: their books are fairly low-priced to begin with, they have frequent sales throughout the year, and they have their regular Deal of the Day. For the past several years, they’ve also had phenomenal deals over the holidays (between Thanksgiving and New Year’s Day) where their entire stock is available for $10/ebook or even as low as $5/ebook. This is a great time of the year to stock up on books you’ve been holding off on, or even (like me) to pick up something you wouldn’t normally just because it’s now so affordable. (Disclaimer: I do not know that PacktPub will be having this type of sale again this year; I’m merely going off of prior history.)

Pearson IT Certification

Pearson are having the same Black Friday Sale as Cisco Press with 35% off one item, or 55% off two or more items. On their site you’ll find not only tech books from Cisco Press but also VMware Press,  and others), and of course video training, practice exams, and more.  If you miss this sale, they also consistently offer eBook and Video Deals of the Week.

Training

INE

If you’re ready to take the leap for your CCIE, check out INE.  They’ve already had 5 days of deals with (at least) 2 more to go – today’s deal was 65% off CCIE study bundles which include lab workbooks, advanced training courses, and rack rental tokens.

IPExpert

Another option for CCIE training is iPexpert. Though none have been publicly announced yet, the site has offered Black Friday deals in the past, and likely will again this year.

Home Lab

There’s also the hands-on way of learning: use the plethora of sales on tech components and peripherals to either expand your existing lab or build out a new one. Nothing teaches like experience, so give yourself a gift that keeps on giving: forget the bigger TV or the new tablet and instead get yourself a NAS, a lab switch, a virtualization host, more RAM for your existing lab server, etc. Practically anyone who sells anything will have deals over the next few days and the next month so check out your favorite sites or dealers. For me, the usual sites will be no surprise: Amazon, NewEgg, TigerDirect.

Don’t limit yourself to hardware, though – many software vendors will be offering great deals as well. For example, expect to see discounts on VMware’s site for Workstation and Fusion. Other software that isn’t specifically for a lab – productivity software, backup software, etc. – may also be on sale. Prior years have seen great deals on products such as SpiderOak (highly recommended combination of backup and synch with a zero-knowledge security focus) and CrashPlan (backup software w/o synch).


Take advantage of everything that’s out there, and get prepared for a new year of learning and growth!

Mini-Review: OnePlus One

I’ve been a smartphone user for over 8 years using a small variety of phones:

  • Various Blackberries over a period of 3 years
    • 8700c
    • Pearl 8100
    • Curve 8300
    • Storm 9500
  • Various Android phones over a period of 3 years
    • HTC Hero
    • Samsung Moment
    • HTC EVO
    • Samsung Galaxy SII
  • An iPhone 4s for just under 2 years
  • A Samsung Galaxy S4 for about 1 year

The Blackberries were all through my employer from that period, and as an IT admin I also had a fair amount of hands-on access with several other models. For me, Blackberry was the ultimate messaging and communications device: excellent keyboard, granular control of alerting, very good navigation (particularly with the wheel), and long battery life (never less than 3 full days of use and most typically around 5 days, and I would get a lot of messages per days. Thousands). What ultimately pushed me away from Blackberry was the poor web browsing experience and, most critically, the poor integration with Exchange if you weren’t using a Blackberry Enterprise Server (BES): I switched to Android shortly after leaving my IT position to go work at a VAR who had no BES in their environment.

My first few Android phones were ok, but ultimately disappointing: poor keyboards (whether virtual or physical) and bad battery life (less than a business day of usage w/o recharging, with a fairly small volume of messages) spoiled an otherwise powerful experience. By the time I got my EVO, though, Android had improved significantly & the user experience was very good – except, still, for the battery life which I overcame with an extended battery. After killing my EVO accidentally, I got the Galaxy SII which worked even more smoothly, and with more than 24hrs of battery life per charge.

I probably would have kept the SII until it died, but I changed jobs and my new employer provided me with an iPhone 4s. Having heard so many good things about the iPhone, and always interested in playing with new toys, I went ahead & began using it as my primary phone.  That….was a bad decision. While the battery life was better than my SII (averaging about 36hrs between required charges), the user experience was not: the screen felt tiny, the UI seemed constricted and claustrophobic, and the OS and apps seemed more unstable than Android and Android apps. Even worse from an application perspective: every app I liked under Android was difficult to replace under iOS – either the app didn’t appear to exist at all, the app didn’t work as well or as completely as under Android, or the app for iOS cost significantly more (usually while still being of lower quality). For me, every day with iOS was pure frustration.

So even before leaving that employer I wound up switching back to running Android for myself while keeping the iPhone around just for work. Since I had had such a good experience with the SII, I decided to go with the S4 this time around, and it was a good decision. Everything I remembered liking about Android had gotten better, the camera was the best I’d had, and the battery life, formerly the biggest weakness for Android, was now on par with the iPhone or better. Life was good.

Except for my carrier. About 6 months after relocating down to RTP, our mobile carrier went through an “upgrade” process on the local towers. For us, this entailed unannounced downtime (about 24-36hrs of zero service at home when the nearest tower got upgraded) and significant amounts of new dead zones throughout the area. Everywhere we went we would have apparently strong signal, but would still suddenly lose any voice or data access for up to a mile at a stretch. On a normal 25 minute commute I went from near-perfect reception to at least 3 dead zones per trip. Not good.

So we needed to switch carriers, and if we’re doing that we might as well get new phones. (Yes, I like my toys.) I was seriously considering holding out for the upcoming Nexus 6, but then began hearing people talk about the OnePlus One. The specs, especially for the price, were simply amazing: 64G of storage, 3G of RAM, quad-core CPU, 1920×1080 LCD, Gorilla Glass 3, etc. All for $349 completely unlocked, and running Cyanogen rather than a more proprietary version of Android?  Sold!

I won’t bore you with all of the unboxing and setup trivia, but I will include a gallery so that you can see how it arrived, the quality of even the packaging, and the attention to some of the smallest details. I’ll even give the packaging the “Apple-quality” designation (regardless of the ultimate quality of an Apple product, the packaging is almost always flawless).

I’ve been using it now for a little more than 2 months and I’ve been very, very happy with it. No, it’s not perfect but it’s quite good.

  • The battery life is the best I’ve had for a smartphone since Blackberry. I still get a *lot* of messages, and use the phone a lot more in general than I used to, but 24hrs is the minimum the phone will last, with an average of probably 36hrs (I have had the charge last for over 48hrs on several occasions) . If I’m not actively using it, the battery lasts even longer: overnight it’s used as little as 1% of battery (though typically it’s a bit higher than that). Standby time used to be the biggest thing in iOS’ favor for battery life, but the One holds up really well.
  • It’s been very fast and responsive, even with a fair number of running applications.
  • The screen is gorgeous, and big enough at 6″ to be a mini-tablet (I hate the term “phablet”). It’s been a big contributor to my increased daily interaction with my phone.
  • Updates to the phone have come out fairly quickly and consistently (currently running Android 4.4.4 and have been a for a couple weeks).
  • The camera is very good. I don’t think it’s quite as good as the camera on my S4, but it’s in my top 2.
  • The build quality is really quite nice. It feels solid and substantial without being too heavy. My S4 (and S2) felt light & thin, but somewhat cheap given their plastic feel. The One feels and looks like much higher quality.
  •  The accessories are also top-notch. I added the Flip Cover and it was very easy to put on, looks & feels good, and offers great protection. Shortly after getting it I managed to drop my phone – hard – on concrete and it survived fine with just some minor scuff marks on the case.

The only quibble I can really find with the One is that the size is a little large to feel perfect to me. I’ve got fairly large hands, and I can use the One comfortably, but I have to admit that my wife’s Nexus 5 just feels better in my hand. I find myself using the One with about one-and-a-half hands rather than just a single hand – more like a tablet than a phone. Even so, I’m glad I went with the One and would still pick it if I had it to do over.

It’s my favorite phone to date while having also been the cheapest (not counting carrier subsidies) to acquire. That’s a damn good combination. Highly recommended.

Revenge of the CLI

15 to 20 years ago we were repeatedly told that the command line was dead and the graphical user interface would rule everything. Not just from the consumer or end-user perspective, but on the administrative side as well. Microsoft and Apple, to name just two, were leading proponents of relying exclusively on a GUI, and in general did their best to deprecate or cripple any text-based UI on their respective systems. Administrators had to find all kinds of workarounds to these silly limitations – whether through sanctioned options like VBScript or unsanctioned ones like installing Cygwin.

And yet a funny thing happened on the way to the text-massacre:

  • In the networking world, the GUI never became particularly popular. While web or Java interfaces exist for most network devices, the vast majority of configuration and daily administration continues to be done at the CLI. Even the self-proclaimed future with Software-Defined Networking (SDN), with its focus on programmability, configuration management, etc., is still more consistent with the command line than with graphical user interfaces.
  • Linux, an open source re-implementation of Unix, became first the power behind the web, and then the power behind the cloud.  Yes, there are many GUIs for Linux (and other open source operating systems), and some of them are even very good (if you haven’t played with Enlightenment, you should), but the vast majority of Linux work gets done at the CLI. Whether you’re the administrator of a web server, a mail server, or a cloud management platform like OpenStack – you’re using the CLI.
  • Despite the focus on a “lickable” GUI, Mac OS X was a rebirth based on the CLI-oriented FreeBSD (a Unix-like OS via NeXTSTEP). Indeed, Apple even trumpeted the fact that Mac OS X is “really” UNIX – trademark and all. You may not need to access the CLI to use Mac OS X, but it is a necessary component of the operating system, and one which many users take significant advantage.
  • Microsoft, after years of relying on the frankly awful command.com and then cmd.exe shells, finally broke down and decided to one-up the Linux/Unix shells like Bash, ksh, etc. by building “Monad” – an object-oriented command shell that was eventually released as PowerShell in 2005. Subsequently, PowerShell has become a fundamental technology for Microsoft with most, if not all, of their products providing full management capabilities via PowerShell.  In fact, it’s common that some features of each product are only accessible via PowerShell. Scripting, in a Microsoft world, has gone from being a useful but relatively rare skill to now being not only commonplace but actually seen as a requirement for any serious Windows administrator.

Consumer technologies have definitely continued to become more and more graphical, with touch technologies appearing everywhere. Touch may not be antithetical to a CLI, but it’s certainly not conducive to it – as any one who has tried to use only a virtual keyboard for a long writing session can likely attest. GUIs are great at providing a discoverable interface, or to easily perform simple tasks, but in the infrastructure world and the development world – when you need to get something done, you most often use the CLI.  If you want to get something done quickly, repeatably, and efficiently – the CLI is almost always your better choice.

Even where a management GUI exists – such as OpenStack Horizon, VMware vCenter, Cisco UCS Manager, Microsoft System Center, etc. – these GUIs typically expose only a fraction of the functionality available from the system and all of these systems have a robust CLI. In the case of vCenter and UCS Manager, apart from their own native CLIs they both support PowerShell as well. In fact, PowerShell is in many ways the management commonality for enterprise systems with toolkits and/or SDKs being provided by many vendors for their products: VMware, Cisco, NetApp, Citrix, HP, EMC, Symantec, Splunk, IBM, Dell, Microsoft – heck, even AWS includes PowerShell support!

Twenty years later, it’s strange to think that Microsoft has actually achieved one of its greatest successes, from both a technical perspective and an industry usage perspective, with PowerShell: one CLI to perhaps rule them all.

 

Tech Smorgasbord #3

My on-going reference series for interesting technology or projects which deserve further investigation, or for technical documentation (of one media format or another) that looks to be especially good reference material.


 

OpenSOC – The Open Security Operations Center

The OpenSOC project is a new initiative announced and driven by Cisco to provide an open source, extensible, and scalable advanced security analytics tool. This tool would allow any organization to create incident detection tools customized for their specific infrastructure components and their own security processes. This is a Big Data service leveraging multiple existing open source components like Hadoop, Hbase, Elastic Search, and MySQL.

Let’s Encrypt 

Let’s Encrypt is a service announced by the Internet Security Research Group (ISRG) to provide a free certificate authority for public use, and planned to officially launch in Q2 of 2015. The ultimate goal is well beyond “just” a free CA, however: they want to provide a certificate management framework that allows an administrator to run a single command to automatically generate and install a validated SSL certificate. This certificate management framework will include client software to run on any host (the current preview is written in Python), server software for the actual CA (a demo library written in node.js is currently available), and a new protocol used between client and server.

This protocol is called the Automated Certificate Management Environment (ACME), and a draft spec is available for review.  The protocol is expected to be submitted to the IETF as an official, open standard.

The ISRG is a California-based public benefit corporation sponsored by organizations like Cisco, the Electronic Frontier Foundation (EFF), Mozilla, Akamai, and IdenTrust. The Board of Directors for the ISRG include members from each of the sponsors (except for IdenTrust), as well as the University of Michigan, Stanford Law School, and CoreOS.

Schprokits

Schprokits is a new automation framework like Puppet, Chef, Ansible, Salt and others, but specifically targeted for networking. Their tag line is “Inspired By DevOps. Built For NetOps”. The company was founded by Jeremy Schulman, formerly a Global Solutions Architect at Juniper and the person responsible for the Puppet agent implementation for Juniper switches.

The product is still currently in stealth mode, but some information is getting out.  Ivan Pepelnjak had Jeremy on his podcast to discuss Schprokits, other configuration management systems, devops, and more. In addition, several posts by alpha/beta participants (posted with the apparent consent of Schprokits) are coming out. John Herbert has a couple posts, and Jason Edelman has a couple even longer and more detailed ones.


 

Tours of the Black Prompt: Clustered NetApp Data ONTAP – Part 5

The Tours of the Black Prompt series so far:

As promised, in this post we’re going to cover some more real-world examples of using Data ONTAP’s cluster shell.

Common Configuration

The following examples were actually used in our just-released deployment guide NVA-1110-FP-DEPLOY. This is the Deployment Guide for NVA-1110-FP: FlexPod Datacenter with NetApp All-Flash FAS and VMware Horizon (with View) for which we released the Design Guide back in October.

Note: in our official documentation examples we will normally use the most complete or verbose version of a command, rather than an abbreviated one, for clarity and easier reading. For even greater efficiency, an administrator can absolutely use some of the abbreviations or shortcuts discussed in Part 1.

One of the areas where you may need to perform a lot of repetitive operational tasks is networking. In an ONTAP cluster, you will typically have multiple physical interfaces per node, and then multiple nodes within the cluster. Modifying a setting on each of these individually is the definition of tedious as well as consuming significant time.

Specifying the correct flow control settings on your interfaces is one of these operations. In the NVA-1110-FP environment, we needed to modify eight interfaces each on two nodes (16 total interfaces). Without using queries and operators, this would have required 16 commands

cluster01::> network port modify -node  -port e0a -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y
1 entry was modified.

cluster01::>  network port modify -node  -port e0b -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::>  network port modify -node  -port e0c -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::> network port modify -node  -port e0d -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::>  network port modify -node  -port e0e -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::>  network port modify -node  -port e0f -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified.

cluster01::>  network port modify -node  -port e0g -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::>  network port modify -node < -port e0h -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified.

cluster01::> network port modify -node  -port e0a -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::>  network port modify -node  -port e0b -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::>  network port modify -node  -port e0c -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::>  network port modify -node  -port e0d -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::>  network port modify -node  -port e0e -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::>  network port modify -node  -port e0f -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified.
cluster01::>  network port modify -node  -port e0g -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified. 
cluster01::>  network port modify -node  -port e0h -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

1 entry was modified.

But that’s crazy when we can do it with one command instead:

cluster01::> network port modify -node * -port e0a..e0h -flowcontrol-admin none
Warning: Changing the network port settings will cause a several second interruption in carrier.
Do you want to continue? {y|n}: y

16 entries were modified.

This will modify the range of ports (using the RANGE operator of “..”) starting with e0a and ending with e0h on every node (using the ALL operator of “*”) in the cluster. That’s 15 commands (and quite a bit of time/frustration) eliminated in this environment, but the savings are even more significant as you scale up: no changes to that command are necessary whether we have one node or 24 nodes. Think of that for a moment: 24 nodes with eight interfaces each would be 192 commands – and we’ve reduced that down to a single command. That’s the equivalent of a 99.5% dedupe ratio!

In addition, we are able to apply the same efficiencies to setting the correct MTU on the physical ports:

cluster01::> network port modify -node * -port a0a -mtu 9000
WARNING: Changing the network port settings will cause a serveral second interruption in carrier.
Do you want to continue? {y|n}: y
2 entries were modified.


cluster01::> network port modify -node * -port e0e..e0h -mtu 9000
WARNING: Changing the network port settings will cause a serveral second interruption in carrier.
Do you want to continue? {y|n}: y
16 entries were modified.

In this case, we needed to modify an existing interface group (a0a) on both controllers, and then also modify each of the physical ports on each node.


There were several other areas of the configuration where we were able save steps using the ALL operator.

We needed to enable Cisco Discovery Protocol (CDP) on all nodes in the cluster.

cluster01::> system node run -node * options cdpd.enable on
2 entries were acted on.

If we wanted to completely abbreviate this, it could have been as short as

cluster01::> ru * options cdpd.enable on
2 entries were acted on.

We also needed to modify AutoSupport settings on each node:

cluster01::> system node autosupport modify -node * -state enable -mail-hosts [SMTPserver] -transport https -support enable -to [admin_email]

2 entries were modified.

Finally, we modified some web services for all Storage Virtual Machines in the cluster:

cluster01::> vserver services web modify -name spi|ontapi|compat -vserver * -enabled true
4 entries were modified.

In this case, we used the OR operator of “|” (the pipe symbol) for the “-name” parameter and the ALL operator for the “-vserver” parameter.


Here are a few other examples where I’ve been able to save significant amounts of effort and time thanks to these built-in efficiencies of the cluster shell. You’ll notice that I also indulged in various shortcuts and abbreviations in these examples, but the cluster shell outputs the unabbreviated command to the console for clarity anyway (the line in parentheses just beneath each example command).

Other Networking Configuration

At one point I needed to fix some Logical Interface (LIF) names that I had mis-typed (mis-specified, really) on 16 different SVMs. One command fixed it:

cluster01::> net int rename -vse test_nas* -lif mgmt1 -newname nfs1
  (network interface rename)
16 entries were modified. 

In another case, I needed to modify the home-ports for the management interfaces (35 in this instance) on all of the SVMs in a cluster. A single command again sufficed:

cluster01::> net int modify mgmt1 -home-port e0d -vse *
  (network interface modify)
35 entries were modified.

A special note for this example: specifying the home node was not required – the configuration for each LIF stayed on its current home-node and merely the home-port changed. When initially creating these LIFs, you do need to specify both home-node and home-port.

Reconfiguring the physical networking (VLAN interfaces, interface groups, etc.) happens fairly often as well. Here I needed to tear down an interface group, with a corresponding child VLAN interface, on each node in the cluster:

cluster01::> net port vlan delete -node * -vlan-name a0a-100
  (network port vlan delete)
4 entries were deleted.

cluster01::> net port ifgrp delete -node * -ifgrp a0a
  (network port ifgrp delete)
4 entries were deleted.

SAN Access Cleanup

Sometimes I just need to be able to clean up someLUNs, volumes, and SAN configuration while validating a solution:

cluster01::> lun offline -vserver svm_vmware -lun *
4 entries were acted on.

cluster01::> lun delete -vserver svm_vmware -lun *
4 entries were acted on.

cluster01::> igroup delete -vserver svm_vmware -igroup * 
1 entry was acted on.

cluster01::> volume offline -vserver svm_vmware -volume *

Error: This command does not support queries.

I kept the volume command in there as a good example of where, for safety’s sake, operators are not allowed. If a LUN is deleted in error, you will be able to easily recover using a volume Snapshot. It is significantly harder to recover a volume if it has been accidentally deleted.

SnapMirror Operations

Initializing multiple SnapMirrors at once:
cluster01::> snapmirror initialize {-destination-path tours*}
Operation is queued: snapmirror initialize of destination "tours:tours_sm1".                                                                                  
Operation is queued: snapmirror initialize of destination "tours:tours_sm2".                                                                                  
2 entries were acted on.
Modifying all SnapMirror relationships that currently are on a daily schedule to now have an 8hour schedule:
cluster01::> snapmirror modify {-schedule daily} -schedule 8hour 
Operation succeeded: snapmirror modify for the relationship with destination "tours:tours_sm1".                                                               
Operation succeeded: snapmirror modify for the relationship with destination "tours:tours_sm2".                                                               
2 entries were acted on.

The examples above are just a few of the ways that the built-in efficiencies of the cluster shell can dramatically save an administrator’s time, and turn a tedious experience into a fun one. (At least for some of us!)