- Caveat
- Acknowledgements
- For the Impatient
- How to Do a Calm Bootcamp
- Bugs, Priorities, Notes
- Development
- Timing
- Procedure
This is a work in progress and your milage may vary!
The entire Global Technical Sales Enablement team has delivered an amazing amount of content and automation for Nutanix Tech Summits and Workshops alongside the Corporate SE team automation gurus. It has been a pleasure to work with all of them and this work stands on the shoulders of those giants. Thank you!
Use push button Calm in one of two ways, decide which manner by answering this question: do you need to set up single or multiple Nutanix clusters?
-
Single AHV Cluster: the easiest manner is to SSH to the cluster IP address and run the bootstrap script on a CVM:
curl --remote-name --location https://raw.githubusercontent.com/nutanixworkshops/stageworkshop/master/bootstrap.sh && sh ${_##*/}
answer a few questions (see the Procedure section) and watch the log progress.
- The
nutanixworkshops
repository places a premium on stability, not on the bleeding edge of the latest releases (see the Development section for more detail).
- The
-
Multiple AHV Clusters: or to use development branches, satisfy these requirements:
- Tested on Ubuntu and Mac, but could work easily on other Linux distributions.
- Mac requires https://brew.sh installed, which first requires
xcode-select --install
- Mac requires https://brew.sh installed, which first requires
- Terminal with command line git.
echo "Start Foundation on your HPoC now, script retries for 60 minutes..." export PE=10.21.X.37 && export PE_PASSWORD='nx2Tech###!' && EMAIL=first.last@nutanix.com \ && cd $(git clone https://github.com/mlavi/stageworkshop.git 2>&1 | grep Cloning | awk -F\' '{print $2}') \ && echo "${PE}|${PE_PASSWORD}|${EMAIL}" > clusters.txt \ && ./stage_workshop.sh -f clusters.txt -w 1 #latest stable Calm workshop
Cluster Foundation typically takes ~30 minutes, in the meantime, the above will:
- Set the Prism Element (PE) IP address, password, and your email address
- Change directory into the cloned git repository
- Put settings into a configuration file
- Retry for 60 minutes to stage the cluster with the configuration file and Workshop #1.
Approximately 30 minutes later, you can login to PE to get to PC (or directly to PC) and follow step #7 in the Procedure section to finish push button Calm automation.
- Tested on Ubuntu and Mac, but could work easily on other Linux distributions.
- Planning:
-
Work with your stakeholders at the partner or customer to plan the bootcamp/workshop agenda, facilities, and proposed schedule dates. Facility considerations for all attendees:
- Leader podium/projector
- WiFi access
- Seating with tables and power access
- Breakfast/Lunch/refreshments
- Local SEs to help moderate, assist, and troubleshoot each attendee's needs while the leader continues to drive the bootcamp.
- Do not do a 15+ person workshop alone unless you are comfortable dealing with adverse situations, have back up plans, and can easily adapt to make the most of attendee's valuable time (i.e. videos, presentation decks, print outs, or simply demonstrate leading them through lab(s)).
-
If appropriate, work with your local field marketing team to make a Bootcamp event landing and registration page, they can also reserve marketing cluster(s).
- You should drive attendees to register.
- More information and supporting materials are on GDrive in the Technology Bootcamp folder.
-
Estimate the count of your audience, reserve a HPOC cluster for every 20 attendees (due to VDI login constraints).
- You can workaround the 20 VDI user constraint per HPOC by using Juniper VPN.
- Budget for extra people to attend at the last moment and expect last minute attrition as well.
- Confirm your dates.
- Think about bringing Nutanix schwag: stickers, t-shirts, etc. for giveaways.
-
Ask questions not covered here in Slack to the Global Sales Technical Enablement team, first see the pinned items in each channel:
- #technology-bootcamps: for customer and prospect bootcamps
- #hands-on-workshops: for Nutanix Partner and SE workshops
-
Make a HPOC reservation(s) on https://rx.corp.nutanix.com/ with:
- AOS + Hypervisor: proper versions for your workshop, specified in the Workshop title.
- Recommended: AOS 5.8
- Older or newer versions of AOS may not function as expected.
- Use for the Calm development workshop to test with the latest Prism Central and Calm versions.
- Prism Central and Calm UIs are continually evolving, you may encounter variations that require different feature navigation from the step by step directions.
- OS Images: you do not need to specify images (CentOS, Windows2012, etc.) for your reservation.
- Start and End Times: It is nice to have the cluster extend to the end of the day in case anyone would like to save their blueprints or work after the bootcamp ends.
- The default HPOC reservation comes with 20 VDI user sessions, therefore it is recommended that you reserve a cluster for every 20 attendees.
- For attendees that can install and use Juniper Pulse VPN to access the HPOC, you can consolidate those users to access a single cluster in addition to the VDI users.
- AOS + Hypervisor: proper versions for your workshop, specified in the Workshop title.
-
-
Once your HPOC reservation starts:
- Leverage Push button Calm automation to stage your cluster with the Calm workshop of your choice.
- Optional:
- For every attendee over 20 or a previously known/arranged audience, it is ideal to populate them by userXX or by email in the directory and then configure sign on into Prism Central.
- https://sewiki.nutanix.com/index.php/HPOC_Access_Instructions
- There is a printout available in GDrive?
- Populate the authentication directory with additional users and email addresses, add into groups if desired.
- Configure SSP role mappings if desired.
- Populate PC projects with groups and/or users with roles.
- For every attendee over 20 or a previously known/arranged audience, it is ideal to populate them by userXX or by email in the directory and then configure sign on into Prism Central.
-
Before the Bootcamp:
- Survey the site and conference/classroom, correct any logistical problems, confirm driving, parking, sign-in procedures, room location/directions, and WiFi access.
- The day(s) before the Bootcamp or as soon as push button Calm completes with any optional configuration, send a reminder notice in email with logistical details, and ask people to test their VDI and/or VPN access.
- This reduces logistical problems encountered on the bootcamp day starting to access the cluster(s).
- Send WiFi details for on-site network access.
- Run through the first lab to check everything works!
-
The Day of the Bootcamp
- Arrive early, re-survey the site, send any updates to the e-mail attendee list, and include this link:
- Nutanix Partner Workshop
- Alternatively, have them access http://nutanix.handsonworkshops.com and register/log in.
- Project WiFi/logisical and Agenda info
- Once quorum is established, I like to begin with a introductions and review of the agenda:
- why are we here?
- what do want to accomplish today?
- who is the Nutanix team in the room to ask for help?
- I take a role call of who is in the room, writing down their first name and last initial to protect their privacy, and I ask: "what is your role and company, what do you want to accomplish or for us to address today?"
- Amend the agenda if needed based on feedback
- Review the agenda and begin the day, here is the typical agenda:
- Introductions and Logistics
- Calm overview and enablement: see the next section for detail
- Lab 1, etc.
- Arrive early, re-survey the site, send any updates to the e-mail attendee list, and include this link:
It is easy to do a full day of enablement on Calm. There are many topics which you can pick from for the best audience engagement; shed topics for the appropriate depth and time.
-
Nutanix+Calm=DevOps
-
DevOps enablement: What is DevOps? Enablement deck [article]
- The Journey: move the mountain stone by stone
- Business outcome = agility: DevOps Definition
- Business outcome = scalability: Pets versus Cattle
- Plan, implement, measure, repeat.
-
DevOps Maturity Diagram: journey up and to the right, evaluate vendors who imprison you in the lower left quadrant. Then bring down the silos.
-
The goal of DevOps is to become invisible, we cattle DevOps across the organization and we all become DevOps.
-
Nutanix is on this journey, we are cattle architecture, infrastructure, and operations: this is how we disrupt and lead the industry by doing so for our customers. Calm accelerates and completes the customer journey:
- Invisible infrastructure (HW), invisible hypervisors, invisible clouds, invisible DevOps = invisible silos (hyperconverged teams) and invisible/continuous ops.
-
-
The traditional Nutanix customer base is Ops, now we have a new audience: the Dev. What is a Developer and how does a developer look at the world?
- Build-Test-Deploy pattern for a mature agile SDLC engineering organization leads to Continuous Integration, Delivery, and Deployment (CI/CD)
- The DevOps Automation Diagram [article] illustrates CI/CD [article]
- Configuration Management means Ops cares about infrastructure as code and becomes infrastructure developers.
- Proof that software eats the world and we have The New Kingmakers.
-
-
Calm Selling:
-
Typical customer use cases, success, and summary of business
-
How to do the first customer Calm presentation
-
How to demo Calm in 5, 10, 20 minutes
- Where: HPOC versus demo.nutanix.com versus expo.nutanix.com
- Be aware that I never do a Calm demo in less than 30 minutes because the platform can address so many use cases. It is better to do discovery, qualification of use cases, and plan a follow up engagement than it is to do short demo.
- 5 minute Calm demo outline:
- Just rip through the presentation slides! If there is interest, create a SFDC opp and schedule the follow up with Calm seller team.
- 10 minute Calm demo outline:
- Skip the slides and message: Calm delivers enterprise applications with a few clicks
- Show the marketplace, launch a LAMP blueprint, show application profiles with TCO, launch and audit the deployment, explain operations in flight
- 20 minute Calm demo outline:
- Where: HPOC versus demo.nutanix.com versus expo.nutanix.com
-
Deeper dives and advanced features (later in the day, second day, etc.):
- Calm Releases and Roadmap
- Calm LCM 2.x feature releases
- Service Now bridge open sourced, productization in beta
- CI/CD blueprint
- Calm Releases and Roadmap
-
Anatomy of a Calm Sale: with escalation points
- This section is about to be updated with the new Calm go to market plan and selling team.
- Platform, first customer pitch
- Discovery on qualification questions:
- Do you have automation, software devs, etc.
- Map out how they deploy a change to production, get the metrics/silos, time to deploy value.
- Find use case(s) for Calm/automation/platform, create SFDC opportunity with Calm SKUs, schedule platform follow ups and/or Calm deep dive.
- Offer a bootcamp for engagement.
- Define a PoC, escalate to solutions arch if needed.
- Implement a PoC, exit PoC successfully for a technical close.
- Sales close.
- This section is about to be updated with the new Calm go to market plan and selling team.
-
Continuous Selling: nurture Calm and upsell platform value, features, and product engagement.
- Typical use case is SSP-IaaS deployment, but the use case can be progressed over many stages to DevOps maturity:
- Add self-service and showback
- Add t-shirt sizes, multiple application profiles
- Add apps
- Add integrations
- Add multiple providers (active-active)
- Add app lifecycle operations
- Drive to CI/CD pipelines
- Drive to continuous operations
- Repeat for the next business initiative:
- Continuously prospect for other business teams, apps, integrations, marketplace blueprints, use cases which influence roadmap priority, and for competition: report back to the team in #calm.
- Profit!
- Typical use case is SSP-IaaS deployment, but the use case can be progressed over many stages to DevOps maturity:
-
Group Exercise:
- Pitch a slide or answer a Calm objection question
- Entire team offers positive criticism to improve member response, typical sidebar discussion
- Make the pitch your own voice, not by wrote.
- Add your your own story and experience to illustrate how we do it better, customer proof points, and lay traps.
- Improve your strategy/tactics using XCommand and the Calm battlecard.
- Avoid traps which isolate Calm from platform or lower value.
-
See the planning and working document.
curl --remote-name --location https://raw.githubusercontent.com/mlavi/stageworkshop/master/bootstrap.sh && SOURCE=${_} sh ${_##*/}
Shell scripting is not a complete computer language, but despite its drawbacks, it is capable. In the limited environment of the CVM, it is the easiest manner to orchestrate other command line tools, including Nutanix CLIs. You will also see RESTful API calls to exercise platform functionality.
I refer to the Advanced Bash-Scripting Guide every time I forget something or see strange syntax, it is a great way to learn and understand shell scripting!
In order to keep the master branch stable, a developer should work on a feature branch when possible. The following shows how to change to a feature branch, it assumes you are working with the mlavi
repository and want to change to a branch named :
cd $(git clone https://github.com/mlavi/stageworkshop.git 2>&1 \
| grep Cloning | awk -F\' '{print $2}') \
&& git checkout <BRANCH>
# Create your cluster file, e.g.: echo "${PE}|${PE_PASSWORD}|${EMAIL}" > pocs.txt
./stage_workshop.sh -f pocs.txt
- Semantic Versioning implemented via:
- /hooks/ = local git hooks
- Autohook.sh
- /hooks/pre-commit/... = symbolic link to hooks/script/...
- /hooks/scripts/semver_release.sh
- GitVersion container outputs to /release.json
- Setup:
- Docker + GitVersion (see: semver_release.sh::${CONTAINER_TAG})
- cd hooks && ./autohook.sh install
- /hooks/ = local git hooks
- Shell Style Guide
- shfmt via IDE
- Google Shell Script Guide
Everything takes place in stage_workshop.sh
:
- line 5: Update the
WORKSHOPS
array with the title of your new workshop.- Insure you use a keyword and a
MAJOR.MINOR
semantic version version. These will be used for switching between workshops and versions. You should not need to use precision past the .MINOR point release.- e.g.: use "PC 5.9" (not "Prism Central 5.9.0.1")
-
"Calm Workshop (AOS 5.5+/AHV PC 5.10.x) = Development"
"Citrix Desktop on AHV Workshop (AOS/AHV 5.6)"
#"Tech Summit 2018"
)````
- Insure you use a keyword and a
- Adjust/update function stage_clusters() (which immediately follows the
WORKSHOPS
array) for mappings to latest version number and staging scripts, as needed.
- See above, update
stage_workshop.sh
function stage_clusters() version number. - Adjust
global.vars.sh
if appropriate for:
PC_DEV_VERSION
and/orPC_STABLE_VERSION
FILES_VERSION
and update the corresponding metadata URLs.
We'll round up to the nearest half minute.
- 30 min = RX Foundation times to PE up (approximate)
Cluster | 5/24 (minutes) | 6/2 (min) | 6/10 (min) |
---|---|---|---|
NX-1060 | 30 | N/A | N/A |
NX-3060-G5 | 25 | 35 | 33 |
When rebuilding a HPOC from rx, Foundation automation takes:
- 4 nodes@NX-3060-G5: 30 minutes
- 4 nodes@NX-1050: 40 minutes.
-
0.5 min per cluster = ./stage_workshop.sh
-
28/26/20 min = calm.sh PE Typical download and install of Prism Central is 17 minutes of waiting!
Function | Run1@5/24 (minutes) | 6/2 (min) | 6/10 (min) |
---|---|---|---|
start | 11:26:53 | 09:07:55 | 03:15:35 |
end | 11:54:28 | 09:34:09 | 03:35:25 |
- 1.5 min = calm.sh PC
Function | Run1@5/24 (minutes) | 6/2 (min) | 6/10 (min) |
---|---|---|---|
start (localtime) | 04:54:27 | 02:34:08 | 20:35:24 |
end (localtime) | 04:55:57 | 02:35:37 | 20:36:45 |
- 2 min: Login to PC, manual configuration of Calm default project (see step 7, below).
-
Crank some tunes and record the start time!
-
Browse (tab1) to this page = https://github.com/mlavi/stageworkshop/blob/master/documentation/guidebook.md
-
Browse (tab2) to review HPoC reservation details in https://rx.corp.nutanix.com:8443/
-
Find the Cluster External IP and the PE admin password: we will use both of these in a moment.
-
Memorize the HPOC number (third octet of the External IPv4) and prepare to copy by highlighting the PE admin password or merely memorize the three digits of PE admin password.
-
Browse (tab3) to the PE URL to show unavailable before or during foundation process.
-
Launch a new terminal:
- Change terminal font size for demo.
- Cut and paste the first line the follows to create, and change to the repository directory
- or cut and paste the entire code block if you're comfortable editing the command line,
- otherwise copy one line at a time and substitute Cluster External IP
on the
MY_HPOC
assignment line or change thatX
you cleverly memorized and paste the PE admin password onto thePE_PASSWORD
line or change the###
you cleverly memorized.
git clone https://github.com/mlavi/stageworkshop.git && cd $_ export MY_HPOC=10.21.X.37
&& export PE_PASSWORD='nx2Tech###!'
&& echo "${MY_HPOC}|${PE_PASSWORD}" >> example_pocs.txt- OPTIONAL: Make a mistake with the HPoC octet to show a failure mode.
- That's it, you're done! Just sit back and wait, periodically reload browser tab3, or follow the log output on PE and PC...
-
-
Side by side: (screens because split desktop doesn't work well enough)
-
Browser (tab 2): Open RX automation cluster foundation status detail page, it will be tab4.
-
Terminal: After the automation is uploaded to the cluster CVM, copy and paste the command to monitor the
calm.sh
progress. -
Browser (tab3): Reload the PE URL, accept security override, login as admin and password to PE EULA.
-
Terminal: Once PE UI configured, reload browser tab3 to show EULA bypassed or click on the decline EULA button to return to login prompt.
- BUG: Once Authentication Server is up, you should be able to login as a SSP admin = adminuser05@ntnxlab.local
-
-
Browser:
- Show PE Authentication: test above user with the default password.
- View All Tasks, wait until software is uploading
-
Terminal: Show that we're waiting...approximately 17 minutes (fast forward). Highlight automation scripts sent to PC.
-
Browser: from PE, show VM table, go to home and show PE registered to PC, launch PC and login as admin.
* *BUG:* Can't login as a SSP admin = adminuser05@ntnxlab.local
* Show Authentication, show role mapping, show images.
-
Push button Calm!
-
PC> Apps (or PC-5.10+: Services > Calm): click lower left ? to show Calm version
-
Projects: Default: add the following:
- Description: "Freedom to Cloud",
- Roles: assign and save,
- Local and Cloud,
- choose PoC AHV cluster,
- Network: enable VLANs,
- and Save.
-
Blueprints: Upload blueprint:
test/beachhead-centos7-calm5.7.0.1.json
in default project.- Resize icon
- Pull left tab open, note public key in AHVCluster application profile, zoom to show end of the value.
-
Credentials: upload private key, note user centos, save, back.
-
Service = Webtier:
-
Show VM name, zoom in to show macros.
-
Choose local image uploaded to cluster to save time versus the dynamic imported image.
-
Show user centos in cloud-init and @@{your_public_key}@@ macro.
-
Show package install task: uncomment install work
-
Show service tab: Deployment Config
- bug service > service is redundant!
-
Save, Launch!
-
-
Application Launch:
-
Name application deployment: marklavi-beachhead-took-X-minutes
-
Terminal: find start time, find end time.
- BUG: time zones of server, cloud-init?
-
Show logical deployment, open terminal, audit logs
-
-