Using the CloudEOS and vEOS Router on Microsoft Azure

The CloudEOS and vEOS Router, which is based on the Arista EOS, runs as a virtual machine instance on Azure. Use the CloudEOS and vEOS Router 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 Image Updates

The process you use to update CloudEOS and vEOS Router 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).

Launching CloudEOS and vEOS Router Azure Instance

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

Below is a summary of each method.

  • Portal Marketplace This method launches an instance using the Azure Portal Marketplace UI.
    Note: Arista recommends using only the v2 instance type for better pricing and performance while creating an instance using Azure Marketplace. Also, make sure to enable Accelerated Networking on all the interfaces while creating an instance.
  • 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.

Note: Arista recommends using only the v2 instance type for better pricing and performance while creating an instance using Azure Marketplace. Also, make sure to enable Accelerated Networking on all the interfaces while creating an instance.
  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. Configuring the subnets
  8. Verify the information is correct and press "OK".
    Figure 7. Verification
  9. Read the Terms and Conditions, then press "Purchase".
    Figure 8. 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 CloudEOS and 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 Instance

To log into an instance, complete the following steps.

  1. Select the resource group containing your CloudEOS and vEOS Router deployment from the Resource groups list.
  2. Select the item publicIP.
    Figure 9. Selecting the PublicIP
  3. Locate the IP address and DNS name found on the Overview page.
    Figure 10. 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. Refer to the section Troubleshooting Instance for additional information.

vEOS Router Startup-Configuration using Instance Custom-Data

Describes launch employing custom-data information.

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

Custom-data can be used to pass in configuration for multiple entities. Currently, only the EOS configuration is supported in Azure. This configuration must be separated by start and end markers.

 

Entity

Markers

File Path

EOS 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 vEOS Router. Mis-configuration may result in an unrecoverable instance.
  • EOS configuration for all interfaces can be passed in during deployment. The configuration takes effect as the new instances attach to the 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 CloudEOS and vEOS Router deployment from the Resource groups list.
  2. Select the item CloudEOS and vEOS Router.
    Figure 11. Select the CloudEOS and vEOS Router
  3. Note the status of the VM. It should either be "Creating", "Starting", or "Running".
    Figure 12. Status of the VM
  4. Check the boot diagnostics for any error messages or warnings.
    Figure 13. Error messages and warnings