What is your Problem Solving Spirit Animal?

Are you registered for VMworld 2020? You should be! There are over 900 sessions, Hands on Labs, and much much more!

I have a couple On-Demand sessions this year. I’m specifically referring to session #ETPD1127. In this session I break down different problem solving strategies that will help with your professional development. Whether it is understanding the methods you use to solve problems, or if you are evaluating your co-workers in order to help improve the team dynamic.

Check out the session then tag me on Twitter and let me know what your #ITAnimal is! I hope you enjoy the session and VMworld 2020!

Feel free to grab one of the following images.

Hyena

Shark

Snake

Squirrel

Bird of Prey

Flying Squirrel

Start-Hackathon | Invoke-Fun

What would VMworld be without a Hackathon? -> Boring!

For the past several years, I have been a participant in the VMworld Hackathon. Year after year, it has been a great experience. I have been a participant, team captain, but every year, no matter what I come out a winner!

These types of events build confidence and character. It motivates me to try new things and think of different ways to solve problems.

I am always impressed by the projects that folks choose to work on and how much work can be completed in just a few hours.

This year is going to be a little different since it will all be virtual. However, I LOVE the concept that was chosen:

 Ansible vs. PowerShell

While I would consider myself quite crafty with PowerShell, there is something that has been appealing about Ansible for a while. Nevertheless, I have yet to meet someone that could convince me to use it. I feel as though I can do it better or faster with PowerShell. Yes I am aware that they are not specifically meant to solve the same problems. That does not keep me from trying!

The Hackathon will be a little different for me as well.

I am a Judge for the very first time! It is very exciting.

I know all about what the experience as a participant is like, the stress of coming up with a good idea, or choosing the right team, scoping a project so that it can be completed in a night. Making sure that everyone on the team has some work to complete, that the demos will work, not forgetting to eat and drink!

However, with all of the stress comes a great reward, the sense of accomplishment, community and fun.

I am looking forward to meet that someone, or team of folks to convince me that I should invest some time learning about Ansible.

So you should register, pick a topic, and have some fun with the VMware Code Community!

I cannot wait to see what the community can come up with this year!

See you there!

VMworld – Makes Me Smile

VMworld 2020 is rapidly approaching. And while this year might look a little different, the outcome of YOUR event will depend on you. Just like every other VMworld in the past I will attempt to make the most of my experience at during the conference.

With the COVID-19 pandemic rocking the entire world this year, I knew that the in-person conference schedule would be different this year. Whether conferences were cancelled, or if they moved to a completely online event, my conference year would be impacted. I enjoy the traveling, and being able to completely throw myself into several days of learning new things (while not at work). I enjoy meeting new people, seeing old friends, talking shop and leeching off the passion of other folks to rejuvenate my own love for IT.

I was heartbroken when I first learned that VMworld would be 100% virtual. I was angry, sad, confused… All of the emotions. Keep in mind this news was coming out before the annual email that my sessions were rejected. So I am used to bad news, but I was hoping the pandemic would have been settled down, and that VMworld could still be my fun, in-person, end of summer event. So I kinda forgot about VMworld for 2020.

Fast-forward a few weeks and to my surprise I received emails that not one, but two of my VMworld 2020 sessions were accepted. WHAT?!?!? That’s CRAZY, and to think that there will be no stage, it will be a virtual event. I was still torn on whether or not I was going to even register for an all virtual VMworld, but now I have the opportunity to present. The internal struggle was real, I needed to give this more thought! So as I talked to my wife about it and what I realized is this:

VMworld – makes me smile.

For me, VMworld is much more than just an IT conference. It is my annual pilgrimage that resets my biological IT clock. VMworld truly (re)kick-started my IT career in 2011, so I treat it with the utmost respect. I thought back to why I attend VMworld each year, what I look to get out of the conference, and what it would mean if I didn’t give it my best effort.

The truth is, I would never turn down an opportunity to present, not at VMworld or any other conference, whether it’s in person or online. I will always attempt to give back to the community that has motivated me to get where I am today. As I wrap up the final draft of my presentations I am more excited for this VMworld than any of the previous events I have attended, because I have the opportunity to change someones perspective, motivate them to learn more, dig deeper, or try something new.

There are over 800 900 sessions at VMworld this year, which is an insane amount of material. But the reality is that it only takes 1 session to change a life. Maybe its a session on PowerCLI, Kubernetes, vCenter performance, etc, it really doesn’t matter. So as you sit at home, find one session, or two sessions, take the information in, and make a change in your life. Learn something new, don’t get overwhelmed with all of the information that is available. Make VMworld 2020 YOUR event. It does not need to be crazy like my calendar from last year:

I fill the empty space with Hands on Labs!

Things about VMworld that make me smile:

  • Signing up for Sessions in the Schedule Builder
  • Seeing my name in the Content Catalog
  • Joining wait lists for popular Sessions
  • Organizing and filling my entire Calendar for the week
  • Attending Sessions
  • Hands on Labs
  • Solutions Expo
  • vBrownBag Stage
  • The VMware {Code} Hackathon
  • The Hall Crawl (I’ll create my own this year!)
  • Saying Happy New Year to Alastair Cooke
  • Planning my recovery day on the Friday afterwords
  • Many more things

So if you are still considering whether or not to virtually attend VMworld 2020 – Register today! Watch a few sessions, and ‘Shape Your Future’

Check out my Sessions in the Content Catalog:

Also, mark your calendars for the very first VMware {code} CODECON 2020 which immediately follows VMworld 2020. It is going to offer 2 full days of LIVE presentations!

VMworld 2020 will look and feel a bit different. However, it will absolutely deliver the digital content you are looking for in 2020!

The v.G.O.A.T.

Recently there has been an uptick in conversations surrounding the G.O.A.T. With the live sports world essentially halted, ESPN and the rest of the sports channels are replaying old games and focusing on some of the greatest and most popular players of each sport. Yes, I still have normal cable. Being a pretty big sports fan it’s been a pretty good filler in the absence of live sports. I’ve enjoyed watching ‘The Last Dance’ which focused on Micheal Jordan, ‘Tiger Slam’ focused on Tiger Woods and some others like Gretzky, Mike Tyson Cal Ripken. As a nostalgic sports fan it has been great. 

So this is a tech blog right? So all of these shows had me thinking about who in the VMware community is the G.O.A.T., or the IronMan, a person that you would want to aspire to be like. Knowing that you may never reach that greatness! But who makes me want to hit the keyboard, and create something cool, or automate that strange thing to save me a few mouse clicks, etc.

While I think that the VMware community is full of great folks, it is a very large community with a lot of positive attitudes that are willing to help. I can say that honestly as I have been around for quite a while and participate(d) in several other communities that aren’t as well established. 

The person that jumps out at me is William Lam. He is head and shoulders above anyone else in the community. He is the vGoat.

So what makes William the v.G.O.A.T.-? Several things.

  • Longevity
  • Quality Content
  • Nobel Intent
  • Generally speaking, a really nice person

Longevity

His blog https://www.virtuallyghetto.com/ has been around for over 10 years. Honestly, I would love to see the stats his blog generates. I’m happy when I see 10-15 views per day on my blog, lol. He’s a machine.

Quality Content

He is an expert. He is intelligent. His blog posts reflect this. The content of his posts are detailed and consumable. Whether it be a new feature, troubleshooting a common problem, or just something cool that he has been working on, his writing style allows you to be immersed in the content to understand the purpose of the blog post. The level of automation that he is able to achieve across a wide variety of technology is pretty amazing when you step back and take a look. His knowledge spans many products, not a stove pipe. His knowledge is deep, not just wide. The frequency of the content is also something to note. This is where I’d love to see his stats again, but I would venture to say 1-2 blog posts a week is normal if not a bit low.

Nobel Intent

While I cannot speak for William, I truly believe his goal is to educate everyone. He wants to share the solutions he works on, and make life easier for anyone that uses the products he touches. He cares, about his work, helping others, delivering great products, great content, etc. The word ‘Passion’ comes to mind when I think of him. He is so energetic about his work, it addictive, it excites me to jump back into something I am working on.

Generally speaking, a really nice person

I have had the pleasure of talking with William over the years and its a pleasure. He is a kind person. Loves to talk tech stuff, he is interested in learning about those edge cases and weird scenarios you may have. 

The tech oozes from his soul. That is something I appreciate. 

So Check out his blog and follow him on Twitter, or vGhetto. You will never be bored.

The Great ones always stand out. Thank you for all that you do William.

Reset-Module ~ Something that’s been missing for a while.

I write a lot of little PowerShell Modules that I am constantly tinkering with. This forces me to reload those modules in my console windows constantly. For each module it’s three commands:


Remove-Module -Name RestPS

Update-Module -Name RestPS

Import-Module -Name RestPS

It’s Annoying!

So here is a simple function to take care of those commands with a single command!


Reset-Module -Name RestPS

The Function is available in the ‘jpsider’ module on the PowerShell Gallery.

If you have any issues, report them on GitHub.

Enjoy!

Folding@home – How you can help.

One thing I have learned over the past few years is that I really enjoy helping people out. With the current world events and everything I normally do in my day to day life (coaching soccer, volunteering at the children’s school, etc) canceled for the foreseeable future, it was nice to see that I have another way. Enter – Folding@home.

My wife was ecstatic when I told her that I was going to run upstairs and start folding. She was less enthused when she found out it was not going to be clothing.

Twitter has been blowing up the past few days about Folding@home, so I did some research and determined I can help! At a minimum, I knew I could use my VMware based homelab to throw cycles at the cause. I also reached out to the owner of my company, Belay Technologies, to see if we could use idle equipment in our lab. Sure enough, the answer was yes!

One thing I love about Belay Technologies is that we are always looking for ways to help.

Okay, Okay…  You may be wondering what Folding@home is. The answer is that it’s a distributed computing solution that is looking to solve scientific problems. It’s nerd stuff!

folding

Need more information on Folding@home, Check out their website. Review their FAQ.

What’s been the buzz on Twitter? Well, VMware decided to create a fling to make an appliance that is easy to deploy into vSphere and run Folding@home. Since it was VMware, I had to try it right?

Check out their blog post from the Office of the CTO.

It didn’t take long to get started.

  1. Visit the Fling Site and download the OVA.
  2. Review the PowerCLI script (cringe a little, it needs some TLC).
  3. Modify the PowerCLI script to work in my environment. 🙂
  4. Deploy the OVA to my homelab.
  5. Create a team for Belay Technologies.
  6. Deploy the OVA to the Belay Lab.

And now we are helping to save the world, without leaving the office.

folding01

Here is a quick snippet on how it works from the Folding@home website.

foldingworks

  • Team Numbers (To view stats)
    • VMware – 52737
    • BelayTech – 246789

Hopefully, you will take some time to consider helping the cause by donating your unused CPU cycles.

READ THIS!

Before loading software on your personal computer, please consider the security implications. I do not recommend running this software on a computer that stores your personal information. Additionally do not run this on your work computer without your employer’s written consent. The program is designed to consume nearly 100 percent of your available CPU cycles.

Thank you to all of the folks over at VMware that have made the deployment of the Appliance to easy. It was a great idea and even better execution!

Side note; In my homelab, I needed to have the vCenter running in order to deploy the appliance. Once it was deployed I powered the vCenter off to give the full CPU availability to the appliance (my environment is running on an Intel NUC).

Happy Folding!

vSphere 7 – vCenter Server Profiles Preview

As a decision-maker for several large projects, I constantly need to make difficult decisions regarding the purchase of software licensing. One of the things I look for is ‘what are those software vendors doing to reduce my operating costs’? Do they include tools to manage their products? Are they looking to their users to define their roadmap? VMware consistently delivers features and capabilities that make my life easier, Period.

Let me set the stage. For one of my primary projects, I support 60+ vCenter servers across multiple sites. To date, I have not found a single tool that can provide configuration and lifecycle management for our vCenter servers. To be perfectly honest the idea of backups and disaster recovery was really just an afterthought. In our shop, we found it just as easy to deploy a new vCenter than it was to fix an old or broken one.

I assume that while my environment might be on the extreme side of the envelope when it comes to the number of vCenters, the VMware community has desired a vCenter configuration management tool for some time.

Enter vSphere 7 and vCenter Server Profiles. Words cannot express my level of excitement for a vendor-supported solution! This new feature promises to deliver an interface that will allow vSphere administrators to easily and uniformly manage multiple vCenter servers.

vsp7_00

NOTE: THIS IS NOT HOST PROFILES!

Keep in mind that for the initial release there is no User Interface. All interaction is through REST APIs. Get out your console’s folks!

The API currently has four actions:

  • List – Provide a list of configurable items (by section)
  • Export – Exports the configuration profile via a JSON file.
  • Validate – Validates the configuration against a supplied JSON file.
  • Import – Imports a profile to vCenter Server via a JSON file.

The APIs will also be available in the API Explorer that is located in the Developer Center.

vsp7_02

The process seems pretty simple.

  1. Configure the ‘Gold’ or template vCenter
  2. Export the configuration
  3. Then Import the configuration to any vCenter that you want to be configured the same way!

vsp7_03

Configuration validation is one of the new features I look to take advantage of. I plan on writing a simple PowerShell process to run on a schedule that simply takes the exported ‘Gold’ copy of the configuration and validates it against all of my vCenters.

vsp7_01

I love this new addition to vSphere 7 and cannot wait to get my hands on it. Kudos to the VMware team for listening to its customers and community of users!

‘Open-ConsoleWindow -Count 3’ … It’s that easy

I’ve added a new function to the ‘jpsider’ module. I always find myself opening multiple console windows using the mouse. Yeah, I said it, I use the mouse! Well, it is too many clicks, so now I have a function that can open the new consoles for me! This will work for ‘PowerShell.exe’ and ‘Pwsh.exe’. I will need to do some testing on linux and Mac, as the current function will not work. If anyone has a desire for that please open an issue on GitHub for me.

Here is how you use it:

 
Install-Module -Name "jpsider" 
Open-ConsoleWindow -Count 3 -Executable "PowerShell.exe"

Or:

  
Open-ConsoleWindow -Count 3 -Executable "pwsh.exe"

Here is what it looks like – Notice I make use of the ‘Update-ConsoleTitle’ Function too!

NewConsole

#SayNoToMouse

Update-ConsoleTitle -Title “Why did I wait so long?”

Not sure about you, but I am constantly trying to keep track of multiple PowerShell console windows that I have open. I tend to try and update the title of the console by using the following line:

$Host.UI.RawUI.WindowTitle = "Some Fancy Title"

However, trying to remember that is a pain in the butt. So I have created a function and added it to a new Module on the PowerShell Gallery. Why did I wait so long to make a function for this?!?!


Install-Module -Name "jpsider"

Update-ConsoleTitle -Title "Some Fancy Title"

This function name is so much easier to remember. Hopefully, you will find it useful.

FancyTitle

I plan on adding more helpful functions to this module over time.

PowerShell Scaffolding – How I build modules.

Recently I’ve been getting quite a few inquiries about setting up modules for PowerShell. So, I’ve decided to write about it. Below you will read about how I go about creating a new PowerShell module.

Included in this Post:

  • Overview of Scaffolding
    • Plaster
  • My Module Template
    • Local testing files
  • AsBuiltReport
    • Run through an example

What is Scaffolding?

In it’s simplist form, its a common directory and file structure to help you build a PowerShell module. The directory structure helps separate build tools from the actual module/function files. There are two fairly popular scaffolding tools for PowerShell:

Plaster is the tool that I use to create new module scaffolding. I have found it easy to use and when I was first writing modules, there were quite a few blogs that did really well at helping me understand the process and tools. This was probably the most helpful link that I could find using Plaster. -> Kevin Marquette

My Module Template

Of course nothing in the PowerShell world is complete unless you have put your own twist or spin on it! Over time I have created my own Plaster template that I use to generate my own Modules. While the changes are small, it helps me rapidly generate all of the directories I desire to have in a module. My Module template can be found on GitHub.

My additions to the standard Plaster template are the following:

  • BuildSettings.ps1
    • Separate file to add any additional build settings. It keeps things clean IMO.
  • tests\RunPester.ps1
    • Allows developer to run Pester Tests on the full module on local box.
  • tests\RunPSScriptAnalyzer.ps1
  • tests\RunPSCodeHealth.ps1
    • Allows developer to run PSCodeHealth on the full module on local box.
  • Example Function and Unit test files
    • Disable-SSLValidation.ps1
      • Example Function (Located in Public and Private folders)
    • Disable-SSLValidation.Tests.ps1
      • Example Unit test file (Located in Public and Private folders)

AsBuiltReport

I’ve been talking with the guys who are working on the core functionality of the AsBuiltReport PowerShell Modules. They’ve asked me to scaffold out two of their repositories to help create an automated build pipeline for their modules. So lets walk through the process to show you how simple it can be.

  1. Install the Plaster Module
  2. Download my Plaster FullModule Template
  3. Run Plaster!

Step 1 – Is fairly easy, open a PowerShell console and run:


Install-Module Plaster<br data-mce-bogus="1">

 

 

Step 2 – Visit the link above and either Fork or clone the repository to your local machine.

Step 3 – Run Plaster, update the paths to match your local directories:


Invoke-Plaster -TemplatePath C:\OPEN_PROJECTS\Invoke-Automation\Powershell\Plaster\FullModuleTemplate\ -DestinationPath .\AsBuiltReport\

 

Then follow the prompts to create your new Module… It’s that simple!


==================================================
Name of your module (AsBuiltReport): AsBuiltReport.Cohesity.DataPlatform
Brief description on this module: AsBuiltReport.Cohesity.DataPlatform
Github repo name for this module (AsBuiltReport.Cohesity.DataPlatform):
GitHub username (AsBuiltReport):
Module author's' name (AsBuiltReport):
Initial module version (0.0.1):
Destination path: C:\temp\PLASTERSHIT\AsBuiltReport\
Creating folder structure
Create docs\images\
Create tests\
Create spec\
Create .vscode\
Create AsBuiltReport.Cohesity.DataPlatform\public\
Create AsBuiltReport.Cohesity.DataPlatform\private\
Create AsBuiltReport.Cohesity.DataPlatform\classes\
Create AsBuiltReport.Cohesity.DataPlatform\data\
Create tests\public\
Create tests\private\
Deploying files
Create appveyor.yml
Create build.ps1
Create BuildSettings.ps1
Create deploy.PSDeploy.ps1
Create .gitignore
Create .vscode\settings.json
Create spec\module.Steps.ps1
Create mkdocs.yml
Create PITCHME.md
Create readme.md
Create LICENSE
Create module.build.ps1
Create AsBuiltReport.Cohesity.DataPlatform\public\Disable-SSLValidation.ps1
Create AsBuiltReport.Cohesity.DataPlatform\private\Disable-SSLValidation.ps1
Create docs\about.md
Create docs\acknowledgements.md
Create docs\index.md
Create docs\Quick-Start-Installation-and-Example.md
Create tests\Project.Tests.ps1
Create tests\Help.Tests.ps1
Create tests\Feature.Tests.ps1
Create tests\Regression.Tests.ps1
Create tests\Unit.Tests.ps1
Create tests\RunPSCodeHealth.ps1
Create tests\RunPSScriptAnalyzer.ps1
Create tests\RunPester.ps1
Create tests\public\Disable-SSLValidation.Tests.ps1
Create tests\private\Disable-SSLValidation.Tests.ps1
Create spec\module.feature
Create AsBuiltReport.Cohesity.DataPlatform\AsBuiltReport.Cohesity.DataPlatform.psm1
Create AsBuiltReport.Cohesity.DataPlatform\AsBuiltReport.Cohesity.DataPlatform.psd1

This will create the entire directory structure as well as replace the new module name in all of the correct places withing each of the new/copied files. See the Repository used in this example on the AsBuiltReport GitHub.

Feel free to fork/update my Plaster template, I’m always interested to see what the community can come up with.