(4 minute read)
Version: 3.0.0
MetroÆ is an automation engine that deploys and upgrades Nuage Networks components. You specify the individual details of your target platform, then let MetroÆ install, upgrade, destroy, or health-check the environment for you.
The procedures have changed substantially in version 3.0 to improve usability. If you have used previous versions of MetroÆ, please see RELEASE_NOTES.md for details.
One of the changes to make note of is the use of the metroae
command to do all MetroÆ operations, including Docker container management. To that end, there are two metroae
scripts to make note of:
./metroae
at the root of the repo is used for interacting directly with MetroÆ on the command line via a git workspace, e.g. clone../docker/metroae
is used for both managing the Docker container and interacting with MetroÆ from outside of the container.
You can use either command with exactly the same syntax to launch MetroÆ workflows, e.g. ./metroae install_everything
. The Docker container version comes with the additional container-management controls that are described in DOCKER.md.
MetroÆ supports deployment of the following components as VMs on the target server. These are the same target server types that are supported on the VSP platform.
Component | KVM (el7) Stand-alone (SA) |
KVM (el7) Clustered (HA) |
ESXi Stand-alone (SA) |
ESXi Clustered (HA) |
---|---|---|---|---|
VSD (Virtualized Services Directory) | X | X | X | X |
VSTAT (Elastic Backend for statistics) | X | X | X | X |
VSC (Virtualized Services Controller) | X | X | X | X |
VCIN (vCenter Integration Node) | X | X | ||
VNSUTIL (Virtualized Network Services-Utility) |
X | X |
Component | KVM (el6, el7,ubuntu 14.04/16.04) |
ESXi |
---|---|---|
VRS (Virtual Routing & Switching) | X | (upgrade only) |
Libnetwork on VRS nodes | X |
- DNS/NTP
MetroÆ supports upgrade of the following Nuage VSP components.
Component | KVM (el7) SA |
KVM (el7) HA |
ESXi SA |
ESXi HA |
---|---|---|---|---|
VSD | X | X | X | X |
VSTAT | X | X | X | X |
VSC | X | X | X | X |
VCIN | X | X |
The following components/operations are not supported in the beta release.
- dns
- gmv
- mesos
- nsgv bootstrap (install is supported)
- stcv
- vsr
- vrs-vm
- osc-integration
- AWS-based VSTAT upgrade
- upgrade of VRS through VCIN
-
Setup the MetroÆ host. Setup prepares the host for running MetroÆ, including retrieving the repository, installing prerequisite packages and setting up SSH access. You also have the option of installing MetroÆ in a container, and then working with it via CLI or the GUI.
-
Customize your deployment to match your network topology, and describe your Nuage Networks specifics.
-
Deploy new components, upgrade existing components, or run a health check on your system.
-
If things did not work out as expected, destroy your environment and redeploy.
MetroÆ workflows are the operations that can be performed against a specified deployment. All supported workflows can be listed via:
metroae --list
Workflows fall into the following categories:
Workflow | Operation Description |
---|---|
Predeploy | prepares infrastructure with necessary packages and makes the component(s) reachable |
Deploy | installs and configures component(s) |
Postdeploy | performs integration checks, and some basic commissioning tests |
Health | checks health for a running component without assuming it was deployed with MetroÆ |
Destroy | removes component(s) from the infrastructure |
Upgrade | upgrades component(s) from one release to another |
The following workflows are examples that combine together several of the above operations into simple to use groups:
- install_everything - Deploys all components specified in a deployment.
- destroy_everything - Destroys all components specified in a deployment.
- nuage_health - Checks the health of all components specified in a deployment.
MetroÆ is based off of the Python-based Ansible operations tool.
Ansible provides a method to easily define one or more actions to be performed on one or more computers. These tasks can target the local system Ansible is running from, as well as other systems that Ansible can reach over the network. The Ansible engine has minimal installation requirements. Python, with a few additional libraries, is all that is needed for the core engine. MetroÆ includes a few custom Python modules and scripts. Agent software is not required on the hosts to be managed. Communication with target hosts defaults to SSH. Ansible does not require the use of a persistent state engine. Every Ansible run determines state as it goes, and adjusts as necessary given the action requirements. Running Ansible requires only an inventory of potential targets, state directives, either expressed as an ad hoc action, or a series coded in a YAML file, and the credentials necessary to communicate with the target.
Playbooks are the language by which Ansible orchestrates, configures, administers and deploys systems. They are YAML-formatted files that collect one or more plays. Plays are one or more tasks linked to the hosts that they are to be executed on.
Roles build on the idea of include files and combine them to form clean, reusable abstractions. Roles are ways of automatically loading certain vars files, tasks, and handlers based on a known file structure.
Ansible Host: The host where MetroÆ runs. Ansible and the required packages are installed on this host. The Ansible Host must run el7 Linux host, e.g. CentOS 7.* or RHEL 7.*.
MetroÆ User: The user who runs MetroÆ to deploy and upgrade components.
Target Server: The hypervisor on which one or more VSP components are installed as VMs. Each deployment may contain more than one Target Server.
The Documentation directory contains the following guides to assist you in successfully working with MetroÆ. The current documentation covers using MetroÆ CLI only.
File name | Description |
---|---|
RELEASE_NOTES.md | New features, resolved issues and known limitations and issues |
GETTING_STARTED.md | MetroÆ Quick Start Guide |
SETUP.md | Set up your environment by cloning the repo, installing packages and configuring access. |
CUSTOMIZE.md | Populate variable files for a deployment and unzip Nuage software. |
DEPLOY.md | Deploy all VSP components or choose components individually. |
DESTROY.md | Remove existing deployment(s) and start over. |
UPGRADE_SA.md | Upgrade component(s) from one release to the next in a standalone environment. |
UPGRADE_HA.md | Upgrade component(s) from one release to the next in a clustered environment. |
VAULT_ENCRYPT.md | Safeguard sensitive data |
DOCKER.md | Installing and using MetroÆ Docker container |
Ask questions and get support via the forums on the MetroÆ site.
You may also contact us directly.
Outside Nokia: [email protected]
Internal Nokia: [email protected]
Report bugs you find and suggest new features and enhancements via the GitHub Issues feature.
You may also contribute to MetroÆ by submitting your own code to the project.
Apache License 2.0