Deploying vCenter Server Appliance (VCSA) 6.0 U1 on Ravello

VCSA+Ravello

This blog post allows me to bring two of my favorite things together. I have been a fan of the vCenter Server Appliance (VCSA) since its release. With continuous improvements, it’s evident that VCSA is the future. My other favorite thing is Ravello. They have given us the ability to have a home lab in the cloud, extend our current labs, and share blueprints. Two great products, that up to this point were not able to be used together. This is like having peanut butter on one slice and jelly on the other, and eating them individually.

2015-12-03_19-49-36 -bigger

We all know the awesomeness that happens when you combine the two slices. This is the same effect when bringing together the VCSA and Ravello. This wasn’t an easy task, consisting of several attempts and asking lots of questions, but it’s now doable!

The Problem

With the VCSA 6.0 VMware changed the deployment format from OVA/OVF to ISO. This introduces some problems when trying to directly import on Ravello. Some of the problems are:

  •  ISOs are a supported format on Ravello, but there’s no way to access the VCSA files natively.
  • Currently there’s no support for uploading an OVA. VCSA OVA format (vmware-vcsa) located on ISO.
  • Deploying a VCSA to a ESXi host, Workstation, Fusion, or vSphere environment and export to OVF. This results in the following error:

Ravello-VCSA Error

The problem is the number of disks. The VCSA requires 11 disks, while Ravello currently supports a maximum of 7 disks per HBA on their end.

Fear not, there’s a way to get the VCSA on Ravello!

Considerations

There are a few things you should consider before starting this process.

  • Naming – When deploying your VCSA once you provide it a FQDN or IP address it can’t be changed, at least in a supported manner. The PNID is tied to the FQDN or IP address and is referenced in many places (KB2130599 & KB2124422). The only option is to redeploy.
  • DNS, DNS, DNS – Make sure forward and reverse DNS is configured.
  • NTP – Configuring time is important for troubleshooting, configuration management, and security.

Note: I deployed my VCSA based on my home lab domain, using a FQDN. I knew that I would be building the same domain in Ravello. If you aren’t sure or not planning on doing the same, your best bet is to deploy using an IP address.

VCSA Prep Work

  1. Deploy the VCSA to an ESXi host, vCenter Server (6.0 U1), Workstation, Fusion, or vSphere environment. My example is based on deploying to my vSphere lab.
  2. Once your VCSA has been deployed, power it off.
  3. Add a second SCSI controller to the VCSA.
    Ravello-VCSA SCSI
  4. Move Hard disks 8-11 to the new SCSI controller (SCSI controller 1) .
    Hard Disk #VMDK NameSCSI Bus / Device Number
    8VMDK 71:0
    9VMDK 81:1
    10VMDK 91:2
    11VMDK 101:3
  5. Edit the VCSA settings in the vSphere web client.
    • Click Manage other disks, and expand the hard disk you’re making the change to.
    • Change the Virtual Device Node to SCSI controller 1 and the next available SCSI Bus / Device number starting with 1:0.

    Ravello-VCSA SCSI Disks
    Here’s a logical view of the VCSA hard disks under their respected SCSI controller from the vSphere C# client.
    Ravello-VCSA Hard Disk
    Note: Ravello will automatically add a second HBA on their end to support the newly added SCSI controller.

  6. Power on the VCSA, make sure that it’s still functional and you have access to the web client. Once that’s been verified power off the VCSA.
  7. Export the VCSA as a OVF.
    Ravello-VCSA OVF
  8. Select the export directory and verify format is OVF. Click OK.
    Ravello-VCSA OVF Config
  9. Convert stream-optimized VMDK disks to non-stream-optimized disks before uploading them to Ravello. Per the following Ravello KB article. Download and install QEMU for windows or Linux and run the following command: 

    qemu-img convert -p -f vmdk -O vmdk “original vmdk file” “new vmdk file”

    Note: This must be done for all 11 VCSA disks.
    Ravello-VCSA Stream Command

  10. Now there should be 22 VMDK disks, 11 original & 11 new. I recommend backing up the 11 original in case you need them at a later date. I created a backup directory and moved them there. Now rename the new VMDK disks to the original names.
    Note: Another option is to create the new VMDK disks in a separate directory, this will save time with having to rename. You will have to copy the .mf and .ovf files over.
    Ravello-VCSA Disk Conversion
  11. The manifest file (.mf) stores the SHA1 hases for each disk and needs to be updated.  Microsoft has a free tool called File Checksum Integrity Verifier (FCIV).

    fciv.exe -sha1 “path of the vmdk”

    Ravello-SHA1

  12. Open the manifest file (.mf) with your favorite editor and replace each VMDK hash with the newly generated one.
    Ravello Edit Manifest

Finally, done with the prep work and ready to start getting this bad boy on Ravello.

Importing VCSA on Ravello

  1. Login the Ravello VM Import Tool and select Upload a VM from OVF file or Ravello Export file. Click Next.
    Ravello Upload VMs
  2. Navigate to the VCSA directory and select the OVF. Click Upload.
    Ravello Select VM Upload
  3. Away we go! The upload process has started, sit back and relaxed you’ve earned it. Plus there’s nothing more to do until the upload is finished.
    Ravello Upload Progress

Ravello VCSA Configuration

  1. Login your Ravello account and create a new application. I created one called VCSA 🙂
  2. Prior to adding the VCSA to the newly created application we need to verify its configuration. Go to Library –> VM and select the VCSA that was just uploaded. One the right hand side click Edit & Verify VM.
    Ravello Verify Configuration
  3. Select the System tab, here you can increase the number of CPUs or RAM. By default a tiny deployment starts with 2 CPUs and 8GB of RAM.
  4. Go to the Disk tab and verify that the VCSA hard disks are in order. If not place them in the correct number order using the arrows.
  5. Select the Network tab and add a static IP address, Network Mask, Gateway, and DNS.
  6. Go to the Services tab, add the following services
    ServiceProtocolPort
    SSHSSH22
    HTTPHTTP80
    HTTPSHTTPS443
    Web User InterfaceTCP5480
    Web ClientTCP9443
    Remote ConsoleTCP7343
  7. After verifying all setting, save changes and click Publish.
    Ravello Publish VCSA
  8. Start the VCSA and launch the console when available.
  9. You will be greeted with the following warning message, for now press any key to continue. The VCSA will continue the start up process.
    Ravello VCSA Console Message
  10. Login the VCSA console (Alt-F1).
    Ravello VCSA Console
  11. Type “shell.set –enabled True“, hit enter and type “shell
    Ravello VCSA Config -1
  12. Edit the boot.compliance script vi /etc/init.d/boot.compliance
    Ravello VCSA Config -2
  13. Changes will be made to lines 47 and 48.
    Ravello VCSA Config -3
  14. Line 47 should read MSG = ‘/usr/bin/isCompliant -q’
  15. Line 48 should read CODE=0
    Ravello VCSA Config -5
  16. Save changes and exit.
    Ravello VCSA Config -6
  17. Restart the VCSA to verify you no longer receive the boot warning.
  18. Now that the VCSA configurations are all done, time to save your hard work to the VM library for future use.
    VCSA Ravello to Library

Web Client Access

  1. To access the web client, from a web browser type  “https://public IP address of the VCSA/vsphere-client”.
  2. Accept the self signed certificates.
  3. If you’re having issues accessing the web client, then there’s an issue with your DNS. Easy test is to edit the host file on your local machine adding the public IP address of the VCSA. Refresh your browser and see if you have access to the web client.
    Ravello Web Client
    Note: Don’t forget that VCSA public IP address will change, so if it’s added to the host file on your machine you will need to change it.

There you have it, the VCSA can now be deployed directly on Ravello providing even more flexibility. Have fun building your lab in the cloud, I know I will.

Comments

  1. Nice guide on how to get it done. I had thought about trying Ravello for a while. Time to do it now. Thanks Emad!

  2. Hi Emad,

    Fantastic post! I have only one question to you. My vCSA is successfully deployed in Ravello Cloud, but I have one problem.

    I can reach vCSA main page where is link to Web Client. When I click link I have session timeout. All ports are open like you did. In web browser I am redirected to internal IP of my vCSA. Did you have same problems?

    • Hi Wojciech,
      Have you tried adding the public IP address to the host file of your PC and testing. Just keep in mind that the public IP address does change.

      Hope this helps.

  3. Hi Emad,

    It was a great post, thanks for sharing. Will surely try this.

  4. Excellent post & job! I’ll share with french community, thx again Emad!

Trackbacks

  1. […] VCSA and Ravello.  And making the two work together has been difficult.  But Emad tells you how here.  And you need his info if you want to do […]

  2. […] are some limitations of course, the main one is that you can’t easily run the VCSA (there are ways, but it’s a pain to implement), and some other VMware linux based appliances seem to be […]

  3. […] In any case, the original steps I followed are here. The article I did is available here. Justin Warren did a nice series on using Ravello, and his post on “How To Import OVA/OVF Into Ravello” was particularly useful. Emad Younis also has an excellent article on deploying the vCenter Server Appliance 6 on Ravello – you can read it here. […]

Speak Your Mind

*