Install VeloCloud Orchestrator
This section discusses the VeloCloud Orchestrator installation.
Prerequisites
This section discusses the prerequisites that must be met before installing the VeloCloud Orchestrator.
Instance Requirements
Arista recommends installation of the Orchestrator and Gateway applications as a virtual machine (i.e., guest instance) on an existing hypervisor.
The VeloCloud Orchestrator requires the following minimal guest instance specifications:
- 8 Intel vCPU's at 2.5 Ghz or higher
Note: Although we recommend using Intel Xeon processors, similar Intel or AMD processors having the same or greater CPU frequency are also acceptable.
- 64 GB of memory
- Required Minimum IOPS: 5,000 IOPS
- VeloCloud Orchestrator requires 4 SSD based persistent volumes (expandable through LVM if needed)
- 192GB x 1 - Root
- 1TB x 1 - Store
- 500GB x 1 - Store2
- 1TB x 1 - Store3
- 1 Gbps NIC
- Ubuntu x64 server VM compatibility
- Single public IP address (Can be made available through NAT)
Upstream Firewall Configuration
The upstream firewall needs to be configured to allow inbound HTTP (TCP/80) as well as HTTPS (TCP/443). If a stateful firewall is in place, established connections that are outbound originated should also be allowed to facilitate upgrades and security updates.
External Services
The VeloCloud Orchestrator relies on several external services. Before proceeding with an installation, ensure that licenses are available for each of the services.
Google Maps
Google Maps is used for displaying Edges and data centers on a map. No account needs to be created with Google to utilize the functionality. However, Internet access must be available to the VeloCloud Orchestrator instance in order for the service to be available.
The service is limited to 25,000 map loads each day, for more than 90 consecutive days. Arista does not anticipate exceeding these limits for nominal use of the VeloCloud Orchestrator.
Twilio
Twilio is used for SMS-based alerting to enterprise customers to notify them of Edge or link outage events. An account needs to be created and funded at http://www.twilio.com.
The account can be provisioned in the VeloCloud Orchestrator through the Operator Portal's System Properties page. The account will be provisioned through a system property, as described later in the guide.
MaxMind
MaxMind is a geolocation service. It is used to automatically detect Edge and Gateway locations and ISP names based on IP address. If this service is deactivated, then geolocation information will need to be updated manually. The account can be provisioned in the VeloCloud Orchestrator through the Operator Portal's System Properties page.
For additional information, see Configure System Properties.
Installation Procedures
This section discusses installation.
Cloud-init Preparation
This section discusses how to use the cloud-init package to handle the early initialization of instances.
About cloud-init
Cloud-init is a Linux package responsible for handling the early initialization of instances. If available in the distributions, it allows for configuration of many common parameters of the instance directly after installation. This creates a fully functional instance that is configured based on a series of inputs.
Cloud-init's behavior can be configured via user-data. User-data can be given by the user at instance launch time. This is typically done by attaching a secondary disk in ISO format that cloud-init will look for at first boot time. This disk contains all early configuration data that will be applied at that time.
The VeloCloud Orchestrator supports cloud-init and all essential configurations can be packaged in an ISO image.
Create the Cloud-init meta-data File
The final installation configuration options are set with a pair of cloud-init configuration files. The first installation configuration file contains the metadata. Create this file with a text editor and label it meta-data. This file provides information that identifies the instance of VeloCloud Orchestrator being installed. The instance-id can be any identifying name, and the local-hostname should be a host name that follows your site standards, for example:
instance-id: vco01 local-hostname: vco-01
Additionally, you can specify network interface information (if the network is not configured via DHCP, for example):
instance-id: vco01 local-hostname: vco-01 network-interfaces: | auto eth0 iface eth0 inet static address 10.0.1.2 network 10.0.1.0 netmask 255.255.255.0 broadcast 10.0.1.255 gateway 10.0.1.1
Create the Cloud-init User-data File
The second installation configuration option file is the user data file. This file provides information about users on the system. Create it with a text editor and call it user-data. This file will be used to enable access to the installation of VeloCloud Orchestrator. The following is an example of what the user-data file will look like:
#cloud-config password: Velocloud123 chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...SDvz このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 - ssh-rsa AAB...QTuo このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 vco: super_users: list: | このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。:password1 remove_default_users: True system_properties: list: | mail.smtp.port:34 mail.smtp.host:smtp.yourdomain.com service.maxmind.enable:True service.maxmind.license:todo_license service.maxmind.userid:todo_user service.twilio.phoneNumber:222123123 network.public.address:222123123 write_files: - path: /etc/nginx/velocloud/ssl/server.crt permissions: '0644' content: "-----BEGIN CERTIFICATE-----\nMI….ow==\n-----END CERTIFICATE-----\n" - path: /etc/nginx/velocloud/ssl/server.key permissions: '0600' content: "-----BEGIN RSA PRIVATE KEY-----\nMII...D/JQ==\n-----END RSA PRIVATE KEY-----\n" - path: /etc/nginx/velocloud/ssl/velocloudCA.crt
- The password contains the plain-text password for the vcadmin user.
- The chpasswd line turns off password expiration to prevent the first login from immediately prompting for a change of password. This is optional.
The ssh_pwauth line enables SSH login. The ssh_authorized_keys line begins a block of one or more authorized keys. Each public SSH key listed on the ssh-rsa lines will be added to the vcadmin
~/.ssh/authorized_keys file.
In this example, two keys are listed. For this example, the key has been truncated. In a real file, the entire public key must be listed. Note that the ssh-rsa lines must be preceded by two spaces, followed by a hyphen, followed by another space.
The vco section specifies configured VeloCloud Orchestrator services.
super_users contains list of Arista Super Operator accounts and corresponding passwords.
The system_properties section allows to customize Orchestrator System Properties. See System Properties for details regarding system properties configuration.
server.key files in the /etc/nginx/velocloud/ssl/ folder with user-supplied files.
Create an ISO file
Once you have completed your files, they need to be packaged into an ISO image. This ISO image is used as a virtual configuration CD with the virtual machine. This ISO image, called vco01-cidata.iso, is created with the following command on a Linux system:
genisoimage -output vco01-cidata.iso -volid cidata -joliet -rock user-data meta-data
Transfer the newly created ISO image to the datastore on the host running Arista.
Install on VMware
VMware vSphere provides a means of deploying and managing virtual machine resources. This section explains how to run the Orchestrator using the VMware vSphere Client.
Deploy OVA Template
Attach ISO Image as a CD/DVD to Virtual Machine
- Right-click the newly-added Orchestrator VM and select Edit Settings.
- From the Virtual Machine Properties window, select CD/DVD Drive.
- Select the Use an ISO image option.
- Browse to find the ISO image you created earlier (we called ours vco01-cidata.iso), and then select it. The ISO can be found in the datastore that you uploaded it to, in the folder that you created.
- Select Connect on Power On.
- Select OK to exit the Properties screen.
Run the Orchestrator Virtual Machine
To start up the Orchestrator virtual machine:
Install on KVM
This section discusses how to run the Orchestrator using the libvirt. This deployment was tested in Ubuntu 18.04 LTS.
Images
- ROOTFS
- STORE
- STORE2
- STORE3
The images are thin provisioned on deployment.
Start by copying the images to the KVM server. In addition, you must copy the cloud-init iso build as described in the previous section.
XML Sample
<domain type='kvm' id='49'> <name>vco</name> <uuid>b0ff25bc-72b8-6ccb-e777-fdc0f4733e05</uuid> <memory unit='KiB'>12388608</memory> <currentMemory unit='KiB'>12388608</currentMemory> <vcpu>2</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type>hvm</type> </os> <features> <acpi/> <apic/> <pae/> </features> <cpu mode='custom' match='exact'> <model fallback='allow'>SandyBridge</model> <vendor>Intel</vendor> <feature policy='require' name='vme'/> <feature policy='require' name='dtes64'/> <feature policy='require' name='invpcid'/> <feature policy='require' name='vmx'/> <feature policy='require' name='erms'/> <feature policy='require' name='xtpr'/> <feature policy='require' name='smep'/> <feature policy='require' name='pbe'/> <feature policy='require' name='est'/> <feature policy='require' name='monitor'/> <feature policy='require' name='smx'/> <feature policy='require' name='abm'/> <feature policy='require' name='tm'/> <feature policy='require' name='acpi'/> <feature policy='require' name='fma'/> <feature policy='require' name='osxsave'/> <feature policy='require' name='ht'/> <feature policy='require' name='dca'/> <feature policy='require' name='pdcm'/> <feature policy='require' name='pdpe1gb'/> <feature policy='require' name='fsgsbase'/> <feature policy='require' name='f16c'/> <feature policy='require' name='ds'/> <feature policy='require' name='tm2'/> <feature policy='require' name='avx2'/> <feature policy='require' name='ss'/> <feature policy='require' name='bmi1'/> <feature policy='require' name='bmi2'/> <feature policy='require' name='pcid'/> <feature policy='require' name='ds_cpl'/> <feature policy='require' name='movbe'/> <feature policy='require' name='rdrand'/> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/bin/kvm-spice</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/images/vco/rootfs.qcow2'/> <target dev='hda' bus='ide'/> <alias name='ide0-0-0'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/ images/vco/store.qcow2'/> <target dev='hdb' bus='ide'/> <alias name='ide0-0-1'/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/ images/vco/store2.qcow2'/> <target dev='hdc' bus='ide'/> <alias name='ide0-0-2'/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' /> <source file='/images/vco/store3.qcow2' /> <target dev='hdd' bus='ide' /> <alias name='ide0-0-3' /> <address type='drive' controller='0' bus='1' target='0' unit='1' /> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/ images/vco/seed.iso'/> <target dev='sdb' bus='sata'/> <readonly/> <alias name='sata1-0-0'/> <address type='drive' controller='1' bus='0' target='0' unit='0'/> </disk> <controller type='usb' index='0'> <alias name='usb0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='0' model='pci-root'> <alias name='pci.0'/> </controller> <controller type='ide' index='0'> <alias name='ide0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <interface type='direct'> <source dev='eth0' mode='vepa'/> </interface> <serial type='pty'> <source path='/dev/pts/3'/> <target port='0'/> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/3'> <source path='/dev/pts/3'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </memballoon> </devices> <seclabel type='none' /> <!-- <seclabel type='dynamic' model='apparmor' relabel='yes'/> --> </domain>
Create the VM
To create the VM using the standard virsh commands:
virsh define vco.xml virsh start vco.xml
Install on AWS
This section discusses how to install VeloCloud Orchestrator on AWS.
Minimum Instance Requirements
See the first section of the Orchestrator Installation, titled Instance Requirements, and select an AWS instance type matching these requirements. Both CPU and Memory requirements must be satisfied. Example: use c4.2xlarge or larger; r4.2xlarge or larger
Request an AMI Image
Request an AMI ID from Arista. It will be shared with the customer account. Have an Amazon AWS account ID ready when requesting AMI access.
Installation
Initial Configuration Tasks
- Configure system properties
- Set up initial operator profile
- Set up operator accounts
- Create gateways
- Setup gateway pools
- Create customer account / partner account
Install an SSL Certificate
This section discusses how to install an SSL certificate.
To install an SSL certificate:
Configure System Properties
This section discusses how to configure System Properties, which provide a mechanism to control the system-wide behavior of the VeloCloud SD-WAN.
System Properties can be set initially using the cloud-init config file. For additional information, see Cloud-init Preparation. The following properties need to be configured to ensure proper operation of the service.
System Name
Enter a fully qualified Arista domain name in the network.public.address system property.
Google Maps
Google Maps is used for displaying edges and data centers on a map. Maps may fail to display without a license key. The Orchestrator will continue to function properly, but browser maps will not be available in this case.
- Login into https://console.developers.google.com.
- Create a new project, if one is not already created.
- Locate the button Enable API. Select the Google Maps APIs and enable both Google Maps JavaScript API and Google Maps Geolocation API.
- On the left side of the screen, click the Credentials link.
- Under the Credentials page, click Create Credentials, then select API key. Create an API key.
- Set the
service.client.googleMapsApi.keysystem property to API key. - Set
service.client.googleMapsApi.enableto “true.”
Twilio
Twilio is a messaging service that allows you to receive alerts via SMS. It is optional. The account details can be entered into Arista through the Operator Portal's System Properties page. The properties are called:
- service.twilio.enable allows the service to be deactivated in the event that no Internet access is available to the Arista
- service.twilio.accountSid
- service.twilio.authToken
- service.twilio.phoneNumber in (nnn)nnn-nnnn format
Obtain the service at https://www.twilio.com.
MaxMind
MaxMind is a geolocations service. It is used to automatically detect Edge and Gateway locations and ISP names based on an IP address. If this service is deactivated, then geolocation information will need to be updated manually. The account details can be entered into the Arista through the Operator Portal's System Properties page. You can configure:
- service.maxmind.enable allows the service to be deactivated in the event that no Internet access is available to the Arista
- service.maxmind.userid holds the user identification supplied by MaxMind during the account creation
- service.maxmind.license holds the license key supplied by MaxMind
Obtain the license at: https://www.maxmind.com/en/geoip-api-web-services.
Email services can be used for both sending the Edge activation messages as well as for alarms and notifications. It is not required, but it is strongly recommended that you configure this as part of Arista operations. The following system properties are available to configure the external email service used by the Orchestrator:
- mail.smtp.auth.pass- SMTP user password.
- mail.smtp.auth.user- SMTP user for authentication.
- mail.smtp.host- relay server for email originated from Arista.
- mail.smtp.port- SMTP port.
- mail.smtp.secureConnection- use SSL for SMTP traffic.
Upgrade VeloCloud Orchestrator
This section discusses how to upgrade the VeloCloud Orchestrator.
To upgrade the Orchestrator:
Expand Disk Size
All storage volumes are configured as LVM devices. They can be resized online by providing the underlying virtualization technology to support online disk expansion. Disks are expanded automatically via cloud-init when the VM boots.
To expand disks after boot: