Thanks to visit codestin.com
Credit goes to github.com

Skip to content

SvetaHBar/nmstate

 
 

Repository files navigation

We are nmstate!

A declarative network manager API for hosts.

Build Status Coverage Status

What is it?

NMState is a library with an accompanying command line tool that manages host networking settings in a declarative manner. The networking state is described by a pre-defined schema. Reporting of current state and changes to it (desired state) both conform to the schema.

NMState is aimed to satisfy enterprise needs to manage host networking through a northbound declarative API and multi provider support on the southbound. NetworkManager acts as the main (and currently the only) provider supported.

Development Environment

Install:

pip install tox pbr

Run Unit Tests:

tox

Runtime Environment

Install (from sources) system-wide:

sudo pip install --upgrade .

Install just for the local user:

pip install --user --upgrade .

Make sure that ~/.local/bin is in your PATH when installing as a local user. The export command can be used to add it for the current session:

export PATH="${HOME}/.local/bin:${PATH}"

Basic Operations

Show current state:

nmstatectl show

Change to desired state:

nmstatectl set desired-state.json

nmstatectl will also read from stdin when no file is specified:

nmstatectl set < desired-state.json

Desired/Current state example:

{
    "interfaces": [
        {
            "description": "Production Network",
            "ethernet": {
                "auto-negotiation": true,
                "duplex": "full",
                "speed": 1000
            },
            "ipv4": {
                "address": [
                    {
                        "ip": "192.0.2.142",
                        "prefix-length": 24
                    }
                ],
                "enabled": true
            },
            "mtu": 1500,
            "name": "eth3",
            "state": "up",
            "type": "ethernet"
        }
    ]
}

The state is also supported as YAML, to get the current state in YAML format:

nmstatectl show --yaml

The set command accepts both YAML and JSON.

Supported Interfaces:

  • bond
  • dummy
  • ethernet
  • ovs-bridge

About

A declarative network manager API for hosts

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.8%
  • Other 1.2%