<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Datacenter Journey on Datacenter Journey</title>
    <link>https://datacenterjourney.com/</link>
    <description>Recent content in Datacenter Journey on Datacenter Journey</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Tue, 25 May 2021 16:20:25 -0700</lastBuildDate>
    <atom:link href="https://datacenterjourney.com/" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Add SSH Keys GitHub Access on MacOS</title>
      <link>https://datacenterjourney.com/2021/add-ssh-keys-github-access-on-macos/</link>
      <pubDate>Tue, 25 May 2021 16:20:25 -0700</pubDate>
      
      <guid>https://datacenterjourney.com/2021/add-ssh-keys-github-access-on-macos/</guid>
      <description>

&lt;p&gt;When trying to update the website hosted in GitHub from a different laptop there was an issue with the submodules not being updated on the new laptop correctly. After searching multiple sites to try and correct this issue I was finally able to figure out what the problem was. The &lt;code&gt;public&lt;/code&gt; folder wasn&amp;rsquo;t being properly recognized as a submodule within my Github repository when cloning it to the new laptop. To correct this there were a few things that needed to happen due to the new security changes deprecating the use of passwords for basic authentication with GitHub. I needed to add the SSH Keys from the new laptop to GitHub to then be able to add the submodule. For this post I will focus on creating, adding and testing the SSH keys for GitHub access and in the next post I will cover the error and steps for properly adding a git submodule.&lt;/p&gt;

&lt;h3 id=&#34;check-for-ssh-keys&#34;&gt;Check for SSH Keys&lt;/h3&gt;

&lt;p&gt;You will want to open up your terminal and enter the following command to check if you have any existing SSH keys on your Mac.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;ls -al ~/.ssh
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You are looking for any of the following file names if they were created with the defaults.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;id_rsa.pub&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;id_ecdsa.pub&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;id_ed25519.pub&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If they are not present move on to the next section on &lt;strong&gt;Creating SSH Keys&lt;/strong&gt;, if they are present skip to either the &lt;strong&gt;Add SSH Keys to ssh-agent&lt;/strong&gt; or &lt;strong&gt;Add SSH Keys to GitHub&lt;/strong&gt;.&lt;/p&gt;

&lt;h3 id=&#34;creating-ssh-keys&#34;&gt;Creating SSH Keys&lt;/h3&gt;

&lt;p&gt;To generate new SSH Keys run the command below making sure to replace the email address with the one used to access your GitHub account.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;ssh-keygen -t ed25519 -C &amp;quot;emailaddress@company.com&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You will then be prompted to &amp;ldquo;Enter a file in which to save the key,&amp;rdquo; go ahead and press &amp;lsquo;Enter&amp;rsquo; to accept the default location. Next, you will be prompted for a passphrase. You can either press &amp;lsquo;Enter&amp;rsquo; to leave it blank or type in a passphrase. You will get a second prompt to confirm your previous entry.&lt;/p&gt;

&lt;h3 id=&#34;add-ssh-keys-to-ssh-agent&#34;&gt;Add SSH keys to ssh-agent&lt;/h3&gt;

&lt;p&gt;We need to start the ssh-agent in the background to proceed by running the following command.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;eval &amp;quot;$(ssh-agent -s)&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This will generate a message with the agent process id. If we are doing this on macOS Sierra 10.12.2 or later, then we will need to create or modify the &lt;code&gt;~/.ssh/config&lt;/code&gt; file to load the keys into the ssh-agent. You can also choose whether or not to store the passphrases in your keychain. To check if the file already exists you will use the command below.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;open ~/.ssh/config
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If the file opens continue on to the next part otherwise to create the file you will run the &lt;code&gt;touch&lt;/code&gt; command to create the config file.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;touch ~/.ssh/config
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now that we have the config file open for editing you will add the information below into the file and save it. Make sure to the correct Identity file name and location, if you followed this guide the file is the same one we created under the &amp;ldquo;Creating SSH Keys&amp;rdquo; portion. If you chose to not enter a passphrase when creating the SSH keys then make sure to remove the line &lt;code&gt;UseKeychain yes&lt;/code&gt; before saving the file. This will make sure that it&amp;rsquo;s not added to your Keychain on the Mac you are working on.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Next, we add your SSH private key to the ssh-agent and store your passphrase in the keychain (if you chose to complete that step.) If you created your key with a different name, make sure to replace id_ed25519 in the command with the name of your private key file.&lt;/p&gt;

&lt;h3 id=&#34;adding-ssh-keys-to-github-account&#34;&gt;Adding SSH Keys to GitHub account&lt;/h3&gt;

&lt;p&gt;First, we need to copy the newly created SSH key to the clipboard. to do this you will run the command below. Make sure to change the name of the .pub file if you created a different one.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;pbcopy &amp;lt; ~/.ssh/id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If that &lt;code&gt;pbcopy&lt;/code&gt; command doesn&amp;rsquo;t work then you can go to the ~/.ssh folder and open the file with a text editor or vi to copy the contents to the clipboard.&lt;/p&gt;

&lt;p&gt;Now you will need to log into your GitHub account online. In the upper right hand corner click on your profile picture and go down to select &amp;ldquo;Settings&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2021/2021-05/GitHubKeys01.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;On the next page on the left hand side you will go to &amp;ldquo;SSH and GPG keys&amp;rdquo;. On that page you will then click on &amp;ldquo;New SSH Key&amp;rdquo;&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2021/2021-05/GitHubKeys02.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;You will need to give your new SSH key a Title to identify it like &amp;ldquo;Personal MacAroni Pro&amp;rdquo; so that it&amp;rsquo;s descriptive and easy to identify what machine this is for. Paste the key contents from your clipboard into the Key section and then click &amp;ldquo;Add SSH key&amp;rdquo;. You might be prompted to enter your GitHub password and click &amp;ldquo;Confirm password&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2021/2021-05/GitHubKeys03.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;h3 id=&#34;test-ssh-connection-optional&#34;&gt;Test SSH Connection (Optional)&lt;/h3&gt;

&lt;p&gt;If you want to test the connection to make sure your SSH key was added successfully go to your terminal and type the following command&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;ssh -T git@github.com
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You should get a warning similar to the one listed below.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;The authenticity of host &#39;github.com (IP ADDRESS)&#39; can&#39;t be established.
 RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
 Are you sure you want to continue connecting (yes/no)?
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can verify that the fingerprint matches GitHub&amp;rsquo;s public key fingerprints listed below and then type &lt;code&gt;yes&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 (RSA)
 SHA256:br9IjFspm1vxR3iA35FWE+4VTyz1hYVLIE2t1/CeyWQ (DSA)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If everything is successful you will get a message like the one below with your GitHub username instead of the word username.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;Hi username! You&#39;ve successfully authenticated, but GitHub does not 
 provide shell access.
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;if-prompted-for-username-password-optional&#34;&gt;If Prompted for Username &amp;amp; Password (Optional)&lt;/h3&gt;

&lt;p&gt;If you are prompted for a username and password then the chances are that you need to update the URL of orgin to use SSH instead of HTTPS. You will probably notice a message similar to the one below.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;Username for &#39;https://github.com&#39;:
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To not be prompted for the credentials you will run the following command replacing &lt;code&gt;username&lt;/code&gt; with your username and &lt;code&gt;repository&lt;/code&gt; with the name of your repository.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git remote set-url origin git@github.com:username/repository.git
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>Install Specific Version Hugo MacOS</title>
      <link>https://datacenterjourney.com/2021/install-specific-version-hugo-macos/</link>
      <pubDate>Thu, 06 May 2021 22:31:25 -0700</pubDate>
      
      <guid>https://datacenterjourney.com/2021/install-specific-version-hugo-macos/</guid>
      <description>&lt;p&gt;I ran into a display formatting issue when trying to work on my blog from a different laptop. The problem was that when I initially built the site using Github and Hugo it was with an older version of Hugo. The theme being used hasn&amp;rsquo;t been updated in a while and probably isn&amp;rsquo;t compatible with the newer version of Hugo due to a change that was made somewhere along the line and never tested. Luckily I still have the original laptop I was using to build the site and was able to verify what version of Hugo is installed and that the formatting is displaying correctly. I then had to try and find out how to get that version installed on the new laptop since I already had cloned the blog repository.&lt;/p&gt;

&lt;p&gt;The easiest way to install the latest version of Hugo on macOS is to use Homebrew and run the command below. The problem was that this installed v0.83.1 at the time of this writing which is much newer than what I originally installed almost two years ago.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;brew install hugo
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you want to install a specific older version of Hugo then you need to go to the release page and search for the version you want to install.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/gohugoio/hugo/releases&#34; rel=&#34;nofollow noreferrer&#34; target=&#34;_blank&#34;&gt;https://github.com/gohugoio/hugo/releases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this document, we will be installing version 0.55.6 by searching for that version and then clicking on the version number link. You will then get a list of available installations for the different operating systems. Here we are installing the x64 version for macOS and will download the tarball to perform the installation which is named as follows hugo_0.55.6_macOS-64bit.tar.gz.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s usually a good idea to verify that the tarball download wasn&amp;rsquo;t corrupted by running the command below to verify.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;tar tvf ~/Downloads/hugo_0.55.6_macOS-64bit.tar
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There are a few tasks you will want to perform to make running hugo quicker and easier. Run the following command to determine whether your default shell is bash or zsh.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;echo $SHELL
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Depending on which shell you are running you will need to edit the profile using one of the commands below.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;vi ~/.bash_profile
 #or
 vi ~/.zprofile
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Using the vi editor you can then hit &lt;code&gt;i&lt;/code&gt; to enter insert mode and then you will add a line to append the following information to the profile.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;export PATH=$PATH:$HOME/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;After you have added the information you will hit the &lt;code&gt;esc&lt;/code&gt; key to switch back to command mode and type &lt;code&gt;:wq&lt;/code&gt; to save the changes and exit the file. To have the information available for our current session you will need to source the file using one of the following commands based on your default shell.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;source ~/.bash_profile
 #or
 source ~/.zprofile
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To install the specific version of hugo in the local bin directory. First, check to see if you already have a bin directory by running the command to list its contents.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;ls ~/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you get a message that there is no such directory then you will need to create it with the following command.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;mkdir ~/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now we can extract the tarball to the local user bin directory using the following commands. First, you will want to change your working directory and then extract the tarball. Make sure to replace the path with the location of where you have the tarball downloaded.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;cd ~/bin
 tar -xvzf ~/Downloads/hugo_0.55.6_macOS-64bit.tar
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Check to see if the tarball was extracted and installed correctly running the two commands below. The first command will verify that hugo is in the local bin directory and the second command verifies that the version you installed runs.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;# checks the path
 which hugo

 # displays the version
 hugo version
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you are going to be installing multiple versions I recommend renaming the hugo file have the version number after it. This will allow you to specify which version of Hugo you want to have running when working on your site. The command below shows you how to rename the file to include the version number. Make sure to replace &amp;lsquo;martinez&amp;rsquo; with your username.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;mv /Users/martinez/bin/hugo /Users/martinez/bin/hugo55.6
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now to run any of the hugo commands you will use the new file name for example to check the path and version.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;# check the path
 which hugo55.6

 #display the version
 hugo55.6 version
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>Install VCSA Certificates MacOS</title>
      <link>https://datacenterjourney.com/2020/install-vcsa-certificates-macos/</link>
      <pubDate>Wed, 20 May 2020 20:06:43 -0700</pubDate>
      
      <guid>https://datacenterjourney.com/2020/install-vcsa-certificates-macos/</guid>
      <description>&lt;p&gt;We&amp;rsquo;ve all come across the pesky invalid certificate error when trying to access vCenter, stating that your connection is not private. Many of us click through and &amp;ldquo;Accept the risk&amp;rdquo; because we know that the site we are accessing is legitimate. However, there are times where not having a trusted website can cause an issue and prevent specific actions. For example, without a trusted certificate, it blocks access to upload files to datastores. The workaround would be to log in directly to an ESXi host and upload the data that way. That&amp;rsquo;s too much work, in my opinion, which is why I would instead install a trusted certificate and simplify things.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2020/2020-05/vcsaCertMac01.png&#34;&gt;&lt;/img&gt;
&lt;br&gt;
&lt;img src = &#34;/images/2020/2020-05/vcsaCertMac02.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;To install the certificate and have the vCenter address show as a secure site, you need to head to the FQDN of your vCenter. For example, in my environment, it would be &lt;a href=&#34;https://mzvmvcs001.martinez.local&#34; rel=&#34;nofollow noreferrer&#34; target=&#34;_blank&#34;&gt;https://mzvmvcs001.martinez.local&lt;/a&gt;. Then in the bottom right-hand corner, you will find a link named &amp;ldquo;Download trusted root CA certificates.&amp;rdquo; You will need to click on the link and download the certificate bundle in .zip form. If you are using Chrome, you will need to right-click and select &amp;ldquo;Save Link As&amp;hellip;&amp;rdquo;&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2020/2020-05/vcsaCertMac03.png&#34;&gt;&lt;/img&gt;
&lt;br&gt;
&lt;img src = &#34;/images/2020/2020-05/vcsaCertMac04.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Save the download.zip file to the location of your choice and then open the file to extract the contents. You will find the extracted data in a folder named certs with three sub-folders named lin, mac, and win. Next, open up the Keychain Access application to install the newly downloaded certificate. Browse to the win folder and select the first file that ends in .0.crt. Right-click on the file and select &amp;ldquo;Open With&amp;rdquo; and choose Keychain Access.
A pop up will appear with the title &amp;ldquo;Add Certificates.&amp;rdquo; In the bottom right corner will be a drop-down to select which Keychain to add the certificate. You will want to add the certificate to &amp;ldquo;System&amp;rdquo; and click on &amp;ldquo;Add,&amp;rdquo; you will be prompted to either use your fingerprint for Touch ID or enter your password to complete the process.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2020/2020-05/vcsaCertMac05.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;In Keychain Access, go to &amp;ldquo;System&amp;rdquo; on the right-hand side and then look for a certificate named &amp;ldquo;CA&amp;rdquo; with an X on the image to the left of the name. To install either double-click on the certificate or right-click it and select &amp;ldquo;Get Info.&amp;rdquo; It will display that the certificate is not trusted, and you might have to expand &amp;ldquo;Trust,&amp;rdquo; by clicking the carat. Hit the drop-down next to &amp;ldquo;When using this certificate&amp;rdquo; and select &amp;ldquo;Always Trust.&amp;rdquo; You will receive a prompt to use Touch ID or Use Password to make the change. After a few seconds, the icon next to the image should change to a + sign. This change means that the certificate is marked as trusted for all users.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2020/2020-05/vcsaCertMac06.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;If you try and access the VCSA at this point, you will no longer get a message that the site is untrusted. If you click on the lock icon next to the FQDN of your vCenter in the address bar, you will see that that site is now secure.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2020/2020-05/vcsaCertMac07.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
&lt;h3&gt;Subscribe&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://datacenterjourney.com/subscribe&#34;&gt;Subscribe via my newsletter or RSS feed&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Installing PowerShell Core Windows</title>
      <link>https://datacenterjourney.com/2020/installing-powershell-core-windows/</link>
      <pubDate>Thu, 20 Feb 2020 20:12:02 -0800</pubDate>
      
      <guid>https://datacenterjourney.com/2020/installing-powershell-core-windows/</guid>
      <description>&lt;p&gt;I previously wrote an article on how to install PowerShell Core on macOS. I recently needed to install PowerShell Core on a Windows machine and found the process less than ideal compared to macOS. I was able to find a simpler way to install and upgrade PowerShell Core that did not involve me having to open a web browser to download the MSI installer. Below is the command to run in PowerShell and have the MSI downloaded. I have also included the screenshots for the installation.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-powershell&#34;&gt;iex &amp;quot;&amp;amp; { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Once you run the command, the MSI installer is downloaded and starts the installation wizard. You need to click Next to continue.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2020/2020-02/PSCoreWindows1.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;The next screen shows you the location of the default installation directory. You can either choose to leave the default or change the folder path. Then click Next.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2020/2020-02/PSCoreWindows2.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;The next screen allows you to select the optional actions to include with the installation. By default, it selects Add PowerShell to Path Environment Variable and Register Windows Event Logging Manifest. In the screenshot, I also decided to include Enable PowerShell Remoting and Add &amp;lsquo;Open here&amp;rsquo; context menus to Explorer. Then click Next, followed by Install to start the installation process.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2020/2020-02/PSCoreWindows3.png&#34;&gt;&lt;/img&gt;
&lt;img src = &#34;/images/2020/2020-02/PSCoreWindows4.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;It takes a little bit to complete the installation, after which you can select the option to Launch PowerShell Core and then click Finish.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2020/2020-02/PSCoreWindows5.png&#34;&gt;&lt;/img&gt;
&lt;img src = &#34;/images/2020/2020-02/PSCoreWindows6.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Once you do that, you arrive back at the PowerShell window. You can see information about the version of PowerShell Core downloaded along with the link.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2020/2020-02/PSCoreWindows7.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
&lt;h3&gt;Subscribe&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://datacenterjourney.com/subscribe&#34;&gt;Subscribe via my newsletter or RSS feed&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Change MacOS Screenshot Defaults</title>
      <link>https://datacenterjourney.com/2020/change-macos-screenshot-defaults/</link>
      <pubDate>Tue, 18 Feb 2020 13:55:10 -0800</pubDate>
      
      <guid>https://datacenterjourney.com/2020/change-macos-screenshot-defaults/</guid>
      <description>

&lt;p&gt;I&amp;rsquo;ve been taking lots of screenshots lately for blog posts and find myself constantly updating the files and locations. I&amp;rsquo;m not a fan of having to repeatedly rename multiple files or move them into the appropriate folder locations to keep them organized. The process is time-consuming, and since I don&amp;rsquo;t always write the blog post after performing the actions, it can lead to confusion. I did some searching and found that it&amp;rsquo;s straightforward to change the default location and name of screenshot files take with a Mac. Rather than have to look for this information every time I need to do it decided it would be helpful to me and possibly others to write a quick post on the steps.&lt;/p&gt;

&lt;p&gt;Before changing the default location from the Desktop to a location of your choosing, the folder must exist before making the change. Also, be aware that if you delete or move the new screenshots folder, it can cause issues. If you are changing just the default name and not the folder location, then you don&amp;rsquo;t have to worry about folders.&lt;/p&gt;

&lt;h4 id=&#34;changing-the-default-file-name-of-screenshots&#34;&gt;Changing the default file name of screenshots&lt;/h4&gt;

&lt;p&gt;Open Terminal and type the commands listed below. Make sure to replace the text between the quotes &amp;ldquo; &amp;rdquo; with the new default name you want to assign. Once that is completed, you must restart the SystemUIServer process by running the &lt;code&gt;killall&lt;/code&gt; command. Now any new screenshots taken are saved with the new default name prefix instead of &amp;ldquo;Screen Shot.&amp;rdquo;&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;defaults write com.apple.screencapture name &amp;quot;HomeLab&amp;quot;
 killall SystemUIServer
&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id=&#34;changing-the-default-file-location-of-screenshots&#34;&gt;Changing the default file location of screenshots&lt;/h4&gt;

&lt;p&gt;Remember that the directory location must exist before changing the default path as the command does not create it for you. If Terminal is not already open, you need to open it and run the subsequent commands. Make sure to change the directory path after &amp;ldquo;location&amp;rdquo; with the folder you want to set.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;defaults write com.apple.screencapture location ~/Documents/Blog/macOS
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>First Promotion - Computer Operator</title>
      <link>https://datacenterjourney.com/2020/first-promotion-computer-operator/</link>
      <pubDate>Mon, 10 Feb 2020 18:54:20 -0700</pubDate>
      
      <guid>https://datacenterjourney.com/2020/first-promotion-computer-operator/</guid>
      <description>&lt;p&gt;My first official promotion was not everything that I thought it would be. The position was not very technical; in my opinion, most of the work was operational and related to the AS/400 system. During my training, it became very apparent to me that I would not want to stay in the role very long. However, I did realize that being on the day shift would allow me to make new contacts within the organization and showcase my work ethic and ability to learn quickly.&lt;/p&gt;

&lt;p&gt;My schedule was Thursday through Monday since there was one other computer operator who worked Monday through Friday. The duties of the role were to answer AS/400 system messages, swap out backup tapes, and assist the Helpdesk staff with issues. It does not sound like much work to do, and honestly, the reason is that it was not. That has its drawbacks and benefits for someone like me. The disadvantages were that there was not much work to keep me busy, especially during the weekends. The advantages I found, became apparent after weeks on the job, which was time to study and learn skills to advance. The other benefit was being able to talk with and shadow coworkers in different positions during my weekday shift while there was double coverage.&lt;/p&gt;

&lt;p&gt;I was able to meet and establish a relationship with some of the server administrators, network engineers, and desktop technicians. If there is one thing that you take away from this post is how important it is to build relationships and learn from others. This skill and I believe it is a skill, is one that should be continually worked on, improved, and evolved for different situations. Relationship building may come naturally, so some and seem very difficult to others. However, there is no denying the benefits that this can have on you and your career.&lt;/p&gt;

&lt;p&gt;I was able to expand my world and knowledge just by speaking with coworkers and asking plenty of questions. I am incredibly grateful for those people taking the time to sit with me and answer all of the questions I had for them. Not only did it help me to learn more about how to support the applications, but it expanded my view of IT. All of a sudden, I became more aware of other areas of IT, of which I had no previous exposure to and piqued my interest. It was at this time that I became interested in both networking and servers, which aspired to move into an admin role in one of those two areas.&lt;/p&gt;

&lt;p&gt;As much as I wanted to jump into one of the admin roles, I knew that there was still so much that I needed to learn. I picked up a few books that were recommended to me and tried to get up to speed. It didn&amp;rsquo;t take long for me to realize that most of what would be required was not something I was going to pick up quickly. I began to ask different questions, like how people came into the roles that they held, what did they recommend I do, or learn to get to where they are? Many mentioned they had previously been desktop technicians or had been doing server/network for many years prior.&lt;/p&gt;

&lt;p&gt;Armed with this new information, I went to talk to the desktop technician manager about a position with his team. He mentioned that they would be hiring a new technician soon. So, I asked him what I would need to know or have to be considered a potential candidate for a chance to earn the position. He told me that he would be looking for someone that has or could obtain the CompTIA A+ certification, possessed technical knowledge, troubleshooting skills, and was an excellent communicator. Another question I asked was what the job would consist of on a day to day basis. My goal was to know what to prepare during the interview and the role.&lt;/p&gt;

&lt;p&gt;Now that I had an idea of what it might take to get a technician position, it was time to start preparing if my application was accepted and got asked to interview for the job. I purchased a CompTIA A+ certification book to begin reading and plan to take the two exams required to obtain my A+ certification. I read the entire book, took the practice exams, and tried to prepare as much as possible to get the certification. Before I scheduled to take the test, the PC Technician position posted, and I submitted my application. Unlike the Computer Operator position, I would not be the only applicant. There were several external candidates along with two other coworkers who I worked with at the Helpdesk. I found out that my coworkers also knew that it would be helpful if they had an A+ certification, and they might be studying as well. It wouldn&amp;rsquo;t be the first time that I would have to compete for a position with people that I knew.&lt;/p&gt;

&lt;p&gt;I was lucky enough to receive the call to come in for an interview with the PC Technician manager, and it turns out I was well prepared. All the studying that I had done helped me out and made me realize the importance of certifications and studying for them, but that importance wouldn&amp;rsquo;t last long, unfortunately. I was able to answer most of the technical questions during the interview and did not struggle with the situational or personality questions. I informed the manager that I was studying for the A+ exam and was planning on taking it soon.&lt;/p&gt;

&lt;p&gt;It took a little while for a decision to get made. The manager informed me that he selected me as the candidate to fill the position. I was given an offer which, which I accepted without hesitation. That is a topic that I hope to talk about more in future posts — using the lessons that I&amp;rsquo;ve learned as I&amp;rsquo;ve moved up and around. I received instructions to keep the acceptance to myself until they had spoken to all of the other candidates. Management would then send an official announcement out to the IT organization.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Decommission 6.7 Additional External Platform Services Controller(s) (PSC)</title>
      <link>https://datacenterjourney.com/2019/decom-external-psc-6.7/</link>
      <pubDate>Sun, 08 Dec 2019 22:54:33 -0800</pubDate>
      
      <guid>https://datacenterjourney.com/2019/decom-external-psc-6.7/</guid>
      <description>&lt;p&gt;Back when I deployed my vSphere 6.5 environment in my lab, I wanted to be able to set up Enhanced Link Mode (ELM). To do that, you needed to have an external Platform Services Controller (PSC), but that is no longer the case. Starting in an early version of 6.7, you are now able to connect multiple vCenters in ELM without having to deploy an external PSC. Based on the design recommendations back in 6.5, I decided to implement more than one PSC for redundancy. However, now I feel that it&amp;rsquo;s time to remove the extra PSC and converge the remaining external PSC into the VCSA. I will cover that process in an upcoming post for those interested in knowing how to do that.
&lt;br&gt;&lt;br&gt;
The first thing that you need to do is make sure that your VCSA is not pointing to the PSC you are decommissioning. To check what PSC the VCSA is using for Single Sign-On (SSO) or repoint it use the post below.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://datacenterjourney.com/2019/repoint-vcsa-to-different-psc/&#34; title=&#34;Repoint VCSA Post&#34; rel=&#34;nofollow noreferrer&#34; target=&#34;_blank&#34;&gt;Repoint VCSA to a different PSC&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
Once verified that any VCSAs are not using the PSC, you can shut down the PSC and start the decommissioning process. With the PSC shutdown ssh into another PSC in the SSO domain to perform the unregister commands. Launch Bash shell by running the &lt;code&gt;shell&lt;/code&gt; command at the command prompt.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;Command&amp;gt; shell
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-12/decom-psc01.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;I like to take note of the before and after state to make sure everything is successful.  So the first thing to do is run the vdcrepadmin script to show the partners. You need to change directories to the location of the executable.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;cd /usr/lib/vmware-vmdir/bin/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now to run the vdcrepadmin command to show the existing servers and the PSC partners. Replace fqdn_psc with the Fully Qualified Domain Name (FQDN) of your PSC.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;./vdcrepadmin -f showservers -h fqdn_psc -u administrator
./vdcrepadmin -f showpartners -h fqdn_psc -u administrator
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-12/decom-psc02.png&#34;&gt;&lt;/img&gt;&lt;br&gt;
&lt;img src = &#34;/images/2019/2019-12/decom-psc03.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Shutdown the PSC to decommission it, and once it is powered off, you can now start running the commands to unregister it from the domain. Please note that this process is irreversible, and you can not rejoin the PSC to the same domain. If you want to rejoin it to the domain, a reinstall or redeploy of the PSC would need to take place. To unregister the stopped PSC, you will run the &lt;code&gt;cmsso-util unregister&lt;/code&gt; command below. Make sure to replace the fqdn_psc and administrator@domain_name with the appropriate names for your environment. After hitting return/enter, it will prompt for the password of the SSO Administrator.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;cmsso-util unregister --node-pnid fqdn_psc --username administrator@domain_name
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The process takes about two minutes to complete, during which it will unregister the PSC and start/stop services. Once complete, you will receive a message stating &amp;ldquo;Success&amp;rdquo; and return to the command prompt.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-12/decom-psc04.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;To verify the removal of the PSC from the domain once again, run the vdcrepadmin commands. The unregistered PSC is no longer showing as pictured below.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-12/decom-psc05.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Repoint VCSA to Different PSC</title>
      <link>https://datacenterjourney.com/2019/repoint-vcsa-to-different-psc/</link>
      <pubDate>Thu, 05 Dec 2019 21:29:20 -0800</pubDate>
      
      <guid>https://datacenterjourney.com/2019/repoint-vcsa-to-different-psc/</guid>
      <description>&lt;p&gt;To repoint your vCenter Server Appliance (VCSA) to a different Platform Services Controller (PSC), you will need to use the &lt;code&gt;cmsso-util repoint&lt;/code&gt; command. Using this process is for several different scenarios, including freeing up the capacity load, PSC maintenance, decommissioning a PSC, and various others.&lt;/p&gt;

&lt;p&gt;To start, verify what PSC the VCSA is currently pointing to by logging into the VCSA and starting the Bash shell. Then run the command below to check what PSC is currently in use.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;/usr/lib/vmware-vmafd/bin/vmafd-cli get-ls-location --server-name local
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-12/repoint-psc01.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Now that you know what PSC is currently in use, you can repoint the VCSA to a different PSC. To do that, you will run the command below, replacing &lt;em&gt;fqdn_psc&lt;/em&gt; with the Fully Qualified Domain Name (FQDN) of the new PSC.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;cmsso-util repoint --repoint-psc fqdn_psc
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-12/repoint-psc02.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Once the repoint is complete, perform another check to verify the VCSA is pointing to the new PSC.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;/usr/lib/vmware-vmafd/bin/vmafd-cli get-ls-location --server-name localhost
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-12/repoint-psc03.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>vCenter 6.5 VAMI Updates Fail with Environment Not Ready</title>
      <link>https://datacenterjourney.com/2019/vcenter-6.5-vami-updates-fail-with-environment-not-ready/</link>
      <pubDate>Sun, 10 Nov 2019 19:40:33 -0800</pubDate>
      
      <guid>https://datacenterjourney.com/2019/vcenter-6.5-vami-updates-fail-with-environment-not-ready/</guid>
      <description>&lt;p&gt;In a previous post, I mentioned that it had been a while since I had logged into my lab environment, and it was time for some updates. I was running vCenter 6.5u1, and before going to 6.7 wanted to be on the latest release of 6.5. It also allowed me to document the process and share with others who might be inexperienced in how to perform updates from the VCSA (vCenter Server Appliance) VAMI (VMware Appliance Management Interface). Unbeknown to me, the process would fail, and I would also be troubleshooting and documenting the process to resolve the issue as well.&lt;/p&gt;

&lt;p&gt;After logging into the vCenter VAMI and checking the repository for updates, it found the update to bring the VCSA from 6.5u1 to 6.5u3. Selecting to &amp;ldquo;Install All Updates&amp;rdquo; and then clicking &amp;ldquo;Accept&amp;rdquo; on the EULA, the VCSA started installing the update. However, the updates didn&amp;rsquo;t begin and stalled at 0%. A message displayed stating, &amp;ldquo;Environment is not ready to be updated.&amp;rdquo; Clicking on &amp;ldquo;Show Details&amp;rdquo; presented additional information as to why it was not ready to install updates. There was a message that said, &amp;ldquo;Appliance (OS) root password is expired or is going to expire soon. Please change the root password before installing an update.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-11/VCSAfailed05.png&#34;&gt;&lt;/img&gt;
&lt;br&gt;
&lt;img src = &#34;/images/2019/2019-11/VCSAfailed06.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Going to the Administration section and trying to set the root password not to expire gave an error stating, &amp;ldquo;Permission Denied.&amp;rdquo; Attempting to change the root password also failed with the error message &amp;ldquo;Could not set the password.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-11/VCSAfailed08.png&#34;&gt;&lt;/img&gt;
&lt;br&gt;
&lt;img src = &#34;/images/2019/2019-11/VCSAfailed07.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Knowing the current root password makes this an easy issue to resolve, but it requires logging into the appliance via the console or SSH. Once successfully logged in, you will need to type in &lt;code&gt;shell&lt;/code&gt; to launch the BASH interface. To change the password type in &lt;code&gt;passwd&lt;/code&gt; and then type in the new password to use twice. If done correctly, you will receive a message that &amp;ldquo;password updated successfully.&amp;rdquo; If you want to verify the change, you can type in &lt;code&gt;chage -l root&lt;/code&gt;, and it will present the password information in the screenshot below.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-11/VCSAfailed09.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Logging back into the VAMI and trying to &amp;ldquo;Install All Updates&amp;rdquo; again will now proceed with the installation. After about 15-20 minutes, the updates should complete and give you a message stating, &amp;ldquo;Packages upgraded successfully, reboot is required to complete installation.&amp;rdquo; Going to the Summary section, click on &amp;ldquo;Reboot&amp;rdquo; then on &amp;ldquo;OK&amp;rdquo; to proceed with the system reboot. After rebooting, log back in to check for additional updates, and if there are none, the update is complete.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-11/VCSAfailed15.png&#34;&gt;&lt;/img&gt;
&lt;br&gt;
&lt;img src = &#34;/images/2019/2019-11/VCSAfailed18.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>PowerShell Cmdlet Conflicts</title>
      <link>https://datacenterjourney.com/2019/powershell-cmdlet-conflicts/</link>
      <pubDate>Sun, 03 Nov 2019 08:39:26 -0800</pubDate>
      
      <guid>https://datacenterjourney.com/2019/powershell-cmdlet-conflicts/</guid>
      <description>&lt;p&gt;Recently, I had something come up with a client who was migrating from Hyper-V to vSphere. One of the administrators is a big PowerShell user and brought to my attention that the Microsoft Hyper-V and VMware PowerCLI modules share some of the cmdlet names. Duplicate names become an issue when trying to manage particular objects like VMs since both modules have the Get-VM cmdlet. Due to this conflict, he removed the PowerCLI module to continue maintaining the Hyper-V servers. I decided to do some testing and figure out how he would be able to have both modules and manage both environments with PowerShell.&lt;/p&gt;

&lt;p&gt;First, I installed both Modules on my Windows machine to try and replicate the issue my client was having. Then, I verified that both modules were present by running the following command.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-PowerShell&#34;&gt;Get-Module -ListAvailable | Where-Object {($_.Name -match &#39;Hyper-V&#39;) -or ($_.Name -match &#39;VMware.VimAutomation.Core&#39;)}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-11/CmdletConflict1.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Now, he stated that when he runs the command &lt;code&gt;Get-VM&lt;/code&gt; against vSphere, it tries to run the Hyper-V cmdlet. When I run the command &lt;code&gt;Get-Command Get-VM&lt;/code&gt;, I get the following result showing that it will run the cmdlet for the PowerCLI Module. The reason is that the PowerCLI module is the one only one imported when starting PowerShell.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-11/CmdletConflict2.png&#34;&gt;&lt;/img&gt;
&lt;img src = &#34;/images/2019/2019-11/CmdletConflict3.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Once I import the Hyper-V module and rerun the command to above now, it shows that it will run the Hyper-V cmdlet.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-Powershell&#34;&gt;Import-Module -Name Hyper-V
Get-Command Get-VM
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-11/CmdletConflict4.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;However, when I run the command &lt;code&gt;Get-Command Get-VM -All&lt;/code&gt; now, it shows that I have two cmdlets with the same name for different modules. The reason that it will run the Hyper-V cmdlet let when both modules are present is because it searches in alphabetical order. This has to be the reason my client was having the issue with the &lt;code&gt;Get-VM&lt;/code&gt; command running the Hyper-V cmdlet instead of the PowerCLI one he was trying to run.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-11/CmdletConflict5.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;There are two solutions I&amp;rsquo;m going to demonstrate work regardless of which cmdlet takes precedence. The first way is to include the module name as a path before the cmdlet. This method can become quite cumbersome to type every time, especially if you want to run the PowerCLI cmdlets.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-PowerShell&#34;&gt;Hyper-V\Get-VM
VMware.VimAutomation.Core\Get-VM
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The second solution is to include a custom prefix when importing the modules with the commands below in a new PowerShell session. Then you can verify that they were imported successfully by running the last command to show them.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-PowerShell&#34;&gt;Import-Module -Name VMware.VimAutomation.Core -Prefix VMW
Import-Module -Name Hyper-V -Prefix MS
Get-Command Get-*VM
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-11/CmdletConflict6.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;I did notice something interesting when importing the modules with the custom prefixes in my new session when running the &lt;code&gt;Get-Command Get-VM&lt;/code&gt; and &lt;code&gt;Get-Command Get-VM -All&lt;/code&gt;. It shows once again only the cmdlets for PowerCLI.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-11/CmdletConflict7.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;I hope this is useful to others that might encounter an issue with two different modules with conflicting cmdlet names. This issue brings up an important consideration when creating your custom modules, to make sure you use unique cmdlet names. Leave me a comment if you found this helpful.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Send F11 Key on macOS</title>
      <link>https://datacenterjourney.com/2019/send_f11_on_macos/</link>
      <pubDate>Tue, 22 Oct 2019 19:51:06 -0700</pubDate>
      
      <guid>https://datacenterjourney.com/2019/send_f11_on_macos/</guid>
      <description>&lt;p&gt;I enjoy using a Mac both for work and at home. There is an issue that I have come upon more than one occasion, and it always takes me a while to remember how to fix it. Figured I could post it here so that I have it as a reference and maybe help someone else as well.&lt;/p&gt;

&lt;p&gt;There are times when accessing the console for both ESXi and UCS KVM, where you are required to send the F11 key. There are a few different key combinations that you can use to accomplish this, depending on your keyboard or macOS version. The first way is to use FN-CMD-F11, the other is just FN-F11. If you use those key combinations and it still doesn&amp;rsquo;t seem to work, you will need to go to System Preferences &amp;gt; Keyboard &amp;gt; Shortcuts and uncheck the box next to &amp;ldquo;Show Desktop&amp;rdquo; for F11.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Standalone ESXi Upgrade 6.5 to 6.7u3</title>
      <link>https://datacenterjourney.com/2019/standalone_esxi_upgrade_6.5_to_6.7u3/</link>
      <pubDate>Thu, 03 Oct 2019 21:33:40 -0700</pubDate>
      
      <guid>https://datacenterjourney.com/2019/standalone_esxi_upgrade_6.5_to_6.7u3/</guid>
      <description>

&lt;p&gt;After logging in to my ESXi host after some time away, I realized that it was still running vSphere 6.5u1. It was time to do an upgrade, and as stated in my last post, I&amp;rsquo;m running a nested lab environment from a single physical host. I am unable to leverage VUM (vCenter Upgrade Manager) to do the upgrades since my vCenter and everything else lives on the one host I need to upgrade. I&amp;rsquo;ll be walking you through the process to perform the update so that you can complete it and subsequent updates.&lt;/p&gt;

&lt;h3 id=&#34;pre-planning&#34;&gt;Pre-planning&lt;/h3&gt;

&lt;p&gt;To have a successful upgrade in any situation, one of the most important steps, in my opinion, is doing the pre-planning and research. Before even starting to do any of the real work, you need to make sure you have everything you need, and you have thought through the entire process. First, I check to make sure that the upgrade path that I&amp;rsquo;m taking between versions is possible to jump straight to. If not, is there a version I need to go to in-between. Next, it&amp;rsquo;s time to check the release notes of the version I&amp;rsquo;m upgrading to and see what some of the known issues are and if I will be affected by them. If there are no show stoppers at this point, I move forward and get the Image Profile Name of the update. Finally, I log into my account on my.vmware.com to download the &lt;strong&gt;VMware vSphere Hypervisor (ESXi) Offline Bundle&lt;/strong&gt;, which should be a .zip file.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-10/ImageProfileName1.png&#34;&gt;&lt;/img&gt;
&lt;img src = &#34;/images/2019/2019-10/OfflineBundle1.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;h3 id=&#34;preparing-the-host&#34;&gt;Preparing the host&lt;/h3&gt;

&lt;p&gt;Before beginning the upgrade, you need to shut down and running Virtual Machines that are on the host and take a back up of any critical VMs. Now we will enable a local datastore to use for Swap to avoid any potential errors during the upgrade process. Logging into the UI and on the left-hand side in the Navigator, go to Manage and then under the System tab click on Swap, then Edit settings. Click the drop-down and select a local datastore to use.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-10/DsSwapConfig1.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Now, you will use that same datastore to upload the Offline Bundle to that you downloaded earlier. Using the UI Navigator again, you will go to Storage, and then under the Datastores tab, click on the local datastore that you selected to apply as Swap. Click on the Datastore browser, then Upload, and browse to the location of the Offline Bundle.  You will choose the file and copy it to the datastore for use with the upgrade later. You can now close the Datastore browser.&lt;/p&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-10/EsxiFileUpload1.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Next, put the host into Maintenance Mode. You can perform this in any number of ways, using the GUI, PowerCLI, or ESXCLI. For this example, we will use the ESXCLI commands since we will be using that medium for the upgrade, as well. Either from the console or via SSH log into your ESXi host and then run the following command to enable it.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;esxcli system maintenanceMode set -e True
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I always find it good practice to reboot the host before performing any upgrades to make sure I have a clean memory state. You can do that with the following command replacing the information inside the &amp;lt;&amp;gt;. The number after the -d is the delay in seconds before rebooting. The text after the -r is the reason for the reboot.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;esxcli system shutdown reboot -d &amp;lt;15&amp;gt; -r &amp;lt;Clear memory before upgrading to 6.7u3&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;upgrading-the-host&#34;&gt;Upgrading the host&lt;/h3&gt;

&lt;p&gt;Once the host is back up and accessible, you will log back in from the console or via SSH. Then, I like to list out the contents of the datastore where I copied the Offline Bundle to and make sure I see it. Use the &amp;lsquo;ls&amp;rsquo; command followed by the datastore path to list the contents of the directory. Make sure to replace the name within the &amp;lt;&amp;gt; with the name of your datastore.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;ls /vmfs/volumes/&amp;lt;SATA_1TB_Disk2&amp;gt;/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-10/DsFileList1.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;Now you will start the upgrade of the ESXi host using the following command again, replacing the profile, datastore, and file names within the &amp;lt;&amp;gt;. Once it completes, you will get a message with the result of running the command. If updated successfully, you would get a notification that a reboot is required for the update to take effect, followed by the VIBs installed.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;esxcli software profile update -p &amp;lt;ESXi-6.7.0-20190802001-standard&amp;gt; -d /vmfs/volumes/&amp;lt;SATA_1TB_Disk2&amp;gt;/&amp;lt;update-from-esxi6.7-6.7_update03.zip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src = &#34;/images/2019/2019-10/EsxiOfflineUpgrade1.png&#34;&gt;&lt;/img&gt;&lt;/p&gt;

&lt;p&gt;To complete the upgrade, reboot the ESXi host once again using ESXCLI commands.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;esxcli system shutdown reboot -d &amp;lt;15&amp;gt; -r &amp;lt;Complete upgrade to 6.7u3&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can now log in to verify that you are indeed on the new version and take your host out of maintenance mode.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;esxcli system maintenanceMode set -e False
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;final-thoughts&#34;&gt;Final Thoughts&lt;/h3&gt;

&lt;p&gt;I hope this was informative and helpful to anyone new to upgrading a standalone ESXi host manually or if you need a refresher. Please comment below if you found this post useful or would like to see something specific in a future post.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>My Home Lab</title>
      <link>https://datacenterjourney.com/2019/my-home-lab/</link>
      <pubDate>Tue, 01 Oct 2019 21:27:30 -0700</pubDate>
      
      <guid>https://datacenterjourney.com/2019/my-home-lab/</guid>
      <description>

&lt;p&gt;It&amp;rsquo;s been a while since I had done much with my home lab and decided it was time to give it some much-needed attention. The last update it received was around the time that ESXi 6.5u1 was released. For those of you interested, I am currently running a Supermicro SYS-5028D-TN4T mini-tower running an Intel 8-core Xeon D-1540 processor with 128GB of memory. For network connectivity, it comes with 2x 10GbE and 2x 1GbE ports, and for storage, 4x 3.5in hot-swappable drive days and 2x 2.5in fixed internal drive bays. I purchased this back in September 2015 for around $3300 as a birthday gift to myself, and it has been running rock solid for the last four years. I say it was a gift, but it was more like an investment in myself that has more than paid for itself in the knowledge dividends it has provided me.&lt;/p&gt;

&lt;p&gt;The original reason for the purchase was that during that time, I was working for a VAR (Value Added Reseller) and they didn&amp;rsquo;t have a lab environment to play in. As part of my offer letter, there was an incentive that would increase my base salary a specified amount for specific certifications obtained. Not only would I be able to earn that money back, but I would also be able to learn the necessary skills required to pass these exams. It didn&amp;rsquo;t take long for me to do the math and realize that the one-time hardware purchase would net me more in annual salary for that year alone. Thinking back on how much my lab has helped me over the years in gaining knowledge and progressing my career. I&amp;rsquo;m starting to think it might be time to make some additional investments to expand my home lab.&lt;/p&gt;

&lt;p&gt;I initially bought this server to help me study for the VCAP-DCV (VMware Certified Advanced Professional-Data Center Virtualization) Deploy exam. I maxed it out on memory to allow me to build a nested environment and not have to purchase multiple physical servers. It allowed me to spin up multiple virtual ESXi instances to practice the skills needed to pass the exam. After that, it became a place for me to quickly spin up and test new versions of software and scripts in a lab environment. I gained the necessary initial hands-on experience of a variety of products before deploying into my work environments. That experience permitted me to not only pass several certification exams but also move on to new positions and gain even more exposure to new products/technologies. I wouldn&amp;rsquo;t have been able to obtain all of that experience as quickly as I did without a lab environment. It enabled me to try new things and break even more stuff in the process. I probably learned more while trying to fix something I broke in the process of making &amp;ldquo;improvements&amp;rdquo; to my lab.&lt;/p&gt;

&lt;p&gt;Since the initial build of my lab, there haven&amp;rsquo;t been any notable equipment changes from a compute perspective. The significant changes to my lab have come in the form of network changes with some still in progress. I was fortunate enough that my employer had an old small business Cisco router and 2950 Catalyst switch that wasn&amp;rsquo;t being used to get started. I had my buddy Chance come over, and we did a whole whiteboard session on how we were going to design the network with VLANs, subnets, etc. Then he configured all the network gear for me, and it was then up to me to start setting up the servers to support the new environment and align with the network design. When I left that employer and had to give back the router and switch, then it was time to look for replacements. I was lucky enough to have a new coworker that was getting rid of a Juniper SRX210 and allowed me to have it as a replacement for the old Cisco gear.&lt;/p&gt;

&lt;p&gt;Fast forward a few months, and the Juniper wasn&amp;rsquo;t filling all the needs/wants that I had for my environment. I also didn&amp;rsquo;t have the time to learn how to configure and manage the Juniper to make changes, so I started to look for alternatives. I wanted something that would be easy to operate, remote VPN access, have 1Gb managed ports, oh and by the way, also be cost-effective. I wasn&amp;rsquo;t asking for much, was I? It turns out that I wasn&amp;rsquo;t because I came across some products by Ubiquiti. They had what I was looking for, and I eventually ended up purchasing the following items.&lt;/p&gt;

&lt;p&gt;For my routing and VPN needs, I bought the UniFi Security Gateway. It has a built-in Firewall, support of multiple VLANs, VPN and a Radius Server. For the 1Gb managed switch I decided to start with the UniFi Switch 8-60W which has eight GbE (GigabitEthernet) RJ45 ports, four of which are PoE (Power over Ethernet) ports. I also decided that I might as well get a new wireless AP (Access Point) that ties in with the rest of the setup. I got the UniFi AP AC LR, which is an 802.11ac Long Range AP with 2.4 &amp;amp; 5Ghz bands capable of 450 &amp;amp; 867 Mbps, respectively. The software for these products all integrated, and the interface was a breeze to manage. I had everything wired up and serving data in no time. It was so easy that I even spun up a separate network just for all of my home and family&amp;rsquo;s devices with only internet access. That allowed me to keep my lab separated and secure from any other device in my house that only required access to the internet.&lt;/p&gt;

&lt;p&gt;I am a firm believer in having a lab environment to test out new products. A lab doesn&amp;rsquo;t have to be at home; you can set one up at work; it can be in the cloud, or even on your workstation. You don&amp;rsquo;t have to buy a single expensive machine like I did to get started, and there are plenty of cheaper alternatives. Most of them will still give you a lot of flexibility and room to grow. Some employers might give you the luxury of setting one up at work with any spare or decommissioned equipment. There are also plenty of other creative ways to get a lab built. However, you have to be willing to put in the time and effort to get it setup. That is what is going to set you apart from other people is your willingness to perform extra steps that others might not be willing to complete.&lt;/p&gt;

&lt;p&gt;As I have noted, part of my lab has evolved, and I have no plans to call it complete at this time. I made some changes a while back and broke my VPN and will need to spend some time getting that functional again for remote access. I am finishing up another post about the process I just went through of upgrading my standalone ESXi host from 6.5u1 to 6.7u3 using the offline update and ESXCLI commands. Then it&amp;rsquo;s on to upgrading the rest of the components vCenter, vRealize Orchestrator, Log Insight, UCS Emulator, and the list goes on.&lt;/p&gt;

&lt;p&gt;That&amp;rsquo;s just the beginning since I plan on learning more about the vRealize Suite, which is a hybrid cloud management platform. The plan is to install, configure, and document that process and use it to prepare for the VCP-CMA (VMware Certified Professional-Cloud Management and Automation) exam. Automation is everywhere, and my lab will be the focal point for me to learn more about it and be able to help others in the process. I&amp;rsquo;ll keep everyone posted on the changes and expansion to the lab as they happen. If only I had a budget as big as my ambitions and desire to learn until then I&amp;rsquo;ll have to find a way to make do.&lt;/p&gt;

&lt;h3 id=&#34;homelab-links&#34;&gt;Homelab Links&lt;/h3&gt;

&lt;p&gt;Supermicro 5028D-TN4T Mini Tower - &lt;a href=&#34;https://www.wiredzone.com/supermicro-servers-compact-embedded-processor-sys-5028d-tn4t-10024470&#34; rel=&#34;nofollow noreferrer&#34; target=&#34;_blank&#34;&gt;https://www.wiredzone.com/supermicro-servers-compact-embedded-processor-sys-5028d-tn4t-10024470&lt;/a&gt;
&lt;br&gt;
UniFi Security Gateway - &lt;a href=&#34;https://www.ui.com/unifi-routing/usg/&#34; rel=&#34;nofollow noreferrer&#34; target=&#34;_blank&#34;&gt;https://www.ui.com/unifi-routing/usg/&lt;/a&gt;
&lt;br&gt;
UniFi Switch 8-60W - &lt;a href=&#34;https://www.ui.com/unifi-switching/unifi-switch-8/&#34; rel=&#34;nofollow noreferrer&#34; target=&#34;_blank&#34;&gt;https://www.ui.com/unifi-switching/unifi-switch-8/&lt;/a&gt;
&lt;br&gt;
UniFi AP AC LR - &lt;a href=&#34;https://www.ui.com/unifi/unifi-ap-ac-lr/&#34; rel=&#34;nofollow noreferrer&#34; target=&#34;_blank&#34;&gt;https://www.ui.com/unifi/unifi-ap-ac-lr/&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Change UCS Fabric Interconnect IPs</title>
      <link>https://datacenterjourney.com/2019/change-ucs-fi-ips/</link>
      <pubDate>Tue, 24 Sep 2019 20:01:03 -0700</pubDate>
      
      <guid>https://datacenterjourney.com/2019/change-ucs-fi-ips/</guid>
      <description>

&lt;p&gt;It doesn&amp;rsquo;t often happen that you need to change the Management IP Addresses on Cisco UCS Fabric Interconnects once they are configured and placed into production. If you do have to change them for whatever reason, as I have had to in the past, I thought it would be good to post the process and commands here for reference. Make sure you replace any information located within the &amp;lt; &amp;gt; to the IP information of your Fabric Interconnects. This can all be done non-disruptively to your environment since this will only affect the IPs for management of the Fabric Interconnets and the management IPs of any configured servers.&lt;/p&gt;

&lt;h4 id=&#34;to-change-ip-for-fabric-interconnects-login-to-either-one-via-console&#34;&gt;To change IP for fabric interconnects, login to either one via console:&lt;/h4&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;scope fabric-interconnect a
set out-of-band ip &amp;lt;management IP of FI A&amp;gt; netmask &amp;lt;subnet mask&amp;gt; gw &amp;lt;default gateway&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id=&#34;repeat-for-the-second-fabric-interconnect&#34;&gt;Repeat for the second fabric interconnect.&lt;/h4&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;scope fabric-interconnect b
set out-of-band ip &amp;lt;management IP of FI B&amp;gt; netmask &amp;lt;subnet mask&amp;gt; gw &amp;lt;default gateway&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id=&#34;to-change-the-virtual-ip-used-for-system-management-this-should-be-in-the-same-vlan-as-the-individual-fabric-interconnect-ips&#34;&gt;To change the Virtual IP used for system management, this should be in the same VLAN as the individual fabric interconnect IPs:&lt;/h4&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;scope system
set virtual-ip &amp;lt;management IP of cluster&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id=&#34;finally-check-to-see-that-there-are-no-errors-then-actually-commit-if-everything-checks-out&#34;&gt;Finally check to see that there are no errors, then actually commit if everything checks out:&lt;/h4&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;commit-buffer verify-only
commit-buffer
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
&lt;strong&gt;Attention:&lt;/strong&gt;
Something to be aware of if you happen to change the management IPs to a different subnet, you must recreate any &amp;ldquo;mgmt-IP&amp;rdquo; pools. The new pools are required because the mgmt-IP pools must reside on the same subnet as the management IPs of the Fabric Interconnects. You accomplish this by deleting the existing ones and creating new ones with the new management IP ranges.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Project Pacific Announcement</title>
      <link>https://datacenterjourney.com/2019/project-pacific-announcement/</link>
      <pubDate>Thu, 05 Sep 2019 21:10:43 -0700</pubDate>
      
      <guid>https://datacenterjourney.com/2019/project-pacific-announcement/</guid>
      <description>&lt;p&gt;For those of you that haven&amp;rsquo;t heard VMware made a few big announcements during this year&amp;rsquo;s VMworld US. One of the more interesting to me was the announcement of Project Pacific. In my opinion, this has to be one of the more critical and landscape changing for system administrators and developers. Think of it as the next evolution of vSphere and a step ladder for organizations to be able to implement an application platform.&lt;/p&gt;

&lt;p&gt;So what exactly is Project Pacific? It&amp;rsquo;s a re-architecture of vSphere to integrate and embed native Kubernetes into the ESXi hypervisor. What this does is aligns the management of the infrastructure to that of the modern application builds. Many of the new applications are built using containers and leveraging Kubernetes to be able to manage the orchestration of those containers. However, many of those containers still need to communicate with traditional stateful application workloads like databases. Those stateful applications are mostly running in virtual machines.&lt;/p&gt;

&lt;p&gt;Many admins are familiar with leveraging many of the vSphere features like vMotion, snapshots, security, policies, encryption, and setting resource limits and reservations for VMs. Now imagine the ability to utilize many of those same features for containers using Kubernetes Namespaces. Now to take it even a step further what if you could manage both of those environments and polices from the same management platform. That is what precisely what Project Pacific aims to accomplish. Unifying and simplifying management of the modern application is transformative and allows organizations to manage their infrastructure in a way that was not previously possible.&lt;/p&gt;

&lt;p&gt;To learn more, I recommend checking out link below to VMware&amp;rsquo;s blog entry Introducing Project Pacific and the additional links provided on that page.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://blogs.vmware.com/vsphere/2019/08/introducing-project-pacific.html&#34; rel=&#34;nofollow noreferrer&#34; target=&#34;_blank&#34;&gt;Introducing Project Pacific&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
