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.
84 lines
1.7 KiB
Markdown
84 lines
1.7 KiB
Markdown
4 years ago
|
# 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
|
||
|
```
|
||
|
|
||
|
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
|