For software versions I used the following:
- VMware ESXi, 7.0.2, 17867351
- vCenter server version 7U3
- TrueNAS 12.0-U7 used to provision NFS datastores to ESXi hosts.
- VyOS 1.1.8 used as lab backbone router.
- Ubuntu 20.04 LTS as Linux jumpbox.
- Ubuntu 20.04.2 LTS as DNS and internet gateway.
- Windows Server 2012 R2 Datacenter as management host for UI access.
- Easy Avi fling appliance version 3.1,0
For virtual hosts and appliances sizing I used the following specs:
- 3 x virtualised ESXi hosts each with 8 vCPUs, 4 x NICs and 32 GB RAM.
- vCenter server appliance with 2 vCPU and 24 GB RAM.
VMware flings are community developed tools which simplify different operations tasks and offers a set of free handy tools to build a lab or a testing environments. This is because flings have no official VMware support and are not developed to run in production, so if you decide to use a fling in your production environment then do this on your own risk.
In this blog post I am exploring Easy Deploy for NSX Advanced Load Balancing fling which offers an automated method to deploy a full Advanced load balancer deployment (including service engines, VIPs and a testing backend application if needed).
The fling is still under development and more features are yet to come, in the below points I share my thoughts on what are the current limitations and hoping to see some of those points added/corrected in the near future.
- The fling can only download Avi images from VMware portal and has not support for local image locations.
- The tool does not clean up created tags and attributes after a successful deployment.
- You can choose the type of the cloud connector from the tool (no orchestrator, read/write or read-only).
- After the deployment has started, there is no option to cancel the deployment and roll back.
- The current possible connection modes are with vSphere or VMC cloud.
What does this fling automate?
With the Easy ALB fling you can get the following deployments rolled out for you in matter of minutes:
- Avi Controller
- Service Engine(s)
- Avi DNS profile (including the domain name that you have entered – if basic application was enabled)
- Avi IPAM profile (including the network VIP that you have entered along with a pool for the VIP)
- No Access Cloud with Avi DNS and Avi IPAM profiles.
If Test (Backend) network is chosen, then in addition tot he above you will get:
- Two backend servers with the following VM sizing characteristics:
- 2 vCPUs
- 4 GB of RAM
- 20 GB of Disk
- A basic application responding on port 80
- An advanced application responding on port 8080
- An HTTP/HTTPS Virtual Service:
- Optionally with a public IP assigned to the Virtual Service along with a NAT policy and a FW rule to
- allow HTTP and HTTPS access from Internet
- Content switching policy will be enabled:
- https://my-vs-ip/hello will redirect to the basic application
- https://my-vs-ip/avi will redirect to the advanced application
- A DNS Virtual Service:
- a public IP assigned to the Virtual Service along with a NAT policy and a FW rule to allow DNS access from Internet
- this DNS Virtual Service will be registered as a DNS VS in the system
Fling download and deployment
This fling can be downloaded from HERE , this will download an OVA appliance that you need to deploy inside your vCenter. I am not going to discuss the steps of deploying an OVF appliance in this blog as it is a very simple and known process. The only recommendation is to assign static IP address and DNS configuration to the EasyAvi appliance since I have seen some issues in my lab when I configured the appliance to use DHCP.
Once you deploy the OVF appliance and power it on, open a browser session to the FQDN/IP address of the EasyAvi appliance, you should get the below page:
The first step is to upload an Avi controller image to the EasyAvi tool, this either can be done by selecting Image Upload and then provide your My VMware portal credentials and the image version that you want to download, or you can download the image locally and then push it to the EasyAvi appliance using the below command:
curl -k -X POST https://<'easyavi-ip'>/api/image/upload -F "file=@<'local-path'>/controller-21.1.2.ova" -H "Content-Type: multipart/form-data" -H "X-File-Name: controller-21.1.2.ova"
Once the controller image is downloaded and pushed to the EasyAvi appliance, you can list the available image by clicking on Download/Manage under Image Upload
Make sure that the image is available and ready to be used. Next step is to go back to initial screen and choose the type of deployment.
In my lab, I am using vSphere deployment, so click on Initiate under VMware vSphere Deployment
Click on Start to start the deployment wizard
Fill the deployment details depending on your needs and click Next
Fill in your vCenter server address and credentials
Fill in vCenter deployment details
Assign Avi controller management and VIPs to corresponding DVS port groups by clicking on the 3 small dots left to the port group name. If you want to deploy a backend test application then you need to assign an extra netwrok for the test network. In my lab setup I am only using the Avi management and VIP deployment.
Click Next and proceed to Network Subnet Configuration
Set the DNS server address that the EasyAvi tool will use and the SEG HA mode and then click on Next
Fill out the Avi controller address, SE address range (must be same subnet as Avi controller management address) and range for the VIP addresses to be created by the tool
Review the deployment configuration and if all is good, press on Deploy
The deployment will take a while 15 to 45 minutes depends on the number and size of VMs that need to be created.
If you would like to follow the progress of the deployment in more details then you can SSH to the Easyavi VM using root and tail the docker container log file that is handling the deployment using the below command:
tail -F /var/lib/docker/containers/c95d2e8c85d1a7194d1ad2fb6e49f7847f5529e6a4f36c4551b56040f8dfaeb0/c95d2e8c85d1a7194d1ad2fb6e49f7847f5529e6a4f36c4551b56040f8dfaeb0-json.log
Please note, the long container name on the above section will be different of course in your deployment, so the best way is to change to /var/lib/docker/container directory in the appliance and then you should see a directory with the name of the container, change to that directory and the log file is always the name of the container-json.log.
During the deployment, the tool will report what resources have been successfully created so far under the resources section in the deployment page:
After a successful deployment you should see a page similar to the below
After the deployment wizard is done, you will have a fully deployed Avi PoC/demo environment at your disposal, Enjoy 🙂