Thursday, December 13, 2018

Horizon 7.7.0 has just dropped

VMware Horizon 7.7.0 is now generally available, along with Horizon Apps 7.7.0, and the coinciding Horizon Clients 4.10.0. This release brings support for the brand new vSphere 6.7 U1 and vSAN 6.7 U1!

As always, be sure to check out the Known Issues and Resolved Issues in the Release Notes.

Horizon 7.7 comes loaded with new stuff:
  • Disable session roaming and allow multiple app launch
  • RDS drain mode improvements for easier maintenance
  • Allow Connection Server BSG to only be used for direct HTML Access client
  • [Flex Only] Show Pod Name in console header area and browser tab
  • Easier management with new columns in admin console - connected user field
  • Enable single vCenter to support multiple CPA pods
  • Increase RDS Host support per FARM from 200 -> 500
  • Hybrid logon for RDSH unauthenticated access
  • Support new VMC M5 features with Horizon 7.7
  • Cloud Connector : Upgrade support
  • vSphere 6.7U1 and vSAN 6.7U1 support
  • Support for UAGS in Horizon Admin Console
  • Additional functionality in LEO
  • Enhance Horizon integration with VAC by support Horizon client info
  • Instant Clone and App Volumes supported on VMware Cloud on AWS
For the Linux side of the house:
  • Remove gaps in feature support across distros
  • Session Collaboration
  • Support VMC deployment
Here's what's new with the 4.10 Clients
  • Project Brown: Native printer driver support (That's right.. Brown...)
  • Blast Extreme HEVC/H.265 encoder support
  • Physical PC remoting with Blast Extreme
  • True drag and drop of files in and out of VM
  • Serial port redirection support in nested mode
  • UAG and Horizon Client support for custom thumbprints
  • Enhancements to Geolocation redirection - VDI Driver and Chrome Plugin
  • Select monitors for RDSH apps
  • Improved drive redirection performance
  • Subfolders for shortcuts
  • Support for Windows Server 2019 as RDSH host and VDI agent
  • OS updates: iOS 12, Windows 10 1809, Android 4.10, Chrome M69
A jam packed release no doubt! Links after the break!


Wednesday, October 10, 2018

Home Server Update

If you’ve followed this blog for any length of time, you’ve known my home server has served multiple purposes over the years and has been built with simplicity in mind. We’re not talking enterprise grade components or architecture here. I’ve found that many consumer-grade resources work extremely well for my needs.
What are those needs?
Simple: media management/DVR capability, and private cloud file server. This is where Plex and Seafile step in.

Most everyone’s heard of Plex these days. It’s a media-managing powerhouse that makes organizing and consuming your content easy and enjoyable. As a Plex Pass subscriber, you also gain OTA TV DVR capabilities. As a closet cord cutter, this has been a crucial capability. The fact that it adds the DVR’d content into my normal TV Media Library is a huge win!

Second is Seafile which is a Dropbox/Google Drive alternative. It’s open source, lightweight, and runs beautifully on a Ubuntu Server mini.iso build. With Seafile, I can access my files and documents from anywhere, using any device.

It came time to upgrade my Server as I wanted to get better transcoding power for my DVR content, and faster access to all my files. Additionally, a major goal of this upgrade was to rid myself of Windows 10. If you recall, I ran Windows 10 on my server natively, then ran my Plex/Seafile servers in VMs using VMware Workstation. This made management incredibly simple, however Windows 10 became such an annoying ‘hypervisor’ that I couldn’t wait to get rid of it. Furthermore, my MSI Motherboard was old enough that it wouldn’t allow installation of newer Linux Operating Systems. The last BIOS update was from 2014 and there were no signs of a newer version coming.
So as any geek would logically conclude, it was time for an upgrade!

After some research, I ended up with the following components:

1. AMD Ryzen 5 2400G with Radeon RX Vega Graphics (Coming from an A10 6800k APU)
2. Asus PRIME B450M-A Motherboard (Micro ATX)
3. Corsair Vengeance LPX DDR4 Memory, 16GB running at 2900 MHz (Coming from 8GB 2100 MHz.. fast memory compliments the APU)
4. Linux Mint 19 installed natively on a 500GB WD M.2 SSD (Blue)

The rest of my Media is stored on a random selection of spinning disk that are configured with LVM. LVM allows me to specify a single location for Plex to reference for all the video/music/photos.

Seafile is still running in a VM as it was much easier to move this over along with its Certificates and configurations than to rebuild. I was really impressed at how it booted up, connected to the new data repository and took no additional configuration!

I like the concept of the APU for my home needs. It creates a flexible environment as my needs grow and change with the home server (if I choose to run Steam in the off hours, for example!)

One thing I’m missing is a DR plan

As it stands, if a disk within my LVM group fails, I lose that data. I need to look into the best DR option in this setup. Let me know in the comments if you have any recommendations!

Friday, May 18, 2018

My Experiences Updating VCSA 6.5a to 6.5 U2

Today we'll be updating my lab's VCSA 6.5a (build 4944578) to version 6.5 Update 2 (build 8307201) which was released  May 3 2018. vCenter Server 6.5 U2 includes some backported features of vSphere 6.7 making it a slick update for users not quite ready to move to version 6.7. Some of the new features include

NOTE: Currently, upgrading from vSphere 6.5 U2 to vSphere 6.7 GA is not supported

You can verify your VCSA version by clicking on the top most level of the hierarchy tree in the vSphere Web Client and viewing the Summary tab

Before I perform this update, I'm going to verify compatibility with my registered and connected solutions with the VMware Interoperability Matrix

Then, I'm going to login to the vCenter Server Appliance Management Interface (VAMI) at <https://fqdn-of-vc:5480and ensure overall Health Status is green, take a VM-level snapshot (not pictured) and create a native VCSA Backup.

Upon entering my Backup details and clicking Next, I got a message stating that the service 'statsmonitor' wasn't running

A quick SSH session to the VCSA and running service-control --start vmware-statsmonitor resulted in starting the service

This allowed the Backup to continue

After it validated the input, we're ready to click Finish, which initiated the backup and showed a Backup Progress Bar

With our VM snapshot and VCSA Backup in place, we're ready to go to the Update section of the VAMI and check for Updates

Click Install Updates and accept the EULA to begin the update. My update jumped straight to 40% with status "Start staging packages" then had a "Download Failed"

At this point, I took a break for the evening (hey can't a man eat and unwind with some SNES Classic?!) and revisited it in the morning. This time, I did a tail -f on /var/log/vmware/applmgmt/software-packages.log to watch the progress of the downloads and to my surprise, the downloads worked this time without any changes made. If you run into a similar error, I would review this log to see what could be causing the downloads to fail (proxy config, incorrect URL, etc).

The Update window status changed to "Start running pre-install scripts"

Then made its way to 100% with the message "Packages upgraded successfully, reboot required to complete the installation"

And checking the software-packages.log we can confirm the packages were properly staged and ready for reboot

Clicking OK, I proceeded to the Summary Tab where I could click Reboot

Upon logging back in to the VAMI, we can verify the new build version!

Confirming in vSphere Web Client

Remember, we haven't fully upgraded to vSphere 6.5 U2 until the ESXi hosts are also updated. The embedded VUM instance in VCSA 6.5 makes that an almost effortless task.

Thanks for reading and good luck with your updates!

Sunday, February 4, 2018

The Mobile Plex Media Server - Local Streaming on the Go

The mobile Plex Server powered by Pi! The best mobile media streaming solution for those long family road trips. Who cares if your kids have the capacity-starved 16GB hand-me-down phones and tablets from 2012 - this untethered setup allows you to broadcast your Plex Library from literally anywhere.

To wirelessly stream movies to devices while on the road, mitigating the need for high storage-capacity endpoints

Raspberry Pi 3 Model B
160GB 2.5” USB HDD
8000mAh Lithium Ion Battery

How to build it
  1. Get yourself a RaspberryPi unit. Here I’m using the rPi 3 Model B. I also got an enclosure that has a CPU fan - figured this would be handy during those hot summer road trips.
  2. Install Raspbian. Here I’m using Raspbian Stretch Lite (2017-11-29 build) 
  3. Ensure the Pi is connected to the network via Ethernet for the next several steps
  4. Configure a static IP. For the Stretch build, you need to configure this using dhcpcd.conf, not /etc/network/interfaces as mentioned here 
  5. Install Plex Media Server. These instructions are for an older Raspberry Pi build (Jessie) but it is still relevant for the Stretch build used in this post
  6. Ensure you can connect to Plex using the static IP you configured, I.e., 192.168.x.x:32400/web/ Don’t mess with adding your Libraries - we’ll do that later
  7. Configure hostapd and dnsmasq. This is what allows you to have the Pi broadcast a wireless signal, authenticate your endpoints, and hand out DHCP addresses. The best option I’ve found for getting this done is this fantastic little script. As of this writing, the script states to use the 2017 August Stretch Pi image, but I can confirm it works great with my November Stretch build. Huge shoutout to GitHub user Lewiscowles1986.
    1. See the owner’s process for running the script in his github comment here
  8. After rebooting, UNplug your Ethernet cable and give the Pi another reboot - from a wireless device, ensure you see the SSID you configured using the script. Connect to it
  9. Once connected, launch the Plex Client app and ensure it connects to the media server. 
  10. If you successfully connect to the server, all you need to do is load your external storage device with content, then add the Libraries to Plex (The Plex Install guide from above walks you through this). If at all possible, format your external drive to EXT4 for maximum compatibility with the Raspbian.
  11. Once the drive is loaded with content, plug the drive into the Pi
    1. Type sudo blkid and find your drive. Most likely, it will be /dev/sda1 or /dev/sda2
    2. Create a mount point for the drive: sudo mkdir /mnt/library
    3. Change permissions: sudo chmod 755 /mnt/library 
    4. Mount the drive to your configured location: sudo mount -t ext4 /dev/sda1 /mnt/library
    5. Update fstab so the drive always mounts to this location: sudo vi /etc/fstab
      1. Add the following to the bottom of the file:  /dev/sda1 /mnt/library ext4 defaults 0 0
    6. Reboot
At this point, you should have a fully functional Plex Media Server on your Raspberry Pi. Here are some additional tips:

  • Remember your Pi must be unplugged from Ethernet in order for the Plex Media Server to function properly over your configured wlan0
  • This setup allows you to take your PMS with you anywhere, but if you intend to use a portable battery source, ensure it puts out enough power. Pi Documentation recommends 2.5 Amps - the one pictured in this post is 2.4 and works just fine

Friday, January 5, 2018

Goodbye Owncloud, Hello Seafile

I had been an OwnCloud user for several years now. The En0ch team's OwnCloud VM made it easy to deploy and get setup in no time. My configuration was perhaps somewhat unique with the server being a hosted VM and the files being stored on a NTFS drive shared through a CIFS Mount to the VM. Performance was less than stellar, but it worked! For my home needs anyway.

Recently we had a power outage in my neighborhood (a new neighborhood, so this was certainly not the first) and every time this happened, OwnCloud would crash hard. I was always surprised at how much work it took for me to get the service back up and running. I was on the latest stable 9.x build for some time (I think 10.0.4 is the latest at the time of this writing). For a while I had been thinking it was time to either wipe it all and start new, or find a new solution. After this most recent power outage, I figured it was time to start fresh AND look for a new solution.

I soon discovered Seafile and thought the initial configuration looked simple to setup. It's friendly integration with Let's Encrypt and modern UI were also intriguing.

After 30 minutes I had seafile up and running on my LAN. It was extremely simple following their documentation. It wasn't until I tried to enable HTTPS over WAN that I ran into some challenges, but once that was taken care of, I've been able to explore the product more.

Over my own experience with OwnCloud, Seafile is significantly faster. From syncing, to downloading, to streaming media - the overall experience is quite pleasant. It even works well for sharing public download and upload links, which was one of the most useful features of a self-hosted cloud file share.

Here are some of the tricks to my setup I had to configure:


  • Seafile 6.2.3 on Ubuntu Server 16.04 VM in VMware Workstation (hosted on Windows 10)
  • Storage is 2TB NTFS WD Passport configured as a Shared Folder to the Guest OS via Workstation
  • MySQL DB since storage is on NTFS (per user docs)
  • Let's Encrypt SSL Cert
  • NGINX reverse proxy

The first challenge was making it so I didn't have to run the and services with sudo. Because I'm using shared folders in Workstation, I wasn't the 'owner' of the data folder that get's configured and the services would fail to start unless ran with sudo. I found that if I opened
and used my own GID and UID, it would mount the HGFS share properly and I could start the services without sudo

# Mount all hgfs filesystems
vmware_mount_vmhgfs() {
  if [ "`is_vmhgfs_mounted`" = "no" ]; then
    if [ "`vmware_vmhgfs_use_fuse`" = "yes" ]; then
      mkdir -p $vmhgfs_mnt
      vmware_exec_selinux "$vmdb_answer_BINDIR/vmhgfs-fuse \
         -o subtype=vmhgfs-fuse,allow_other,uid=1000,gid=1000 $vmhgfs_mnt"
      vmware_exec_selinux "mount -t vmhgfs .host:/ $vmhgfs_mnt -o uid=1000,gid=1000"

The second biggest challenge was getting my nginx configuration right. I found that when I would enter my DDNS address for the server, I would be directed to my router's login - I wasn't getting passed through to the server itself. You can read more about the symptoms in the Seafile Forums. Long story short, I was missing some information shared in the Sample configuration file from the docs. Read those buggers carefully!

Whatever your self-hosted cloud storage provider is (OwnCloud, Seafile, NextCloud, etc), we can at least all agree that we're glad to be off of the big brother alternatives!

Follow by Email