34 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # FRI servers
 | |
| 
 | |
| These Ansible roles set up servers running various Linux distributions to participate in BGP routing. Device and IP address data are pulled from NetBox. A separate VRF `mgmt` is configured for a L2 management interface.
 | |
| 
 | |
| This project is licensed under [0BSD](https://spdx.org/licenses/0BSD.html).
 | |
| 
 | |
| ## Setup
 | |
| 
 | |
| Each physical server should have the following information recorded in NetBox:
 | |
| 
 | |
|   - network interfaces `mgmt*`: used for management (Ansible) access; must define MAC and IP address
 | |
|   - network interfaces `lan*`: used for BGP routing; must define MAC address
 | |
|   - network interface `lo`: must define the IP address to announce over BGP, also serves as router ID
 | |
| 
 | |
| For virtual machines, network interfaces should be named as in the hypervisor. In Proxmox, this is typically `net*`.
 | |
| 
 | |
| MAC addresses are used to rename interfaces in the host OS. Prefix for the management IP address should define the `gateway` custom field.
 | |
| 
 | |
| For Windows hosts the platform must be defined in NetBox to configure connection parameters.
 | |
| 
 | |
| ## Run
 | |
| 
 | |
| Create a read-only token in NetBox. Define required variables:
 | |
| 
 | |
|     export NETBOX_API=<url>
 | |
|     export NETBOX_TOKEN=<token>
 | |
| 
 | |
| Run one-off tasks with (add `--key-file` or other options as necessary):
 | |
| 
 | |
|     ansible -m ping 'server-*'
 | |
| 
 | |
| Run a playbook with:
 | |
| 
 | |
|     ansible-playbook setup.yml -l 'server-*'
 |