<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jason Ruiz</title>
	<atom:link href="http://blog.jasonruiz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jasonruiz.com</link>
	<description>Virtualization, Technology, and Stuff!</description>
	<lastBuildDate>Wed, 08 Feb 2012 14:00:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Powershell: Windows Updates for Hyper-V/SCVMM Cluster</title>
		<link>http://blog.jasonruiz.com/2012/02/08/powershell-windows-updates-for-hyper-vscvmm-cluster/</link>
		<comments>http://blog.jasonruiz.com/2012/02/08/powershell-windows-updates-for-hyper-vscvmm-cluster/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 14:00:27 +0000</pubDate>
		<dc:creator>Jason Ruiz</dc:creator>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://blog.jasonruiz.com/?p=1160</guid>
		<description><![CDATA[I let this sit for awhile before deciding to finish it, from what I can see it works perfect for our environment. &#160; function Get-Updates ($VMHost) { $VMMServer = Get-VMMServer &#34;SCVMM IP Adress&#34; $SCOMServer = &#34;SCOM Server FQDN&#34; New-PSDrive -Name:Monitoring -PSProvider:OperationsManagerMonitoring -Root:\ &#124; Out-Null New-ManagementGroupConnection -ConnectionString:$SCOMServer &#124; Out-Null Set-Location &#34;Monitoring:\$SCOMServer&#34; function StartMaintenance { $SCOMAgent = [...]]]></description>
			<content:encoded><![CDATA[<p>I let this sit for awhile before deciding to finish it, from what I can see it works perfect for our environment.</p>
<p>&nbsp;</p>
<pre class="brush: powershell; gutter: true">function Get-Updates ($VMHost)  {
$VMMServer = Get-VMMServer &quot;SCVMM IP Adress&quot;

$SCOMServer = &quot;SCOM Server FQDN&quot;

                New-PSDrive -Name:Monitoring -PSProvider:OperationsManagerMonitoring -Root:\ | Out-Null
                New-ManagementGroupConnection -ConnectionString:$SCOMServer | Out-Null
                Set-Location &quot;Monitoring:\$SCOMServer&quot;

function StartMaintenance       {
$SCOMAgent = Get-Agent | Where-object {$_.Name –match “$VMHost”}
                Write-Host &quot;Setting $VMHost to unavailable for placement&quot;
                Set-VMHost -VMHost $VMHost -AvailableForPlacement $FALSE | Out-Null
                Write-Host &quot;Placing host $VMHost into maintenance mode.&quot;
                $SCOMAgent.HostComputer | New-MaintenanceWindow -StartTime (Get-Date) -EndTime ([DateTime]::Now).AddMinutes(180) -Comment &quot;Windows Updates&quot;
                Disable-VMHost $VMHost -MoveWithinCluster | Out-Null
$Maintenance = Get-VMHost -VMMServer $VMMServer $VMHost | Select OverallState
                if ($Maintenance -match &quot;MaintenanceMode&quot;)      {
                Write-Host &quot;Host is in Maintenance Mode&quot;
                }
                Else {
                        Write-Host &quot;Host did not successfully go into Maintenance Mode, retrying&quot;
                        StartMaintenance
                }
                }

function EndMaintenance {
$SCOMAgent = Get-Agent | Where-object {$_.Name –match “$VMHost”}
                Write-Host &quot;Placing host $VMHost back into service.&quot;
                Enable-VMHost $VMHost | Out-Null
                Set-VMHost -VMHost $VMHost -AvailableForPlacement $TRUE | Out-Null
                $SCOMAgent.HostComputer | Set-MaintenanceWindow -EndTime ([DateTime]::Now).AddMinutes(1) -Comment &quot;Finished Windows Updates&quot;
                                                }          

function CheckForReboot {
$baseKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(&quot;LocalMachine&quot;,$VMhost)
$key = $baseKey.OpenSubKey(&quot;Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\&quot;)
$subkeys = $key.GetSubKeyNames()
$key.Close()
$baseKey.Close()
                If ($subkeys | Where {$_ -eq &quot;RebootPending&quot;})  {
                Write-Host &quot;Reboot is required: Restarting $VMHost&quot;
                Restart-Computer -ComputerName $VMHost -Force
                sleep 180
                                                                                                                }
                Else    {
                Write-Host &quot;No Reboot required.&quot;
                                }
                        }

function MigrateOfflineVMs  {
$OfflineVMs = Get-VM -VMMServer $VMMServer -VMHost $VMHost | Select Status
$Hosts = Get-VMHost -VMHostGroup &quot;FlexCloud&quot;
                if ($OfflineVMs -match &quot;PowerOff&quot;)      {
                Write-Host &quot;There are offline VMs, migrating to another host&quot;
                        $VMs = Get-VM -VMHost $VMHost | Where-Object {$_.Status -eq &quot;PowerOff&quot;}
                        ForEach ($VM in $VMs)   {
                        $HostRatings = Get-VMHostRating –VMHost $Hosts –VM $VM -IsMigration | Sort-Object –descending Rating
                        if ($HostRatings[0].Rating –ne 0)       {
                        $BestHost = Get-VMHost –ComputerName $HostRatings[0].Name
                write-host “Moving $VM to $BestHost”
                Move-VM –VM $VM –VMHost $BestHost | Out-Null
                                                                                                }
                                                                        }
                                                                                        }
                Else    {
                Write-Host &quot;There are no VMs on this server currently.&quot;
                                }
                        } 

function CheckHostStatus        {
$HostState = Get-VMHost $VMHost
                if (($HostState.ComputerState -match &quot;Responding&quot;) -and ($HostState.ClusterNodeStatus -match &quot;Running&quot;) -and ($HostState.VirtualServerState -match &quot;Running&quot;) -and ($HostState.VirtualServerStateString -match &quot;Running&quot;) -and ($HostState.CommunicationStateString -match &quot;Responding&quot;) -and ($HostState.CommunicationState -match &quot;Responding&quot;)) {
                Write-Host &quot;Host is responding&quot;
                                                                                }
                Else    {
                Write-Host &quot;Host is not operational!!!&quot;
                sleep 120
                CheckHostStatus
                                }
                                }

function CheckWUInstall {
$WUInstallStatus = Get-Content &quot;C:\Users\USERNAME\Desktop\Scripts\Logs\$VMHost.log&quot; | Select-Object -Last 1
If ($WUInstallStatus -match &quot;No Updates are available, nothing to do!&quot;) {Write-Host &quot;No Updates are available, nothing to do!&quot;}
else {InstallUpdates}
} 

function InstallUpdates {
                psexec \\$VMHost -s -c \\SHARESERVER\SHARE\wuinstall.exe /install /accepteula &gt; &quot;C:\Users\USERNAME\Desktop\Scripts\Logs\$VMHost.log&quot;
                CheckForReboot
                CheckHostStatus
                CheckWUInstall
                        }    

                StartMaintenance
                MigrateOfflineVMs
                InstallUpdates
                CheckHostStatus
                EndMaintenance
                C:
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.jasonruiz.com/2012/02/08/powershell-windows-updates-for-hyper-vscvmm-cluster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Powershell: Get List of Storage Hogging VMs by Volume</title>
		<link>http://blog.jasonruiz.com/2011/12/16/scvmm-get-list-of-storage-hogging-vms-by-volume/</link>
		<comments>http://blog.jasonruiz.com/2011/12/16/scvmm-get-list-of-storage-hogging-vms-by-volume/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 14:29:15 +0000</pubDate>
		<dc:creator>Jason Ruiz</dc:creator>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://blog.jasonruiz.com/?p=1154</guid>
		<description><![CDATA[Lately a couple of our Cluster Shared Volumes have been hitting a high percentage of usage, to alleviate any issues, I wanted a simple way to find out which VMs had the largest disk usage on those volumes. I chose to query volumes that were over 70% usage and the top 5 storage hogging VMs from those. [...]]]></description>
			<content:encoded><![CDATA[<p>Lately a couple of our Cluster Shared Volumes have been hitting a high percentage of usage, to alleviate any issues, I wanted a simple way to find out which VMs had the largest disk usage on those volumes. I chose to query volumes that were over 70% usage and the top 5 storage hogging VMs from those.</p>
<p>Credit goes to this <a href="http://blogs.msdn.com/b/clustering/archive/2010/06/19/10027366.aspx" target="_blank">post</a> as getting a proper output of the paths and percentage is a real pain with the Failover Clustering CMDLets.</p>
<pre class="brush: powershell; gutter: true">function Get-LargestVMs {
function Get-LargeVMs ($Path) {
   $Size = get-vm -vmmserver &quot;IP&quot; | Where-Object {$_.vmcpath -like &quot;*$Path*&quot;} | Select Name,TotalSize,Hostname | Sort-Object TotalSize -Descending | Select-Object -First 5 | Out-String
   Write-Host $Size
}

$objs = @()

$csvs = Get-ClusterSharedVolume -Cluster &quot;Cluster&quot;
foreach ( $csv in $csvs )
{
   $csvinfos = $csv | select -Property Name -ExpandProperty SharedVolumeInfo
   foreach ( $csvinfo in $csvinfos )
   {
      $obj = New-Object PSObject -Property @{
         Path        = $csvinfo.FriendlyVolumeName
         PercentFree = $csvinfo.Partition.PercentFree
      }
      $objs += $obj
   }
}

$objs | foreach {
if ($_.PercentFree -ge &quot;70&quot;)  {
   Write-Host &quot;################################################&quot;
   Write-Host $_.Path
   Write-Host &quot;Current percent free is&quot;$_.PercentFree
   Write-Host &quot;################################################&quot;
   Get-LargeVMs $_.Path
}
else {
}
}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.jasonruiz.com/2011/12/16/scvmm-get-list-of-storage-hogging-vms-by-volume/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Powershell: SCVMM Host Status Snippet</title>
		<link>http://blog.jasonruiz.com/2011/12/01/poweshell-scvmm-host-status-snippet/</link>
		<comments>http://blog.jasonruiz.com/2011/12/01/poweshell-scvmm-host-status-snippet/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 14:28:22 +0000</pubDate>
		<dc:creator>Jason Ruiz</dc:creator>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://blog.jasonruiz.com/?p=1147</guid>
		<description><![CDATA[I changed this around in my last script to verify the operational status of a host via SCVMM instead of the Hyper-V server itself. function CheckHostStatus { $HostState = Get-VMHost $VMHost if (($HostState.ComputerState -match &#34;Responding&#34;) -and ($HostState.ClusterNodeStatus -match &#34;Running&#34;) -and ($HostState.VirtualServerState -match &#34;Running&#34;) -and ($HostState.VirtualServerStateString -match &#34;Running&#34;) -and ($HostState.CommunicationStateString -match &#34;Responding&#34;) -and ($HostState.CommunicationState -match &#34;Responding&#34;)) [...]]]></description>
			<content:encoded><![CDATA[<p>I changed this around in my last script to verify the operational status of a host via SCVMM instead of the Hyper-V server itself.</p>
<pre class="brush: powershell; gutter: true">function CheckHostStatus	{
$HostState = Get-VMHost $VMHost
		if (($HostState.ComputerState -match &quot;Responding&quot;) -and ($HostState.ClusterNodeStatus -match &quot;Running&quot;) -and ($HostState.VirtualServerState -match &quot;Running&quot;) -and ($HostState.VirtualServerStateString -match &quot;Running&quot;) -and ($HostState.CommunicationStateString -match &quot;Responding&quot;) -and ($HostState.CommunicationState -match &quot;Responding&quot;)) {
		Write-Host &quot;Host is operational&quot;
										}
		Else    {
		Write-Host &quot;Host is not fully operational&quot;
		sleep 120
		CheckHostStatus
				}
							}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.jasonruiz.com/2011/12/01/poweshell-scvmm-host-status-snippet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Powershell: Windows Updates for single Hyper-V Server</title>
		<link>http://blog.jasonruiz.com/2011/10/10/hyper-v-scripting-updates-part-1/</link>
		<comments>http://blog.jasonruiz.com/2011/10/10/hyper-v-scripting-updates-part-1/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 16:55:36 +0000</pubDate>
		<dc:creator>Jason Ruiz</dc:creator>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://blog.jasonruiz.com/?p=1125</guid>
		<description><![CDATA[I&#8217;m now in charge of roughly 30 Hyper-V servers, half in an HA cluster, and the rest are standalone. Rather than doing updating each server manually I decided to take it upon myself to automate it via PowerShell. In my environment, we use SCVMM and SCOM, so doing this is rather easy, we also have [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m now in charge of roughly 30 Hyper-V servers, half in an HA cluster, and the rest are standalone. Rather than doing updating each server manually I decided to take it upon myself to automate it via PowerShell. In my environment, we use SCVMM and SCOM, so doing this is rather easy, we also have WSUS for filtering updates as we have run into a few issues before.</p>
<p>There are 2 pieces of software used in this as a workaround for a known issue with remotely calling the Microsoft Update Session API, <a href="http://wuinstall.com/" target="_blank">WUInstall</a> and <a href="http://technet.microsoft.com/en-us/sysinternals/bb897553" target="_blank">PSexec</a>.</p>
<p>Here is the code below:</p>
<p>&nbsp;</p>
<pre class="brush: powershell; gutter: true">Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager

Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client

$VMMServer = Get-VMMServer &quot;SCVMM IP Adress&quot;    #&lt;- Had issues with authentication while using the FQDN

$SCOMServer = &quot;SCOM Server FQDN&quot;

$VMHosts = Get-VMHost -VMMServer $VMMServer | Where-Object {$_.name -ge &quot;Hostname&quot;}

                New-PSDrive -Name:Monitoring -PSProvider:OperationsManagerMonitoring -Root:\ | Out-Null
                New-ManagementGroupConnection -ConnectionString:$SCOMServer | Out-Null
                Set-Location &quot;Monitoring:\$SCOMServer&quot;

function StartMaintenance       {
$SCOMAgent = Get-Agent | Where-object {$_.Name –match “$VMHost”}
                Write-Host &quot;Placing host $VMHost into maintenance mode.&quot;
                $SCOMAgent.HostComputer | New-MaintenanceWindow -StartTime (Get-Date) -EndTime ([DateTime]::Now).AddMinutes(60) -Comment &quot;Running Windows Updates&quot;
                Disable-VMHost $VMHost | Out-Null
                                                        }

function EndMaintenance {
$SCOMAgent = Get-Agent | Where-object {$_.Name –match “$VMHost”}
                Write-Host &quot;Placing host $VMHost back into service.&quot;
                Enable-VMHost $VMHost | Out-Null
                $SCOMAgent.HostComputer | Set-MaintenanceWindow -EndTime ([DateTime]::Now).AddSeconds(5) -Comment &quot;Finished Windows Updates&quot;
                                                }

function InstallUpdates {
                psexec \\$VMHost -s -c \\shareserver\share\wuinstall.exe /install /accepteula &gt; &quot;C:\Users\logon\Desktop\Scripts\Logs\$VMHost.log&quot;
                        }

function CheckForReboot {
$baseKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(&quot;LocalMachine&quot;,$VMhost)
$key = $baseKey.OpenSubKey(&quot;Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\&quot;)
$subkeys = $key.GetSubKeyNames()
$key.Close()
$baseKey.Close()
                If ($subkeys | Where {$_ -eq &quot;RebootPending&quot;})  {
                Write-Host &quot;Reboot is required: Restarting $VMHost&quot;
                Restart-Computer -ComputerName $VMHost -Force
                sleep 120
                                                                                                                }
                Else    {
                Write-Host &quot;No Reboot required.&quot;
                                }
                        }

function CheckVMStatus  {
$VMStatus = Get-VM -VMMServer $VMMServer -VMHost $VMHost | Select Status
                if ($VMStatus -match &quot;HostNotResponding&quot;)       {
                Write-Host &quot;SCVMM has not updated the status of the Virtual Machines yet&quot;
                sleep 120
                CheckVMStatus
                                                                                                                }
                Else    {
                Write-Host &quot;Powering on Virtual Machines&quot;
                Get-VM -VMMServer $VMMServer -VMHost $VMHost | Start-VM | Out-Null
                                }
                        }

function CheckHostStatus        {
$Status = Get-Service -Computername $VMHost VMMS -erroraction silentlycontinue | select status
                if ($Status -match &quot;Running&quot;)   {
                Write-Host &quot;Host is Up&quot;
                Write-Host &quot;Waiting for SCVMM to populate VM state&quot;
                CheckVMStatus
                                                                                }
                Else    {
                Write-Host &quot;Host is still rebooting&quot;
                sleep 120
                CheckHostStatus
                                }
                                                        }
Foreach ($VMHost in $VMHosts)   {
                StartMaintenance
                InstallUpdates
                CheckForReboot
                CheckHostStatus
                EndMaintenance
                                }</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.jasonruiz.com/2011/10/10/hyper-v-scripting-updates-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perfect vSphere 5 whitebox</title>
		<link>http://blog.jasonruiz.com/2011/08/25/perfect-vsphere-5-whitebox/</link>
		<comments>http://blog.jasonruiz.com/2011/08/25/perfect-vsphere-5-whitebox/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 19:16:50 +0000</pubDate>
		<dc:creator>Jason Ruiz</dc:creator>
				<category><![CDATA[Home lab]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://blog.jasonruiz.com/?p=1110</guid>
		<description><![CDATA[I was hunting for a new affordable whitebox all pieced together for me, IE a desktop that was inline with the HCL. I looked through Best Buy since they usually have decent deals and went to my local CompUSA store to scope things out. I ended up buying a Gateway DX4860 from Best Buy for [...]]]></description>
			<content:encoded><![CDATA[<p>I was hunting for a new affordable whitebox all pieced together for me, IE a desktop that was inline with the HCL. I looked through Best Buy since they usually have decent deals and went to my local CompUSA store to scope things out. I ended up buying a <a href="http://www.bestbuy.com/site/Gateway+-+Desktop+/+Intel%26%23174%3B+Core%26%23153%3B+i5+Processor+/+8GB+Memory+/+1TB+Hard+Drive/2632043.p?id=1218341072045&amp;skuId=2632043&amp;st=gateway&amp;cp=1&amp;lp=3" target="_blank">Gateway DX4860</a> from Best Buy for just a bit over 600 with tax included.</p>
<p>What you get:</p>
<pre>i5 Quad 2.8ghz CPU
8gb RAM(Max 16gb)
1tb Hard Drive
6 SATA Ports
Realtek 100/1000 NIC(Now supported during stock installation!)</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.jasonruiz.com/2011/08/25/perfect-vsphere-5-whitebox/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>vCenter 5: The FQDN cannot be resolved.</title>
		<link>http://blog.jasonruiz.com/2011/08/24/vcenter-5-the-fqdn-cannot-be-resolved/</link>
		<comments>http://blog.jasonruiz.com/2011/08/24/vcenter-5-the-fqdn-cannot-be-resolved/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 15:05:55 +0000</pubDate>
		<dc:creator>Jason Ruiz</dc:creator>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://blog.jasonruiz.com/?p=1099</guid>
		<description><![CDATA[I was lucky enough to grab a copy of the vSphere 5 suite this weekend. Upgrade went fine, but I encountered an error during the install process for vCenter 5 stating &#8220;The Fully Qualified Domain Name could not be resolved&#8221;, after doing some testing I had no issue resolving that to my IP address assigned [...]]]></description>
			<content:encoded><![CDATA[<p>I was lucky enough to grab a copy of the vSphere 5 suite this weekend. Upgrade went fine, but I encountered an error during the install process for vCenter 5 stating &#8220;The Fully Qualified Domain Name could not be resolved&#8221;, after doing some testing I had no issue resolving that to my IP address assigned to the server, I was a bit confused at it but I clicked OK though it and the install worked fine. Later that day I decided to migrate one of my VM&#8217;s over to another datastore, but I encountered an error stating &#8220;Could not connect to host&#8221;, this also seemed to have affected deploying templates too. After much troubleshooting and digging, I found <a href="http://twitter.com/#!/2vcps">@2vcp</a>&#8216;s <a href="http://www.2vcps.com/2011/08/03/a-quick-update-vsphere-5/">post</a>, which at the very end stated I would need a PTR record, after adding this everything worked like a charm. What working at a hosting company has taught me is that 90% of the issues are either permissions or DNS related.</p>
<p><strong>UPDATE:</strong></p>
<p>I previously didn&#8217;t have a host within my own network, only the vCenter server. Upon having this issue happen again &#8220;Cannot connect to host&#8221; when deploying templates or migrating data, I found out that this was caused by TCP port 902 not being opened on my firewall. As previously posted, I have another machine outside of my network, so in order for that to work, I have to set my managed IP to my ISP provided IP. The hosts inside the network also rely on this and not the internal IP, once I made a rule to forward that port to my ESXi host, everything worked as normally. I&#8217;m sure I thought I fixed the issue, because the first time I tried fixing the FQDN issue, I had uninstalled/reinstalled vCenter and removed the vCenter agent, I can only think that the vpxa.cfg was never updated with the managed IP address.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jasonruiz.com/2011/08/24/vcenter-5-the-fqdn-cannot-be-resolved/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Locking yourself out of vCenter</title>
		<link>http://blog.jasonruiz.com/2011/08/22/locking-yourself-out-of-vcenter/</link>
		<comments>http://blog.jasonruiz.com/2011/08/22/locking-yourself-out-of-vcenter/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 15:00:26 +0000</pubDate>
		<dc:creator>Jason Ruiz</dc:creator>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://blog.jasonruiz.com/?p=1080</guid>
		<description><![CDATA[A few days ago, I was browsing through Reddit and saw this post, where it was suggested that the person edit their database or vpxd.cfg to fix this issue via this article from years ago by Eric Sloof. There is a much simpler way of remedying this issue. vCenter takes its base permissions from the Administrators [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago, I was browsing through Reddit and saw this <a href="http://www.reddit.com/r/vmware/comments/jog37/vcenter_permission_screwup_on_single_guest/">post</a>, where it was suggested that the person edit their database or vpxd.cfg to fix this issue via this <a href="http://www.ntpro.nl/blog/archives/819-Locked-out-of-vCenter.html" target="_blank">article</a> from years ago by Eric Sloof. There is a much simpler way of remedying this issue. vCenter takes its base permissions from the Administrators group on the vCenter server, this group is the local group which contains both domain users/groups AND local users/groups, therefore using the local administrator account or any account in this group, you could edit the Domain Users group from being Read Only.</p>
<p>&nbsp;</p>
<p><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/08/permissions.png"><img class="aligncenter size-medium wp-image-1081" title="permissions" src="http://blog.jasonruiz.com/wp-content/uploads/2011/08/permissions-270x300.png" alt="" width="270" height="300" /></a><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/08/AD.png"><img class="aligncenter size-full wp-image-1086" title="AD" src="http://blog.jasonruiz.com/wp-content/uploads/2011/08/AD.png" alt="" width="618" height="378" /></a><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/08/before.png"><br />
</a><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/08/Local.png"><img class="aligncenter size-full wp-image-1087" title="Local" src="http://blog.jasonruiz.com/wp-content/uploads/2011/08/Local.png" alt="" width="645" height="365" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jasonruiz.com/2011/08/22/locking-yourself-out-of-vcenter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stepping into the Cloud</title>
		<link>http://blog.jasonruiz.com/2011/08/17/stepping-into-the-cloud/</link>
		<comments>http://blog.jasonruiz.com/2011/08/17/stepping-into-the-cloud/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 16:15:22 +0000</pubDate>
		<dc:creator>Jason Ruiz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jasonruiz.com/?p=1074</guid>
		<description><![CDATA[I&#8217;ve finally made it, Cloud 9. Starting a few days ago, I am now one of the main virtualization administrators in our Tampa office, which hosts our eastern cloud services cluster for Hostway. I will be supporting our Hyper-V cluster , VMware vSphere environments for some of our VIP customers, and all of the other [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally made it, Cloud 9. Starting a few days ago, I am now one of the main virtualization administrators in our Tampa office, which hosts our eastern cloud services cluster for <a href="http://www.hostway.com/cloud-servers/" target="_blank">Hostway</a>. I will be supporting our Hyper-V cluster , VMware vSphere environments for some of our VIP customers, and all of the other goodies a regular system administrator would handle. This is going to be a great learning experience and probably make my head explode shortly.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jasonruiz.com/2011/08/17/stepping-into-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2X ApplicationServer XG</title>
		<link>http://blog.jasonruiz.com/2011/08/02/2x-applicationserver-xg/</link>
		<comments>http://blog.jasonruiz.com/2011/08/02/2x-applicationserver-xg/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 13:12:01 +0000</pubDate>
		<dc:creator>Jason Ruiz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jasonruiz.com/?p=1064</guid>
		<description><![CDATA[I came across this software last week when looking for another viable RDP client for OSX, since CoRD has been having some stability issues in Lion. To my surprise I found 2X ApplicationServer XG, which is much like RemoteApp from what I&#8217;ve seen, one of the key differences is that it has clients for OSX, iOS, [...]]]></description>
			<content:encoded><![CDATA[<p>I came across this software last week when looking for another viable RDP client for OSX, since CoRD has been having some stability issues in Lion. To my surprise I found 2X ApplicationServer XG, which is much like RemoteApp from what I&#8217;ve seen, one of the key differences is that it has clients for OSX, iOS, Linux and of course Windows. You can grab a copy at their <a href="http://www.2x.com/applicationserver/downloadlinks.html" target="_blank">site</a>, it&#8217;s completely free for personal use, I think you get 3 connections with the free license. Since it runs off of Microsoft Terminal Services, you&#8217;ll need to install it on a 2003 or 2008 server. Here are a few screenshots:</p>
<p><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/08/2x-manager.png"><img class="aligncenter size-medium wp-image-1065" title="2x-manager" src="http://blog.jasonruiz.com/wp-content/uploads/2011/08/2x-manager-300x228.png" alt="" width="300" height="228" /></a><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/08/2x-vsphere.png"><img class="aligncenter size-medium wp-image-1066" title="2x-vsphere" src="http://blog.jasonruiz.com/wp-content/uploads/2011/08/2x-vsphere-300x277.png" alt="" width="300" height="277" /></a></p>
<p>&nbsp;</p>
<p><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/08/Photo-Jul-30-10-50-06-PM.png"><img class="aligncenter size-medium wp-image-1070" title="Photo Jul 30, 10 50 06 PM" src="http://blog.jasonruiz.com/wp-content/uploads/2011/08/Photo-Jul-30-10-50-06-PM-225x300.png" alt="" width="225" height="300" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jasonruiz.com/2011/08/02/2x-applicationserver-xg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pfSense and NATing with vSphere</title>
		<link>http://blog.jasonruiz.com/2011/05/06/pfsense-and-nating-with-vsphere/</link>
		<comments>http://blog.jasonruiz.com/2011/05/06/pfsense-and-nating-with-vsphere/#comments</comments>
		<pubDate>Fri, 06 May 2011 13:00:05 +0000</pubDate>
		<dc:creator>Jason Ruiz</dc:creator>
				<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://blog.jasonruiz.com/?p=999</guid>
		<description><![CDATA[After getting my server setup in our datacenter, I had to think of a way to not use all of my 5 allocated IP addresses. pfSense came to mind as I heard of it before. This neat little piece of software can do a ton of different things, in my case, NATing and routing. pfSense [...]]]></description>
			<content:encoded><![CDATA[<p>After getting my server setup in our datacenter, I had to think of a way to not use all of my 5 allocated IP addresses. pfSense came to mind as I heard of it before. This neat little piece of software can do a ton of different things, in my case, NATing and routing.</p>
<p>pfSense provides a VMware ready image, I actually had to use Converter to send it over to my host for it to import correctly, otherwise adding it to inventory would bring up a bad machine.</p>
<p>Once that is done, you&#8217;ll want to set up a vSwitch with no assigned NIC like the following:<br />
<a href="http://blog.jasonruiz.com/wp-content/uploads/2011/05/vSwitch.png"><img class="aligncenter size-full wp-image-1018" title="vSwitch" src="http://blog.jasonruiz.com/wp-content/uploads/2011/05/vSwitch.png" alt="" width="418" height="361" /></a></p>
<p>Because the end VM will have 2 NICs on 2 different networks and 2 MAC addresses, get a pen down and write which is which, as you&#8217;ll need to know during the configuration to set up WAN and LAN connections.<span style="color: #000000; font-family: 'Times New Roman'; font-size: medium;"> </span></p>
<p style="display: inline !important;">﻿</p>
<p><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/05/MAC.png"><img class="aligncenter size-full wp-image-1019" title="MAC" src="http://blog.jasonruiz.com/wp-content/uploads/2011/05/MAC.png" alt="" width="568" height="108" /></a></p>
<p>Now we&#8217;re at the point where we need to get into the OS. After this prompt it will then ask you which device em0 or em1 will be the WAN NIC, then the LAN NIC, and their associated configurations.</p>
<p><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/05/AssignNics.png"><img class="aligncenter size-full wp-image-1021" title="AssignNics" src="http://blog.jasonruiz.com/wp-content/uploads/2011/05/AssignNics.png" alt="" width="727" height="249" /></a></p>
<p>One problem I found after this configuration is that I could not load the web frontend, apparently with this version, 2.0RC1, there is a bug with the default gateway. I had to press 8 for the Shell Prompt, and enter <em>route add default x.x.x.x</em>. This could either be an issue all around, or with the setup I had, as I was on a x.x.x.144/29 address scheme.  After that, I was able to log into pfSense and add the gateways through the web interface, you can either do it when viewing the NIC&#8217;s settings or under <em>System -&gt; Routing</em>:</p>
<p><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/05/gw.png"><img class="aligncenter size-full wp-image-1025" title="gw" src="http://blog.jasonruiz.com/wp-content/uploads/2011/05/gw.png" alt="" width="452" height="117" /></a> <a href="http://blog.jasonruiz.com/wp-content/uploads/2011/05/Gateway.png"><img class="aligncenter size-full wp-image-1023" title="Gateway" src="http://blog.jasonruiz.com/wp-content/uploads/2011/05/Gateway.png" alt="" width="801" height="243" /></a></p>
<p>Sometimes, you may need to add a route, under <em>System -&gt; Routing </em>between the WAN and LAN for some reason. I&#8217;ve taken it out previously and things have worked, but when they break bad, sometimes I have to add it back, not sure why this would be necessary since the system should already know or atleast put this information in by default.</p>
<p><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/05/route.png"><img class="aligncenter size-full wp-image-1062" title="route" src="http://blog.jasonruiz.com/wp-content/uploads/2011/05/route.png" alt="" width="703" height="157" /></a></p>
<p>DNS is located under <em>System -&gt; General Setup</em> and I simply added Google&#8217;s DNS server, 8.8.8.8.</p>
<p><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/05/DNS.png"><img class="aligncenter size-full wp-image-1024" title="DNS" src="http://blog.jasonruiz.com/wp-content/uploads/2011/05/DNS.png" alt="" width="442" height="62" /></a></p>
<p>Now there are a few gotchas, one is a major performance boost, the other is a major annoyance. First, disabling <em>hardware checksum offload </em>under <em>System -&gt; Advanced -&gt; Networking</em> provides a huge performance boost.</p>
<p><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/05/crc.png"><img class="aligncenter size-full wp-image-1026" title="crc" src="http://blog.jasonruiz.com/wp-content/uploads/2011/05/crc.png" alt="" width="771" height="64" /></a></p>
<p><a href="http://blog.jasonruiz.com/wp-content/uploads/2011/05/crc.png"></a> Lastly, the major annoyance is that sometimes, for unknown reasons, the LAN goes offline, resolving it is as simple as <em>ifconfig em1 down</em> then <em>ifconfig em1 up</em>. Other than that, it&#8217;s a great product, hopefully every bug I had will eventually be squashed.</p>
<div id="wrapper">
<div id="content">
<div id="right">
<form id="iform" action="http://64.157.15.148/system_advanced_network.php" method="post"> <span style="color: #000000; font-size: small;"><span style="border-collapse: collapse; font-weight: normal;"><em> </em></span></span></form>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.jasonruiz.com/2011/05/06/pfsense-and-nating-with-vsphere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

