Skip to content

Commit

Permalink
Merge pull request #689 from nuagenetworks/dev
Browse files Browse the repository at this point in the history
Merge Dev into master for MetroAE 2.4.1
  • Loading branch information
mpiecuch-nuage authored Jun 25, 2018
2 parents 7fba10d + e7318ad commit d1f9e8a
Show file tree
Hide file tree
Showing 227 changed files with 4,083 additions and 2,487 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ reports
.metadata
hosts
.vscode
build
11 changes: 6 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Submitting Your Code and Becoming a Contributor to Nuage MetroAG
Thank you for your interest! The main steps for submitting your code to Nuage Networks MetroAG are:
# Submitting Your Code and Becoming a Contributor to Nuage Metro Automation Engine
Thank you for your interest! The main steps for submitting your code to Nuage Networks Metro Automation Engine are:
[1. Develop code on a fork](#1-develop-code-on-a-fork)
[2. Finalize code contribution](#2-finalize-code-contribution)
[3. Create pull request (PR)](#3-create-pull-request-pr)
Expand All @@ -16,18 +16,19 @@ Health | For system-level sanity validation and monitoring.
Destroy | For tear down of components and connections. This is one of two hypervisor-dependent roles (predeploy is the other). If you find yourself adding conditional execution based on the hypervisor anywhere else, it's probably a mistake.
Upgrade | For upgrading components from one release to another.
## 1. Develop Code on a Fork
1. Before you start developing code, create your own fork from the upstream MetroAG repo. [https://github.com/nuagenetworks/nuage-metro/](https://github.com/nuagenetworks/nuage-metro/)
1. Before you start developing code, create your own fork from the upstream Metro Automation Engine repo. [https://github.com/nuagenetworks/nuage-metro/](https://github.com/nuagenetworks/nuage-metro/)
2. Clone your own fork on your machine and switch to the _dev_ branch.
Note: By default the fork clones into `nuage-metro`. Consider creating a separate branch, other than dev, for feature development. Alternatively, you may provide a target dir for the clone, as shown below with `metro-fork`.
```
git clone https://github.com/<your handle>/nuage-metro.git metro-fork/
cd metro-fork/
git checkout dev
```
3. Develop and test all proposed contributions on the appropriate hypervisors in the `metro-fork` directory. If you choose not to provide support for one or more supported hypervisors, you must provide graceful error handling for those types. Note: All python files modified or submitted must successfully pass a 'flake8 --ignore=E501' test.

3. Develop and test all proposed contributions on the appropriate hypervisors in the `metro-fork` directory. If you choose not to provide support for one or more supported hypervisors, you must provide graceful error handling for those types. Testing includes running the program `flake8` over all Python files. The only exception to the flake8 rules that we accept is E501, line length. For example: `flake8 --ignore=E501`.

4. If you require any new User Input Variables:
* Extend the MetroAG variable files with sensible example values:<br> `build_vars.yml` and `user_creds.yml`.
* Extend the Metro Automation Engine variable files with sensible example values:<br> `build_vars.yml` and `user_creds.yml`.
* Ensure that the copies of the variable files in `roles/reset-build/files/` are identical to<br>`build_vars.yml` and `user_creds.yml`.
* Include comments with the variable specifications that explain the variable's purpose and acceptable values.
* Variables that are almost never modified may be included in standard Ansible variable locations, e.g. `roles/<rolename>/vars/main.yml`.
Expand Down
12 changes: 6 additions & 6 deletions Documentation/CUSTOMIZE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

## Prerequisites / Requirements

To confirm that your components are supported by MetroAG, see [README.md](../README.md).
To confirm that your components are supported by Metro Automation Engine, see [README.md](../README.md).

If you have not previously set up your MetroAG Ansible environment, see [SETUP.md](SETUP.md) before proceeding.
If you have not previously set up your Metro Automation Engine Ansible environment, see [SETUP.md](SETUP.md) before proceeding.

## Main Steps

Expand All @@ -19,9 +19,9 @@ Setting variables correctly ensures that when playbooks run they configure compo
`user_creds.yml` contains user credentials for VSD, VCIN and VSC. Default values are specified; you can modify them as necessary.

### `build_vars.yml`
`build_vars.yml` contains configuration parameters for each component. You determine which components MetroAG operates on, as well as *how* those components are operated on, by including them or excluding them in this file.
`build_vars.yml` contains configuration parameters for each component. You determine which components Metro Automation Engine operates on, as well as *how* those components are operated on, by including them or excluding them in this file.

If this is your first time deploying or upgrading with MetroAG, and you intend on automatically unzipping the required Nuage software files as described in step 2 below, ensure that you have specified the following source and target directories in `build_vars.yml`.
If this is your first time deploying or upgrading with Metro Automation Engine, and you intend on automatically unzipping the required Nuage software files as described in step 2 below, ensure that you have specified the following source and target directories in `build_vars.yml`.

```
nuage_zipped_files_dir: "<your_path_with_zipped_software>"
Expand All @@ -33,7 +33,7 @@ If you intend on deploying VNS with zero factor bootstrapping, you must customiz

## 2. Unzip Nuage Files

Before executing with MetroAG *for the first time*, ensure that the required unzipped Nuage software files (QCOW2, OVA, and Linux Package files) are available for the components being installed. Use one of the two methods below.
Before executing with Metro Automation Engine *for the first time*, ensure that the required unzipped Nuage software files (QCOW2, OVA, and Linux Package files) are available for the components being installed. Use one of the two methods below.
### Automatically
Ensure that you have specified the directory paths for zipped and unzipped files in `build_vars.yml`. (See step 1 above.)

Expand Down Expand Up @@ -98,4 +98,4 @@ Ask questions and get support via email.

Report bugs you find and suggest new features and enhancements via the [GitHub Issues](https://github.com/nuagenetworks/nuage-metro/issues "nuage-metro issues") feature.

You may also [contribute](../CONTRIBUTING.md) to Nuage MetroAG by submitting your own code to the project.
You may also [contribute](../CONTRIBUTING.md) to Nuage Metro Automation Engine by submitting your own code to the project.
19 changes: 9 additions & 10 deletions Documentation/DEPLOY.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# Deploying Nuage Networks Components with MetroAG
# Deploying Nuage Networks Components with Metro Automation Engine

You can execute MetroAG playbooks to perform the following installations:
You can execute Metro Automation Engine playbooks to perform the following installations:

* [Deploy All Components](#deploy-all-components)
* [Deploy Individual Modules](#deploy-individual-modules)
* [Install a Particular Role or Host](#install-a-particular-role-or-host)

## Prerequisites / Requirements

Before deploying any components, you must have previously [set up your Nuage MetroAG Ansible environment](SETUP.md "link to SETUP documentation") and [customized the environment for your target platform](CUSTOMIZE.md "link to CUSTOMIZE documentation").
Before deploying any components, you must have previously [set up your Nuage Metro Automation Engine Ansible environment](SETUP.md "link to SETUP documentation") and [customized the environment for your target platform](CUSTOMIZE.md "link to CUSTOMIZE documentation").

Make sure you have unzipped the Nuage Networks *.tar.gz files into their proper locations in the directory structure, so MetroAG can find the path of the Nuage components automatically when running commands.
Make sure you have unzipped the Nuage Networks *.tar.gz files into their proper locations in the directory structure, so Metro Automation Engine can find the path of the Nuage components automatically when running commands.

## Deploy All Components

MetroAG playbooks operate on components as you have defined them in `build_vars.yml`. If you run a playbook for a component not specified in `build_vars.yml`, the playbook skips all tasks associated with that component and runs to completion without error. Thus, if you run the `install_everything` playbook when only VRS appears in `build_vars.yml`, the playbook deploys VRS successfully while ignoring the tasks for the other components not specified. Deploy all specified components with one command as follows:
Metro Automation Engine playbooks operate on components as you have defined them in `build_vars.yml`. If you run a playbook for a component not specified in `build_vars.yml`, the playbook skips all tasks associated with that component and runs to completion without error. Thus, if you run the `install_everything` playbook when only VRS appears in `build_vars.yml`, the playbook deploys VRS successfully while ignoring the tasks for the other components not specified. Deploy all specified components with one command as follows:

```
./metro-ansible install_everything.yml
Expand All @@ -24,18 +24,17 @@ Note: `metro-ansible` is a shell script that executes `ansible-playbook` with th

## Deploy Individual Modules

MetroAG offers modular execution models in case you don't want to deploy all components together. See modules below.
Metro Automation Engine offers modular execution models in case you don't want to deploy all components together. See modules below.

Module | Command | Description
---|---|---
VCS | `./metro-ansible install_vcs` | Installs components for Virtualized Cloud Services
VNS | `./metro-ansible install_vns` | Installs VNS component on top of a VSP
DNS<br>(experimental) | `./metro-ansible install_dns` | Installs a DNS server based on `named`, with a zone file containing all necessary entries for VSP
OSC (experimental) | `./metro-ansible install_osc` | Installs an RDO OpenStack environment that is integrated against VSD

## Install a Particular Role or Host

MetroAG has a complete library of [playbooks](/playbooks "link to playbooks directory"), which are directly linked to each individual role. You can limit your deployment to a particular role or component, or you can skip steps you are confident need not be repeated. For example, to deploy only the VSD VM-images and get them ready for VSD software installation, run:
Metro Automation Engine has a complete library of [playbooks](/playbooks "link to playbooks directory"), which are directly linked to each individual role. You can limit your deployment to a particular role or component, or you can skip steps you are confident need not be repeated. For example, to deploy only the VSD VM-images and get them ready for VSD software installation, run:

```
./metro-ansible vsd_predeploy
Expand All @@ -51,7 +50,7 @@ MetroAG has a complete library of [playbooks](/playbooks "link to playbooks dire

### NSGV and Bootstrapping

MetroAG can automatically bootstrap (ZFB) a NSGV when deploying a VNS UTIL VM. To direct MetroAG to generate the ISO file needed for zero factor bootstrapping, perform the following tasks before deploying:
Metro Automation Engine can automatically bootstrap (ZFB) a NSGV when deploying a VNS UTIL VM. To direct Metro Automation Engine to generate the ISO file needed for zero factor bootstrapping, perform the following tasks before deploying:

* Customize variables in [`zfb_vars.yml`](/zfb_vars.yml "link to zfb_vars.yml file")
* Specify `bootstrap_method: zfb_metro,` in mynsgvs parameters in [`build_vars.yml`](/build_vars.yml "link to build_vars.yml file")
Expand Down Expand Up @@ -86,4 +85,4 @@ Ask questions and get support via email.

Report bugs you find and suggest new features and enhancements via the [GitHub Issues](https://github.com/nuagenetworks/nuage-metro/issues "nuage-metro issues") feature.

You may also [contribute](../CONTRIBUTING.md) to Nuage MetroAG by submitting your own code to the project.
You may also [contribute](../CONTRIBUTING.md) to Nuage Metro Automation Engine by submitting your own code to the project.
8 changes: 4 additions & 4 deletions Documentation/DESTROY.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Removing Nuage Networks Components with MetroAG
# Removing Nuage Networks Components with Metro Automation Engine

The main steps for removing a deployment are:

Expand All @@ -11,9 +11,9 @@ Use this procedure when you have previously deployed VSP components and would li

## 1. Check Existing Configuration

If you have previously deployed components with MetroAG and your configuration has not changed, you may proceed to step **2. Remove Component(s)**.
If you have previously deployed components with Metro Automation Engine and your configuration has not changed, you may proceed to step **2. Remove Component(s)**.

If you have not previously deployed components with MetroAG or your configuration has changed since, you will need to update your `build_vars.yml` file to reflect the new configuration.
If you have not previously deployed components with Metro Automation Engine or your configuration has changed since, you will need to update your `build_vars.yml` file to reflect the new configuration.

## 2. Remove Components

Expand Down Expand Up @@ -48,4 +48,4 @@ Ask questions and get support via email.

Report bugs you find and suggest new features and enhancements via the [GitHub Issues](https://github.com/nuagenetworks/nuage-metro/issues "nuage-metro issues") feature.

You may also [contribute](../CONTRIBUTING.md) to Nuage MetroAG by submitting your own code to the project.
You may also [contribute](../CONTRIBUTING.md) to Nuage Metro Automation Engine by submitting your own code to the project.
26 changes: 13 additions & 13 deletions Documentation/GETTING_STARTED.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# MetroAG Quick Start Guide
# Metro Automation Engine Quick Start Guide

## 1. Read documentation

1.1 [Readme](../README.md) for information on supported components
1.2 [Setup](SETUP.md) for setting up the MetroAG host and enabling SSH
1.2 [Setup](SETUP.md) for setting up the Metro Automation Engine host and enabling SSH
1.3 [Customize](CUSTOMIZE.md) for customizing user data and files
1.4 [Release Notes](RELEASE_NOTES.md) for information on the latest features

## 2. Setup MetroAG Host
## 2. Setup Metro Automation Engine Host

#### What's a MetroAG Host?
#### What's a Metro Automation Engine Host?

* It can be a VM, physical server or container.
* It requires CentOS 7.x or RHEL 7.x with basic packages.
* We recommend that you dedicate a machine (VM) for it.

2.1 Clone the master branch of the repo onto the **MetroAG Host**. Read [Setup](SETUP.md) for details.
2.1 Clone the master branch of the repo onto the **Metro Automation Engine Host**. Read [Setup](SETUP.md) for details.
```
git clone https://github.com.com/nuagenetworks/nuage-metro.git
```
Expand All @@ -26,9 +26,9 @@ $ sudo ./metro-setup.sh

## 3. Enable SSH Access

### 3.1 For MetroAG User
### 3.1 For Metro Automation Engine User

3.1.1 As MetroAG User, generate SSH keys: `ssh-keygen`.
3.1.1 As Metro Automation Engine User, generate SSH keys: `ssh-keygen`.
3.1.2 Copy SSH public key: `ssh-copy-id localhost`.

### 3.2 For Root User
Expand All @@ -45,28 +45,28 @@ See [Setup](SETUP.md) for more details about enabling SSH Access.

## 4. Install ovftool (for VMware only)

Download and install the [ovftool](https://www.vmware.com/support/developer/ovf/) from VMware. MetroAG uses ovftool for OVA operations.
Download and install the [ovftool](https://www.vmware.com/support/developer/ovf/) from VMware. Metro Automation Engine uses ovftool for OVA operations.

## 5. Prepare your environment

5.1 Unzip Nuage files: `./metro-ansible nuage_unzip`. See [CUSTOMIZE](CUSTOMIZE.md) for details.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Be sure that Nuage packages (tar.gz) are available on localhost (MetroAG host),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Be sure that Nuage packages (tar.gz) are available on localhost (Metro Automation Engine host),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;either in a native directory or NFS-mounted.

## Checklist for Target Servers

### KVM

- [ ] MetroAG host has ability to do a password-less SSH as root.
- [ ] Metro Automation Engine host has ability to do a password-less SSH as root.
- [ ] Sufficient disk space / resources exist to create VMs.
- [ ] KVM is installed.
- [ ] All required management and data bridges are created.

### vCenter

- [ ] User specified in build_vars.yml has required permissions to create and configure a VM.
- [ ] ovftool has been downloaded from VMware onto the MetroAG Host.
- [ ] pyvmomi has been installed on MetroAG Host: `pip install pyvmomi`.
- [ ] ovftool has been downloaded from VMware onto the Metro Automation Engine Host.
- [ ] pyvmomi has been installed on Metro Automation Engine Host: `pip install pyvmomi`.

## Next Steps

Expand All @@ -80,4 +80,4 @@ Ask questions and get support via email.

Report bugs you find and suggest new features and enhancements via the [GitHub Issues](https://github.com/nuagenetworks/nuage-metro/issues "nuage-metro issues") feature.

You may also [contribute](../CONTRIBUTING.md) to Nuage MetroAG by submitting your own code to the project.
You may also [contribute](../CONTRIBUTING.md) to Nuage Metro Automation Engine by submitting your own code to the project.
Loading

0 comments on commit d1f9e8a

Please sign in to comment.