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

# 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