Shiny new vStuff — Speak at a VMUG NOW!

Having spent the last 3.5 years as a VMUG leader of two different VMUGs and spent time talking to over a dozen other leaders, one issue persists in the VMUG community: lack of customer participation. VMUG recognized this and implemented the Feed4ward program to, “encourage every interested member to share their knowledge at a VMUG local group meeting or User Conference”. Knowledge sharing is what everyone’s there for but most of the time people are nervous about public speaking, don’t think they know enough to discuss topics with others, or they think what they do isn’t that different or interesting. That can all changes now! 

With the release of vSphere 6 on March 12, everything is new to everyone. Not many people have downloaded it in their test/dev/lab environment and (hopefully) no one has deployed it in production yet! There are 11 vSphere ecosystem products that got updated and probably thousands of new features or enhancements to discuss. If you think just an “upgrading to ESXi 6″ presentation will be boring, look at upgrading or starting to use one of the other supporting vSphere products such as vRealize Automation or Operations Manager. Maybe you’re a SMB and using or looking to use vSphere Data Protection or vSphere Replication. What was the upgrade or setup process like? How do you manage it? Did you ever have to recover from a backup or replica? Any gotchas? There’s plenty of opportunity now to get started giving back to your local VMUG community. If you want mentoring, look into the VMUG Feed4ward program!

The vSphere 6 documentation ca be found at:

Take this time to get out in front and start getting familiar with the new features and the associated documentation. Many organizations will look to upgrade once update 1 rolls around (I was in this crowd) which will probably be released in 6 months. Take the lead, become the expert, and be a staple in your local community.

The local VMUG leaders will probably already have a “What’s new in vSphere 6″ slot carved out at the next meeting but if there’s a product feature or enhancement you like, love, or have always wanted to see, speak with them about adding a deep dive into that topic. It’s highly unlikely they’ll say no!

Better Documentation with Infrastructure as Code

Creating documentation isn’t fun. I’ve done my fair share in 10 years of administering systems. I’ve written documentation on AD, Exchange, router and switch configurations, VoIP system configuration and operations, and so on. As a one man shop that architected all the systems I ran, I was unsure what level of detail was required. What helped the most was having an outside resource that could review the documentation and try to fix a problem given the information I documented. Whatever question he had, that also had to be added.

What I’m not used to is taking over an infrastructure or application and being tasked to administer it. Even with decent documentation from the previous admin, you really don’t know the environment until you’ve had to fix a problem.

Recently, I tasked myself with taking over and update an internal application when the previous owner left. Because it was a small (but useful) tool, documentation was non-existent. To make the necessary updates to it, I had to spend plenty of time understanding how the application was structured. Once that I was done, I was ready to add my code and begin testing it.

Here’s the problem I was faced with: I don’t want to disrupt the application in production so I need a test environment but I don’t know everything I need to install to match the production application. Sure I could clone the VM, change the hostname and IP address, etc and hack at it that way. But there’s a better tool to tackle this with that will allow me to document the application and build the environment in a repeatable way. Enter configuration management and the concept of infrastructure as code.

Tools such as Puppet, Chef, and Ansible enable this ability. By implementing the concept of infrastructure as code, admins have the ability to provide useful documentation for systems and applications in the environment and also establish a mechanism to stand up additional application components or even provision new hardware. I chose to learn Ansible because I like the fact that the syntax is very simple (YAML), it uses SSH to communicate with the host, and is agentless.

From my investigation into the app, I know I need Ubuntu Linux, PHP, Apache, Postgresql, and Python. With a little command line-fu, I can find out which versions of the software I need and ensure that my configuration specifics those versions to be installed.

By implementing the concept of infrastructure as code, relevant and detailed documentation is provided for you, your team, and those that come after you.


Updating the firmware on a Micron p420m

A common PCIe flash card for PernixData customers to use is the Micron P420m in their environment. It’s a very high performing and cost effective PCIe card and has a variety of applications.

Like all hardware devices, the p420m has firmware that occasionally needs to be updated. To perform the firmware update, we’re going to download the Micron rssdm utility (packaged with the ESXi drivers) on Micron’s site in the Support Pack for Linux and VMware package. As of January 2015, the support pack B145.03 from September 2014 is still current.

The first step to determining which firmware version the card is running is to install rssdm. Put the host into maintenance mode, copy the vib for your version of ESXi to the host, and run the esxcli software vib install -v <VIBFILE> command and reboot the host.

Once the host is back up, log in and execute the /opt/micron/bin/rssdm -L command to see the firmware version of the card.


As you can see, my card is running firmware version B2100600 and needs to be updated. At the time this article is posted, current firmware version is B2120500. We’re going to copy the new firmware to the host or shared datastore and perform the upgrade.

With the host in maintenance mode and the device removed from the FVP Cluster, copy the B145.03.00.ubi firmware image downloaded from the Micron Support Pack above to a location accessible by the host. The B145.03.00.ubi file will be in the Unified Image folder.

Then execute /opt/micron/bin/rssdm -T path/to/file/B145.03.00.ubi -n 0


Once it’s complete, reboot the host.

Once the host is back up, verify the new firmware is active.


Secure erase the drive by executing: /opt/micron/bin/rssdm -X -n 0 -p ffff

Screen Shot 2015-01-19 at 10.40.10 PM

Note: For those interested, -X is to perform the secure erase, -n is to specify the drive ID, and -p is for password (default is ffff)

After the secure erase is complete, back the host out of maintenance mode and add the device back to the FVP Cluster.

Git: Syncing a Fork In It

On the second day of Commitmas, I had a new hurdle to jump — I forked @mjbrender’s repo, submitted a PR, and he accepted my changes as well as changes from @joshcoen and now my fork is outdated. How do I update my fork and local repo with the changes?

To rectify this, we’re going to leverage two git commands: git remote add upstream and git fetch upstream command.

With git remote add upstream, we’re going to specify the repository that we forked. In my case, I did:

git remote add upstream

A git remote -v verifies that we added the upstream source:

Screen Shot 2014-12-22 at 10.12.15 PM

Then we perform git fetch upstream to copy the original repository (the one we forked) to our local repository (on our dev box):

Screen Shot 2014-12-22 at 10.12.23 PM

Now we just fetched the upstream/master branch/repo and needs to be merged into our master branch. We can switch to our master branch with git checkout master.

Finally, git merge upstream/master to merge upstream/master to our master branch.

Screen Shot 2014-12-22 at 10.12.55 PM

The final stretch! Our local repository is now a clone of the original repository again but we need to push our changes back to our repository on GItHub.

Screen Shot 2014-12-22 at 10.28.16 PM

Done! Join in the Commitmas conversation on Twitter using the #vBrownBag hashtag! Happy committing!

Rockin’ Around the Commitmas Tree


My good friend Matthew Brender started a fun project for the holiday season called 12 Days of Commitmas to encourage everyone to continue to grow over the holiday season by learning or expanding their knowledge with git and coding. These skills will become increasingly prevalent and necessary in 2015 as more sysadmins and organizations implement version control to manage code for configuration management tools like Ansible.

When looking at the skill levels that Matt created, I found myself between beginner and intermediate. In the spirit of code contribution and learning git, and playing with Markdown, I submitted my first pull request on GitHub to expand the skill levels.

My Goal for Commitmas

Because my coding skills are relatively weak (improving them is a 2015 goal), I will contribute documentation to a project on GitHub. Internally on the SE team at PernixData, there are some PowerShell scripts that I will create repositories for in GitLab. I haven’t picked a project on GitHub yet to contribute to but I’m considering something related to Ansible. This will give me a chance to explore the different Ansible projects on GitHub and learn/do more with Markdown. I’m also going to push all of my commits using the CLI as I currently lean heavily on the GUI. I know there’s nothing wrong with using the GUI but I believe that true mastery comes from using the CLI when applicable.

Join in the Commitmas conversation on Twitter using the #vBrownBag hashtag! Happy committing!

Goals for VMworld 2014

VMworld 2014 will be my second time at VMworld and because the conference goes by so fast, it’s important to make a list of goals to achieve and work to stick to it. You don’t want to look back on your time at VMworld and say, “I wish…”

My first VMworld was in 2011 and was an amazing experience. I had been using Twitter and been involved with the community for about 2 years and meeting many people I followed and became friends with was a great experience. I had also been a VMUG leader for 2 years and enjoyed the opportunity to meet and mingle with other VMUG leaders.

VMworld 2012 would have also been another first for me as I was honored as a vExpert 2012 and was really looking forward to participating in the vExpert party. However, a category 3 hurricane was bearing down on New Orleans and I didn’t want to leave my family. I hope to join the current ranks of vExpert for Q3 2014 and participate next year.

Now that I’m at PernixData, my time at the conference will be spent completely differently than my first time. As a vendor, you don’t typically get to attend sessions. A fair amount of my time will be spent at the PernixData booth (#1017) demonstrating FVP. So the role as a vendor is going to be a completely different but still exciting. PernixData has built an incredible product and is already changing how datacenter are designed. Not many startups can say that after selling for 1 year. I’m surrounded by such an incredibly talented team and looking forward to spending time with them this week.

So what do my goals for VMworld 2014 look like?
Evangelize PernixData FVP. My primary reason for being at VMworld is to share PernixData FVP with the world so without a doubt, that’s goal #1. PernixData is an incredible product that I really love so it’s very easy and fun. I’ll be at the PernixData booth during the week so stop by and say hi.
Network with VMUG leaders. VMUG has grown tremendously since 2011 and I’m looking forward to meeting new leaders and continuing to learn how to improve the New Orleans VMUG.
Attend vBrownBag sessions. Without the ability to attend vmworld sessions, I’m looking for some avenue to learn while surrounded by so many smart and talented people. The vBrownBag crew has lined up some great speakers for the week and is sure to be a place I spent a lot of personal time. I’ve also recently co-hosted a couple of weekly sessions so it will be great to meet everyone in person.
Network with the VMware community. PernixPros, PernixPrimes, other vExperts, and everyone else in between: I want to meet you. Everyone has a story to tell so I look forward to growing personal and professional relationships.
Blog. I’ve been wanting to do this for years and never set the time aside to do it. With so many new announcements from VMware and partners, it’s the perfect opportunity to kick things off.
Time will fly so make a list of your goals and stick to them!

Enabling Sublime Text for Command Line Use

I have been using Sublime Text 2 on my PC for a few months and now that I have a Mac, I got around to installing it today. I have been used to modifying scripts and code snippets from the command line by using “subl <filename>”. Unfortunately, that didn’t work after installing Sublime. I’ve read other blog and seen people use it so I figured that it was just an error after installation. Let’s fix it!

The first thing we need to do is create a .bash_profile file if we don’t have one already.

touch ~/.bash_profile

Then we can add this nifty alias to our .bash_profile:

alias subl=”/Applications/Sublime\ Text\”

Finally, reload that bad boy

source ~/.bash_profile

This was a head scratcher but a quick fix.

Enable Software iSCSI Adapter Using PowerCLI

I recently began studying for the VCAP5-DCA (VDCA550) and in the course of administering a 2 host environment, it’s very rare that I have to use PowerCLI. The time it would take to write the script would easily exceed the time to perform the task by hand. But section 7 of the VCAP5-DCA blueprint states that the exam will cover PowerCLI and vCenter Orchestrator (vCO) so as I go work through the blueprint, I intend on becoming very comfortable with many different tasks in PowerCLI.

From what I’ve read about the VCAP5-DCA (VDCA 550 version), the exam environment now contains 5 hosts. Performing the same task on this many hosts in a limited amount of time is a good opportunity to automate as much as possible. I don’t think creating a powershell script for each minute task is a good use of time but over the course of learning PowerCLI, I will post many PowerCLI scripts that coincide with VCAP5-DCA blueprint objectives.

We’ll begin with enabling the software iSCSI initiator on all hosts in the datacenter. If the environment is already setup with NFS storage, there’s a good chance that the the software iSCSI initiator will need to be added to the hosts to connect to iSCSI storage. The script uses a hardcoded username and password since this is a test environment but I wouldn’t recommend doing that in production. To use in your environment, use your username, password, and name of each host. Make sure the name of your hosts matches what’s in vCenter. If it’s in vCenter with a FQDN, mirror the name in the script. Next, open PowerCLI and run the script with .\iSCSI.ps1.


$vcenter “name”

$username “username”

$password “password”

$listofhosts = “host1”, “host2”, “host3”

#connect to vcenter

write-host “Connecting to vcenter”

connect-viserver $vcenter -user $username -password $password

#Loop through hosts

foreach ($esxhost in $listofhosts)


$currentesxhost = get-vmhost $esxhost

write-host “Enabling software iSCSI initiator on $currentesxhost”

get-vmhoststorage $currentesxhost | set-vmhoststorage -softwareiscsienabled $true


write-host “Disconnecting from vcenter”

disconnect-viserver $vcenter

Cisco CCNA 640-802 Results

UPDATE: I passed the exam on June 2, 2009

I recently took the CCNA 640-802 for the second time and I wanted to post my performance for each section.

I first took the test on February 19, 2009. I felt about 80% ready for the test when I took it. I didn’t feel that I had a firm grasp on ACLs, NAT, DHCP, EIGRP, or OSPF. But I felt very strong in switching, and basic router operations.

I felt that I was doing ok till around question 13 — it took my by surprise and probably took me 15 minutes to figure it out. I quickly realized that I wasn’t as prepared. Throughout the rest of the test I had a bad feeling.

I finished the exam and it wasn’t that bad — a 778 out of 1000 (825 required to pass). I was pretty impressed with myself. I was a little down but quickly rescheduled for a month later.

Below is the breakdown:

Describe how a network works: 88%
Configure, verify, and troubleshoot a switch with VLANs and interswitch communications: 80%
Implement an IP addressing scheme and IP services to meet network requirements: 33%
Configure, verify, and troubleshoot basic router operation and routing on Cisco devices: 43%
Explain and select the appropriate administrative tasks required for a WLAN: 100%
Identify security threats to a network and describe general methods to mitigate those threats: 80%
Implement, verify, and troubleshoot NAT and ACLs in a medium-size enterprise branch office: 80%
Implement and verify WAN links: 66%

Score: 778 (825 needed to pass)

So, I knew where I needed to improve. Let’s see how I did on March 19, 2009 — a full month of studying 2-3 hours a day.

Describe how a network works: 85%
Configure, verify, and troubleshoot a switch with VLANs and interswitch communications: 66%
Implement an IP addressing scheme and IP services to meet network requirements: 50%
Configure, verify, and troubleshoot basic router operation and routing on Cisco devices: 46%
Explain and select the appropriate administrative tasks required for a WLAN: 100%
Identify security threats to a network and describe general methods to mitigate those threats: 100%
Implement, verify, and troubleshoot NAT and ACLs in a medium-size enterprise branch office: 75%
Implement and verify WAN links: 100%

Score: 776 (needed 825 to pass)

776?! 2 points lower than the first attempt and feeling fully confident and maintaining positive throughout the whole test and finishing with 20 minutes left? Well after losing some sleep last night I believe I identified some things I got wrong and how to make it right. I believe that if I would have gotten the same score on switching and VLANs, I would have passed. As far as scoring so low on the fundamentals of a router — I can’t explain. There’s not much to know — hostname, configuring an interface, setting passwords, vty access, etc.

I really want to retake 640-802 again instead of taking ICND1/2 — If my assumptions on scoring are close to right, I’m probably missing 1-2 too many.

I’m going to think about it over the next few days and make a decision.

If you’re not following me already on twitter, you can do it now. I’m @bdwill.


Get every new post delivered to your Inbox.