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.
86 lines
1.8 KiB
Markdown
86 lines
1.8 KiB
Markdown
# automonty
|
|
|
|
The `automonty` tool performs network automation. It is your [network moose](https://twitter.com/NetworkMoose) in mecha form.
|
|
|
|
## Requirements
|
|
|
|
At [FAELIX](https://faelix.net/) we run AS41495 which comprises VyOS-based BGP-edge routers and MikroTik RouterOS-based internal routers. We automate our VyOS edge with [hphr](https://gitea.faelix.net/FAELIX/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
|
|
|
|
```shell
|
|
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:
|
|
|
|
```yaml
|
|
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:
|
|
|
|
```shell
|
|
export AUTOMONTY_USERNAME=monty
|
|
export AUTOMONTY_PASSWORD="m00se<3p0t4t0"
|
|
pipenv run ./python automonty check
|
|
```
|
|
|
|
### Invoking Commands
|
|
|
|
#### Provisioning
|
|
|
|
#### Tearing Down
|
|
|
|
#### Migration
|