Getting started with FRINX Machine¶
FRINX Machine is a dockerized deployment of multiple elements. Each one of them has specific responsibilities.
For installation, please refer to: FRINX Machine repository
FRINX Opendaylight (network automation solution)¶
- Connects to the devices in network
- Keeps connections between devices alive
- Pushes configuration data to devices
- Pulls configuration and operational data from devices
Netflix Conductor (workflow engine)¶
- Chains atomic tasks into complex workflows
- Defines, executes and monitors workflows (via REST or UI)
Elasticsearch (inventory and log data)¶
- Storing inventory data
- Storing log data
The goal is to provide a platform enabling easy definition, execution and monitoring of complex workflows using FRINX Opendaylight.
An example workflow could consist of:
- Pulling device IP and mgmt credentials from an external IPAM system
- Mounting a device
- Verifying the device is connected
- Executing a configuration template
- Unmounting a device
Uniconfig UI (user interface)¶
- This is the primary user interface for all things related to FRINX Machine
We chose Netflix’s conductor workflow engine since it has been proven to be highly scalable open-source technology that integrates very well with FRINX Opendaylight. Further information about conductor can be found at:
High Level Architecture¶
Following diagram outlines main functional components in the FRINX Machine solution:
FRINX Machine repository is available at: https://github.com/FRINXio/FRINX-machine
Frinx-conductor repository is available at: https://github.com/FRINXio/frinx-conductor
Specialized ODL tasks are available at: https://github.com/FRINXio/FRINX-machine/tree/master/microservices/netinfra_utils
Defining a workflow¶
Workflows are defined using a JSON based domain specific language (DSL) by wiring a set of tasks together. The tasks are either control tasks (fork, conditional etc) or application tasks (e.g. encode a file) that are executed on a remote machine.
FRINX Machine distribution comes in with number of pre-packaged workflows.
Detailed description of workflow and task definitions along with examples can be found at official Netflix Conductor documentation