Using the CloudEOS and vEOS Router Appliance on Microsoft Azure

The CloudEOS and vEOS Router Appliance, which is based on the Arista EOS, runs as a virtual machine instance on Azure. Use the CloudEOS and vEOS Router Appliance to create the various types of virtual machine router instances you need for your Azure deployment. For example, gateway routers and transit routers.

CloudEOS and vEOS Router Appliance Image Updates

The process you use to update CloudEOS and vEOS Router Appliance images is the standard update process used for EOS images.

For details on the steps to use, refer to the Arista EOS User Manual, see https://www.arista.com/en/support/product-documentation.

System Requirements

Describes the CloudEOS and vEOS Router Appliance Azure minimum support requirements.

The CloudEOS and vEOS Router Appliance Azure instance supports the following instance types:

  • D2_v3 with 2 cores, 8.0GiB RAM, 2 NICs (1,000 Mbps), and a 4GB OS disk.
  • D4_v3 with 4 cores, 16.0GiB RAM, 2 NICs (2,000 Mbps), and a 4GB OS disk.
  • D8_v3 with 8 cores, 32.0GiB RAM, 4 NICs (4,000 Mbps), and a 4GB OS disk.
  • D16_v3 with 16 cores, 64.0GiB RAM, 8 NICs (8,000 Mbps), and a 4GB OS disk.

Launching the CloudEOS and vEOS Router Appliance Azure Instance

There are two methods which can be used to launch a CloudEOS and vEOS Router Appliance instance.

Below is a summary of each method.

  • Portal Marketplace: This method launches an instance using the Azure Portal Marketplace UI.
  • Azure CLI 2.0: This method launches an instance using a custom template through the Azure CLI 2.0. The primary advantage of a CLI deployment is the ability to include custom-data and customize your deployment.

Do not deploy the same template twice into a single resource group, because this creates name conflicts. To deploy multiple instances into the same resource group, modify the template, so all resources are renamed, and all IP addresses are unique.

Creating an Instance using the Portal Marketplace

To create an instance using the Portal Marketplace, complete the following steps.

  1. In the Azure portal, select the green '+' button in the top left of the screen.
  2. In the search bar, type "Arista" and press enter.
    Figure 1. Type '"Arista"

  3. Select the Arista offer you are interested in.
    Figure 2. Arista Selection

  4. Select "Create".
    Figure 3. Select "Create"

  5. Fill out the required information and press "OK".
    Figure 4. Required Information

  6. Configure the VNet and press "OK".
    Figure 5. Configuring the VNet

  7. Configure the subnets and press "OK".
    Figure 6. Verification

  8. Read the Terms and Conditions, then press "Purchase".
    Figure 7. Terms and Conditions

Creating an Instance under Azure CLI 2.0

To create an instance under Azure CLI 2.0, complete the following steps.

  1. Install Azure CLI 2.0 (https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest).
  2. Run az login and follow the prompts to authorize the machine.
  3. Download the template and parameters files from the GitHub repository. https://github.com/Azure/azure-quickstart-templates.
  4. Open <prefix>-parameters.json:. Locate the ./single_line_json.sh user_data.txt script.
  5. Copy and paste the generated output into the customData value field of the JSON parameters file.
  6. Use the script as in the following example:
    #!/usr/bin/bash
    cat $1 | python -c 'import json, sys; print( json.dumps( sys.stdin.read() ) )'
  7. Use the template and parameters JSON files to launch a vEOS Router instance in Azure using the Azure CLI 2.0.
    $ az group create --name ExampleGroup --location "Central US"
    Note: You must use the same location as the storage account where the VHD image is uploaded.
    $ az group deployment create \
    --name ExampleDeployment \
    --resource-group ExampleGroup \
    --template-file <prefix>-template.json \
    --parameters @<prefix>-parameters.json
    Note: If you are using a newer version of the Azure CLI 2.0, you may encounter a parameter file parsing bug. To fix this, remove the @ symbol before the parameters filename.

Logging into an Instance

To log into an instance, complete the following steps.

  1. Select the resource group containing your vEOS Router deployment from the Resource Groups list.
  2. Select the item publicIP.
    Figure 8. Selecting the PublicIP

  3. Locate the IP address and DNS name found on the Overview page.
    Figure 9. Locating the IP address and DNS

     

    Note: If either of these fields is not populated, your instance still deploys. Refresh the page after a couple of minutes.
  4. Secure Shell (SSH) to your Virtual Machine (VM) using the IP address or Domain Name Server (DNS) name found in the previous step, using the credentials you gave when you initially setup the VM.
    bash# ssh This email address is being protected from spambots. You need JavaScript enabled to view it..1 
    Password: *********
    Note: It may take between 5-10 minutes for the instance to become reachable after the deployment starts.

CloudEOS and vEOS Router Startup-Configuration using Instance Custom-Data

Describes launch employing custom-data information.

During the initial launching of the CloudEOS and vEOS Router Instance, Azure provides a feature to upload custom-data. The administrator can upload the CloudEOS and vEOS Router configuration using custom-data at the time of the launching of the CloudEOS and vEOS Router Instance.

Custom-data can be used to pass in configuration for multiple entities. This configuration must be separated by start and end markers.

Entity Markers File Path
CloudEOS and vEOS CLI configuration file
%EOS-STARTUP-CONFIG-START% 
%EOS-STARTUP-CONFIG-END%
N/A
Cloud HA configuration file
%CLOUDHA-CONFIG-START% 
%CLOUDHA-CONFIG-END%
/mnt/flash/cloud_ha_config.json

Note, the following regarding the custom-data.

  • Markers must be at the beginning of the line.
  • The user is expected to have tested the configurations on a live system before using the configurations to deploy the new CloudEOS and vEOS Router. Mis-configuration may result in an unrecoverable instance.
  • The CloudEOS and vEOS Router configuration for all interfaces can be passed in during deployment. The configuration takes effect as the new instances attach to the CloudEOS and vEOS Router.

Sample Instance Custom-Data

Illustrates a sample Instance with custom-data.

%EOS-STARTUP-CONFIG-START% 
! EOS startup config 
username admin nopassword 
username admin sshkey file flash:key.pub
%EOS-STARTUP-CONFIG-END%

 

Providing Startup-Configuration using Azure Custom-Data

Adding custom-data to an instance.

Currently, custom-data can only be used on instances deployed using the Azure CLI 2.0.

In order to add custom-data to an instance, the custom-data must be provided as a single-line value with '\n' delimiting newlines.

Use the single_line_json.sh script to convert your custom-data into this format.

#!/usr/bin/bash
cat $1 | python -c 'import json, sys; print( json.dumps( sys.stdin.read() ) )'

Usage of the script is as follows:

./single_line_json.sh user_data.txt

Copy and paste the generated output into the customData value field of the JSON parameters file.

Troubleshooting Instance

To troubleshoot the instance, complete the following steps.

  1. Select the resource group containing your vEOS Router deployment from the Resource groups list.
  2. Select the item CloudEOS and vEOS Router.
    Figure 10. Select the CloudEOS and vEOS Router

  3. Note the status of the VM. It should either be "Creating", "Starting", or "Running".
    Figure 11. Status of the VM

  4. Check the boot diagnostics for any error messages or warnings.
    Figure 12. Error Messages and Warnings