Automatic IPv4 and IPv6 provisioning and mobility.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Marek Isalski aca95aa38f neaten up _extract_bgp_announcement 3 years ago
.hgignore initial import 4 years ago
Pipfile add dry-run, and use reverse DNS for fixup 4 years ago
README.md promote, demote, and migrate seem to work 4 years ago
automonty neaten up _extract_bgp_announcement 3 years ago

README.md

automonty

The automonty tool performs network automation. It is your network moose in mecha form.

Requirements

At FAELIX we run AS41495 which comprises VyOS-based BGP-edge routers and MikroTik RouterOS-based internal routers. We automate our VyOS edge with hphr and our MikroTik interior with automonty. You too will need RouterOS-based devices to make use of automonty.

Ensure that you have access to the RouterOS API.

Installation

git clone https://gitea.faelix.net/FAELIX/automonty
cd automonty
mkdir .venv
pipenv install
pipenv run ./python automonty --help

Usage

Configuration File

Create ~/.automonty.yaml as follows:

router:
  gama.m.faelix.net:
    group:
      - x4
      - x5
  soto.m.faelix.net:
    group:
      - x4
      - x5
  janszoon.d.faelix.net:
    group:
      - x5
      - x7
  kotzebue.n.faelix.net:
    group:
      - x5
      - x7
  teixeira.x.faelix.net:
    group:
      - x5
      - x7

loopbacks:
  - 46.227.200.1/32
  - 46.227.200.2/32
  - 46.227.204.1/32
  - 46.227.205.1/32
  - 46.227.207.1/32
  - 46.227.207.255/32

default_ipv4_loopback: 46.227.207.255/32

routing_filter_chain: automonty

We have specified:

  • a set of routers and to which groups they belong
  • a set of loopback addresses which should be treated specially
  • a default loopback address which is used as the anycast IPv4 default gateway for guests (VPSs, layer-2 circuits, etc)

Credentials

You can set credentials via environment variables:

export AUTOMONTY_USERNAME=monty
export AUTOMONTY_PASSWORD="m00se<3p0t4t0"
pipenv run ./python automonty check

Invoking Commands

Provisioning

Tearing Down

Migration