# 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