npm package: @itentialopensource/nso-port-turn-up-deployment
Description: NSO-Port-Turn-Up-Deployment
Author: Itential Artifacts
Latest version: 0.2.3-2023.1.0

<!-- This is a comment in md (Markdown) format, it will not be visible to the end user -->

<!-- Update the below line with your artifact name -->
# NSO Port Turn Up

<!-- Leave TOC intact unless you've added or removed headers -->
## Table of Contents

* [Overview](#overview)
* [Installation Prerequisites](#installation-prerequisites)
* [Requirements](#requirements)
* [Features](#features)
* [Future Enhancements](#future-enhancements)
* [How to Install](#how-to-install)
* [How to Run](#how-to-run)
* [Additional Information](#additional-information)

## Overview

The Port Turn Up NSO artifact consists of several workflows and command templates meant to serve as a solution for performing a port turn up on Cisco routers running IOS software.
In this artifact, we are using Cisco's Network Service Orchestration (NSO).
The included pre and post checks should be customized to suit the needs of the target device. Additionally, the implementation of routing network traffic is left up to the user to provide. The artifact provides an indication of where a failover and restore should take place but assumes no responsibility for these tasks.
<!-- Write a few sentences about the artifact and explain the use case(s) -->
<!-- Ex.: The Migration Wizard enables IAP users to conveniently move their automation use cases between different IAP environments -->
<!-- (e.g. from Dev to Pre-Production or from Lab to Production). -->

<!-- Workflow(s) Image Placeholder - TO BE ADDED DIRECTLY TO GitLab -->
<!-- REPLACE COMMENT BELOW WITH IMAGE OF YOUR MAIN WORKFLOW -->

<table><tr><td>
  <img src="./images/NSO Port Turn Up Deployment.png" alt="workflow" width="800px">
</td></tr></table>

<!-- REPLACE COMMENT ABOVE WITH IMAGE OF YOUR MAIN WORKFLOW -->

<!-- ADD ESTIMATED RUN TIME HERE -->
<!-- e.g. Estimated Run Time: 34 min. -->
_Estimated Run Time_: ~2 min

## Installation Prerequisites

In order to use this artifact, users will have to satisfy the following pre-requisites:

Itential Automation Platform

* ^2023.1

App-Artifacts

* ^6.5.1-2023.1.0
  
### Port-Turn-Up Service Model

* Copy the service model folder to the NSO packages folder Ex: `cp -Rv <!--PWD-->/NSO-Port-Turn-Up-Deployment/assets/service-models/port-turn-up.tar.gz /var/opt/ncs/packages/`
* If you wish to untar it then navigate to the src folder inside the copied service model directory: `cd port-turn-up/src`
* If you wish to untar it then compile the service mode. Run `make clean all` 
* Log into NSO cli: `ncs_cli -u admin -C`
* Load the packages: `packages reload`
* Ex. output:
```
admin@ncs# packages reload
reload-result {
    package port-turn-up
    result true
}
```

## Requirements

This artifact requires the following:
* Cisco IOS Device

<!-- Unordered list highlighting the requirements of the artifact -->
<!-- EXAMPLE -->
<!-- * cisco ios device -->
<!-- * Ansible or NSO (with F5 NED) * -->

## Features

The main benefits and features of the artifact are outlined below.

* Automatically checks for device type
* Displays dry-run to user (asking for confirmation) prior to pushing the config to the device
* Supports stub mode
<!-- Unordered list highlighting the most exciting features of the artifact -->
<!-- EXAMPLE -->
<!-- * Automatically checks for device type -->
<!-- * Displays dry-run to user (asking for confirmation) prior to pushing config to the device -->
<!-- * Verifies downloaded file integrity (using md5), will try to download again if failed -->


## Future Enhancements

This artifact would provide support for different device operation system types like, IOSXR, Arista, F5, Nokia and etc.

<!-- OPTIONAL - Mention if the artifact will be enhanced with additional features on the road map -->
<!-- Ex.: This artifact would support Cisco XR and F5 devices -->

## How to Install

To install the artifact:

* Verify you are running a supported version of the Itential Automation Platform (IAP) as listed above in the [Requirements](#requirements) section in order to install the artifact. If you do not currently have App-Artifacts installed on your server, please download the installer from your Nexus repository. Refer to the install instructions included in the App-Artifacts README.
* The artifact can be installed from within App-Artifacts. Simply search for the name of your desired artifact and click the install button (as shown below).

<!-- REPLACE BELOW WITH IMAGE OF YOUR PUBLISHED ARTIFACT -->
<table><tr><td>
  <img src="./images/install.png" alt="install" width="600px">
</td></tr></table>
<!-- REPLACE ABOVE WITH IMAGE OF YOUR PUBLISHED ARTIFACT -->

* Alternatively, you may clone this repository and run `npm pack` to create a tarball which can then be installed via the offline installer in App-Artifacts. Consult the documentation for App-Artifacts for further information.

<!-- OPTIONAL - Explain if external components are required outside of IAP -->
<!-- Ex.: The Ansible roles required for this artifact can be found in the repository located at https://gitlab.com/itentialopensource/pre-built-automations/hello-world -->

## How to Run

Use the following to run this artifact:

This artifact may be run from Operations Manager by clicking Run for the NSO-Port-Turn-Up-Deployment Operations Manager automation. The user will be presented with a form to select options customize which device type, interface type, IP Address, subnet mask, and allowed VLAN. A description is required to run this artifact. The shutdown option is to turn down the device.

## Additional Information

Please use your Itential Customer Success account if you need support when using this artifact.


<!-- Explain the main entrypoint(s) for this artifact: Operations Manager item, Workflow, Postman, etc. -->