Based on some work myself and Anthony have been doing over the last 12-18 months around terraform, chef and automation of Veeam components I wanted to extend this out further within the Veeam Availability Platform and see what could be done with our Veeam Availability for Nutanix AHV.

I have covered lots of deep dive on the capabilities that the product brings even in a v1 state, but I wanted to highlight the ability to automate the deployment of the Veeam Availability for Nutanix Proxy appliance. The idea was also validated when I spoke to a large customer that had heavily invested in Nutanix AHV across 200 of their sites in the US.

Having been a Veeam customer they were very interested in exploring the new product and its capabilities matched up with their requirements. But they then had a challenge in deploying the proxy appliance to all 200 clusters they have across the US. There were some angles around PowerShell and from a configuration this may be added later to what I have done here. I took the deployment process and I created a terraform script that would deploy the image disk and new virtual machine for the proxy with the correct system requirements.

This was the first challenge that validated what and why we needed to make a better option for an automated deployment. The second was that the deployment process of the v1 is a little off putting I think is a fair thing to say, so by being able to automate this it would really help that initial deployment process.

Here is the terraform script, if you are not used to or aware of terraform then I suggest you look this up, the possibilities with terraform really change the way you think about infrastructure and software deployment.

# Configure the Nutanix Provider
provider "nutanix" {
  username       = "Admin"
  password       = "Passw0rd99!"
  endpoint       = "10.0.60.11"
  insecure       = "true"
  port           = "9440"
}

resource "nutanix_image" "VAN_Proxy" {
    name        = "VAN_Proxy"
    source_uri  = "http://10.0.30.20/VeeamAvailabilityforNutanixAHV_1.0.457.vmdk"
    description = "Veeam Availability for Nutanix AHV"
}

resource "nutanix_virtual_machine" "Veeam_VAN_01" {
  # General Information
    name                 = "Veeam_VAN_01"
        description      = "Veeam Availability for Nutanix AHV"
        
            num_vcpus_per_socket = 2
            num_sockets          = 2
            memory_size_mib      = 4096
            #power_state = "ON"
            nic_list = [
                {
    # subnet_reference is saying, which VLAN/network do you want to attach here?
                    subnet_reference = {
                        kind = "subnet"
                        uuid = "f7f0ce84-8097-45f8-b713-9ac1a2dd2ba7"
                    }
                }  
            ]
            disk_list = [{
    # data_source_reference in the Nutanix API refers to where the source for
    # the disk device will come from. Could be a clone of a different VM or a
    # image like we're doing here
    data_source_reference = [{
      kind = "image"
      uuid = "${nutanix_image.VAN_Proxy.id}"
    }]
    # data_source_reference in the Nutanix API refers to where the source for
    # the disk device will come from. Could be a clone of a different VM or a
    # image like we're doing here
                    data_source_reference = {
                        kind = "image"
                        uuid = "${nutanix_image.VAN_Proxy.id}"
                    }
                }
            ]
        }
    
        
    

One caveat you will need to consider is as part of this deployment I placed the image file that I downloaded from veeam.com on my web server this allows for that central location and part of the script to deploy that image from this shared published resource. Again the thought process to this was that 200 site customer and providing a central location to pull the image disk from, without downloading it 200 times in each location.

Once the script has run you will see the created machine in the Nutanix AHV management console.

There is a requirement for DHCP in the environment so that the appliance gets an IP and you can connect to it.

Now you have your Veeam Availability for Nutanix AHV proxy appliance deployed and you can run through the configuration steps. Next up I will be looking at how we can also automate that configuration step. However for now the configuration steps can be found here.

Thanks to Jon Kohler he is the main contributor to the Nutanix Terraform Provider and also has some great demo YouTube videos worth watch, You will see that the base line for the script I have created is based on examples that Jon uses in his demonstrations.

Leave a Reply

Your email address will not be published. Required fields are marked *