0

Aviatrix Kickstart

Aviatrix Kickstart is an all-in-one containerized software package that deploys the Aviatrix Controller and, optionally, a global transit use case in AWS and Azure along with test instances in AWS. This drastically simplifies Aviatrix deployment in a test environment allowing users to experience the benefit of the Aviatrix cloud networking platform for less than $1 per hour. The following modular components are installed:

  • Aviatrix Controller
  • Aviatrix Multi-Cloud Network Architecture (MCNA) Transit in AWS and Aviatrix Transit in Azure that are peered (optional)
  • Test Instances in AWS (optional)

Pre-requisites

  • Docker installed and left running
  • Minimal knowledge of the vi text editor
  • AWS account
  • Azure account (optional)

The environment is built by running a Docker Container on your client PC.

From the Docker Container, Terraform scripts are run that spawn the resources. No prior knowledge of Terraform is needed to run the Aviatrix Kickstart bundle. Once the environment is built, there are several test use cases you can run on your own with minimal instruction.

Cost

This costs less than $1 an hour as shown here:

Description

Unit Cost

Quantity

Hourly Cost

Cost for 8 hours

Cost for 24 hours

Aviatrix Controller in AWS (t3.large)

$0.09

1

$0.09

 

 

Aviatrix Gateway in AWS (t2.micro)

$0.01

3

$0.03

 

 

Test instances in AWS (t2.micro)

$0.01

2

$0.02

 

 

Aviatrix Gateways in Azure (B1s)

$0.01

3

$0.03

 

 

Aviatrix Encrypted Peering

$0.16

4

$0.64

 

 

Aviatrix Transit Peering

$0.16

1

$0.16

 

 

Total Cost for MCNA Kickstart (including minimal network egress charges)

 

 

$0.97

$7.76

$23.28

Build

The initial installation can be run simply by entering:

% docker run -it aviatrix/kickstart:latest bash

From there, the script follows this workflow:

Verification

Run the Test Cases here.

Tearing Down the Environment

MCNA 

From the Container image shell, make sure you are in the /root/mcna/ directory, and enter:

terraform destroy 

It will list the resources that will be destroyed. You will need to confirm by typing Yes

Controller 

From the Container image shell, make sure you are in the /root/controller/ directory, and enter:

terraform destroy

It will list the resources that will be destroyed. You will need to confirm by typing Yes . 

Note: If you choose to manually upgrade the Aviatrix Controller version, the terraform destroy command might not complete successfully. In that case, you would have to make sure that the terraform version would need to be upgraded accordingly as well 

Troubleshooting

If, at any point, the Terraform scripts flag an error because of a missing (such as SSH key pair) or duplicate (such as IAM role already existing) resource, you can type Control+C to return to the Container image shell.

Make the necessary corrections offline and return to the shell.

Make sure you are in the /root directory, and enter:

# source ./kickstart.sh

If the Controller had already been created at this point, it will be skipped, and you will be asked whether you wish to install something else.

Similarly, since the installation script is modular, you can re-run it at any point if you wish to add something. For example, if you initially decide against creating the Test instances, but then later decide to create them, you can do so. Simple make sure you are in the /root directory, and enter:

# source ./kickstart.sh

If you accidentally exit from the Docker Container image and have resources built in the clouds, you can re-enter the Container image with the following workflow starting from the accidental exit:

root@ec702f570a20:~# exit
exit
% docker ps -a
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS                          PORTS               NAMES
ec702f570a20        aviatrix/kickstart:0.5   "bash"              6 hours ago         Exited (0) About a minute ago                       lucid_napier
% docker start -a -i ec702f570a20
   #
  # #    #    #     #      ##     #####  #####      #    #    #
 #   #   #    #     #     #  #      #    #    #     #     #  #
#     #  #    #     #    #    #     #    #    #     #      ##
#######  #    #     #    ######     #    #####      #      ##
#     #   #  #      #    #    #     #    #   #      #     #  #
#     #    ##       #    #    #     #    #    #     #    #    #

#    #
#   #       #     ####   #    #   ####    #####    ##    #####    #####
#  #        #    #    #  #   #   #          #     #  #   #    #     #
###         #    #       ####     ####      #    #    #  #    #     #
#  #        #    #       #  #         #     #    ######  #####      #
#   #       #    #    #  #   #   #    #     #    #    #  #   #      #
#    #      #     ####   #    #   ####      #    #    #  #    #     #


                                                             ___.----.____
                                                     __,--(_,-'       ,-'
                                                 _,-'               ,-'
                                             _,-'                ,-'
                                          ,-'    ()           ,-'
                                       ,-'    ()           ,-'
                                    ,-'  __..--""       ,-'
                                 ,-'.--""   ,-'      ,-'
              |\         __..--""        ,-'      ,-':
              | \__..--""     ______  ,-'     _,-'   :
         __..--""         ,-'\_____/-'    _,-'       :
 __..--""              ,-' ,-'  ,-'   _,-'____/      :
   `---...___       ,-' ,-'  ,-'  _,-'    _,-'       :
             ```-,-' ,-'  ,-' _,-'    _,-'           :
              |--\,-'___,-'--"" ___,-'-...___        :
              |_..--""                       ```---..:

--> .aws exists, skipping aws configure.
--> Controller already launched, skipping.


--> Do you want to launch the Aviatrix transit in AWS? (y/n)? n


--> Do you want to launch test EC2 instances in the AWS Spoke VPCs? (y/n)? n


--> Do you want to launch the Aviatrix transit in Azure? (y/n)? n

--> Aviatrix Kickstart is done. Your controller IP is <A.B.C.D>.
root@ec702f570a20:~#

 

While performing a terraform destroy, the following error message is displayed: 

Error: controller version validation failed: current Terraform branch does not support controller version: UserConnect-6.1. Please go to 'https://www.terraform.io/docs/providers/aviatrix/guides/release-compatibility.html' for version construct instructions 

This happens when the Aviatrix Controller is upgraded manually outside of the scope of Kickstart. To fix this, simply edit the ~/mcna/aviatrix_aws.tf file. Replace the Aviatrix Provider version on line 4 in accordance with the table at https://registry.terraform.io/providers/AviatrixSystems/aviatrix/latest/docs/guides/release-compatibility. For example, if you are upgrading to UserConnect 6.1.1280, then as per the table at the link above, the Aviatrix Provider version on line 4 should be changed to 2.16.2. Following that, issue a terraform init from the Shell prompt. Then you can resume the terraform destroy command 

Don't forget to run the test cases!

If you have any questions about Aviatrix Kickstart, don't hesitate to contact us at kickstart@aviatrix.com.

Reply Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
Like Follow
  • 3 days agoLast active
  • 41Views
  • 1 Following