483 lines
13 KiB
YAML
Executable file
483 lines
13 KiB
YAML
Executable file
#!/usr/bin/env ansible-playbook
|
|
---
|
|
- hosts:
|
|
- infra
|
|
- isp
|
|
roles:
|
|
- bird
|
|
|
|
#- hosts:
|
|
# - isp-1.back.infra.auro.re
|
|
# - isp-2.back.infra.auro.re
|
|
# vars:
|
|
# bird__router_ids:
|
|
# isp-1.back.infra.auro.re: 10.203.1.5
|
|
# isp-2.back.infra.auro.re: 10.203.1.6
|
|
# bird__router_id: "{{ bird__router_ids[inventory_hostname] }}"
|
|
# bird__radv_interfaces:
|
|
# client0:
|
|
# prefix:
|
|
# - 2a09:6841::/64
|
|
# domain_search:
|
|
# - client0.isp.auro.re
|
|
# client1:
|
|
# prefix:
|
|
# - 2a09:6841:0:1::/64
|
|
# domain_search:
|
|
# - client1.isp.auro.re
|
|
# client2:
|
|
# prefix:
|
|
# - 2a09:6841:0:2::/64
|
|
# domain_search:
|
|
# - client2.isp.auro.re
|
|
# client3:
|
|
# prefix:
|
|
# - 2a09:6841:0:3::/64
|
|
# domain_search:
|
|
# - client3.isp.auro.re
|
|
# client4:
|
|
# prefix:
|
|
# - 2a09:6841:0:400::/64
|
|
# domain_search:
|
|
# - client4.isp.auro.re
|
|
# bird__radv_dns_servers:
|
|
# - 2a09:6840:128::10:103
|
|
# - 2a09:6840:128::10:3
|
|
# bird__asn:
|
|
# aurore: 43619
|
|
# bird__bgp_addresses:
|
|
# isp-1.back.infra.auro.re:
|
|
# - 2a09:6840:203::1:5
|
|
# - 10.203.1.5
|
|
# isp-2.back.infra.auro.re:
|
|
# - 2a09:6840:203::1:6
|
|
# - 10.203.1.6
|
|
# bird__bgp_sessions:
|
|
# edge1:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 2a09:6840:203::1:1
|
|
# - 10.203.1.1
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# import:
|
|
# - accept: true
|
|
# export:
|
|
# - accept: false
|
|
# edge2:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 2a09:6840:203::1:2
|
|
# - 10.203.1.2
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# import:
|
|
# - accept: true
|
|
# export:
|
|
# - accept: false
|
|
# bird__ospf_broadcast_interfaces:
|
|
# back0: null
|
|
# bird__ospf_stub_interfaces:
|
|
# - client0
|
|
# - client1
|
|
# - client2
|
|
# - client3
|
|
# - client4
|
|
# roles:
|
|
# - bird
|
|
|
|
|
|
#- hosts:
|
|
# - infra-1.back.infra.auro.re
|
|
# - infra-2.back.infra.auro.re
|
|
# vars:
|
|
# bird__router_ids:
|
|
# infra-1.back.infra.auro.re: 10.203.1.3
|
|
# infra-2.back.infra.auro.re: 10.203.1.4
|
|
# bird__router_id: "{{ bird__router_ids[inventory_hostname] }}"
|
|
# bird__ospf_broadcast_interfaces:
|
|
# back0: null
|
|
# bird__ospf_stub_interfaces:
|
|
# - monit0
|
|
# - wifi0
|
|
# - int0
|
|
# - pub0
|
|
# - bmc0
|
|
# - pve0
|
|
# - isp0
|
|
# - mgmt0
|
|
# bird__asn:
|
|
# aurore: 43619
|
|
# bird__bgp_addresses:
|
|
# infra-1.back.infra.auro.re:
|
|
# - 2a09:6840:203::1:3
|
|
# - 10.203.1.3
|
|
# infra-2.back.infra.auro.re:
|
|
# - 2a09:6840:203::1:4
|
|
# - 10.203.1.4
|
|
# bird__bgp_sessions:
|
|
# edge1:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 2a09:6840:203::1:1
|
|
# - 10.203.1.1
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# import:
|
|
# - accept: true
|
|
# export:
|
|
# - accept: false
|
|
# edge2:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
## address:
|
|
# - 2a09:6840:203::1:2
|
|
# - 10.203.1.2
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# import:
|
|
# - accept: true
|
|
# export:
|
|
# - accept: false
|
|
# roles:
|
|
# - bird
|
|
|
|
#- hosts:
|
|
# - edge-1.back.infra.auro.re
|
|
# - edge-2.back.infra.auro.re
|
|
# vars:
|
|
# bird__router_ids:
|
|
# edge-1.back.infra.auro.re: 10.203.1.1
|
|
# edge-2.back.infra.auro.re: 10.203.1.2
|
|
# bird__asn:
|
|
# aurore: 43619
|
|
# crans: 204515
|
|
# zayo: 8218
|
|
# viarezo: 212424
|
|
# rezel: 199116
|
|
# bird__orig_prefixes:
|
|
# aurore:
|
|
# - 45.66.108.0/22
|
|
# - 2a09:6840::/32
|
|
# - 2a09:6841::/32
|
|
# - 2a09:6842::/32
|
|
# crans:
|
|
# - 185.230.76.0/22
|
|
# - 2a0c:700::/32
|
|
# viarezo:
|
|
# - 138.195.144.0/20
|
|
# - 192.159.121.0/24
|
|
# - 2a0c:b641:2f0::/44
|
|
# rezel:
|
|
# - 137.194.8.0/22
|
|
# - 2a09:6847::/32
|
|
# martians:
|
|
# - 10.0.0.0/8
|
|
# - 172.16.0.0/12
|
|
# - 192.168.0.0/16
|
|
# - 100.64.0.0/10
|
|
# - 127.0.0.0/8
|
|
# - 169.254.0.0/16
|
|
# - 192.0.0.0/24
|
|
# - 192.0.2.0/24
|
|
# - 198.18.0.0/15
|
|
# - 198.51.100.0/24
|
|
# - 203.0.113.0/24
|
|
# - 224.0.0.0/4
|
|
# - 240.0.0.0/4
|
|
# - ::/128
|
|
# - ::1/128
|
|
# - ::ffff:0:0/96
|
|
# - ::/96
|
|
# - 100::/64
|
|
# - 2001:10::/28
|
|
# - 2001:db8::/32
|
|
# - fc00::/7
|
|
# - fe80::/10
|
|
# - fec0::/10
|
|
# - ff00::/8
|
|
# bird__router_id: "{{ bird__router_ids[inventory_hostname] }}"
|
|
# bird__bgp_addresses:
|
|
# edge:
|
|
# edge-1.back.infra.auro.re:
|
|
# - 2a09:6840:203::1:1
|
|
# - 10.203.1.1
|
|
# edge-2.back.infra.auro.re:
|
|
# - 2a09:6840:203::1:2
|
|
# - 10.203.1.2
|
|
# legacy:
|
|
# edge-1.back.infra.auro.re:
|
|
# - 2a09:6840:129::10:2
|
|
# - 10.129.10.2
|
|
# edge-2.back.infra.auro.re:
|
|
# - 2a09:6840:129::10:102
|
|
# - 10.129.10.102
|
|
# rezel:
|
|
# edge-1.back.infra.auro.re:
|
|
# - 2a09:6842:19:9116::1
|
|
# - 45.66.111.1
|
|
# edge-2.back.infra.auro.re:
|
|
# - 2a09:6842:19:9116::3
|
|
# - 45.66.111.3
|
|
# bird__bgp_sessions:
|
|
# edge:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses.edge[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address: "{{ bird__bgp_addresses.edge
|
|
# | dict2items
|
|
# | selectattr('key', '!=', inventory_hostname)
|
|
# | map(attribute='value')
|
|
# | first }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# import:
|
|
# - accept: true
|
|
# export:
|
|
# - local_pref: 75
|
|
# accept: true
|
|
# vpn1:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses.edge[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 2a09:6840:203::1:7
|
|
# - 10.203.1.7
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# import:
|
|
# - accept: false
|
|
# export:
|
|
# - accept: true
|
|
# vpn2:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses.edge[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 2a09:6840:203::1:8
|
|
# - 10.203.1.8
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# import:
|
|
# - accept: false
|
|
# export:
|
|
# - accept: false
|
|
# legacy:
|
|
# next_hop_self: true
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses.legacy[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 2a09:6840:129::240
|
|
# - 10.129.0.240
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# import:
|
|
# - accept: false
|
|
# export:
|
|
# - bgp_proto:
|
|
# - crans
|
|
# - zayo
|
|
# - rezel1
|
|
# - rezel2
|
|
# accept: true
|
|
# - accept: false
|
|
# zayo:
|
|
# local:
|
|
# address:
|
|
# - 83.167.52.69
|
|
# - 2001:1b48:2:103::d7:2
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 83.167.52.68
|
|
# - 2001:1b48:2:103::d7:1
|
|
# as: "{{ bird__asn.zayo }}"
|
|
# import:
|
|
# - prefix: "{{ bird__orig_prefixes.martians }}"
|
|
# sub: true
|
|
# accept: false
|
|
# - accept: true
|
|
# export:
|
|
# - prefix: "{{ ['aurore', 'crans', 'viarezo', 'rezel']
|
|
# | map('extract', bird__orig_prefixes)
|
|
# | flatten }}"
|
|
# sub: true
|
|
# accept: true
|
|
## - accept: false
|
|
# crans:
|
|
# local:
|
|
# address:
|
|
# - 185.230.79.254
|
|
# - 2a0c:700:28::2
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 185.230.79.253
|
|
# - 2a0c:700:28::1
|
|
# as: "{{ bird__asn.crans }}"
|
|
# import:
|
|
# - prefix: "{{ bird__orig_prefixes.crans }}"
|
|
# sub: true
|
|
# accept: true
|
|
# - accept: false
|
|
# export:
|
|
# - bgp_proto:
|
|
# - viarezo
|
|
# - rezel1
|
|
# - rezel2
|
|
# - zayo
|
|
# accept: true
|
|
# - prefix: "{{ bird__orig_prefixes.aurore }}"
|
|
# sub: true
|
|
# accept: true
|
|
# - accept: false
|
|
# rezel1:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses.rezel[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 2a09:6842:19:9116::2
|
|
# - 45.66.111.2
|
|
# as: "{{ bird__asn.rezel }}"
|
|
# import:
|
|
# - prefix: "{{ bird__orig_prefixes.rezel }}"
|
|
# sub: true
|
|
# accept: true
|
|
# - accept: false
|
|
# export:
|
|
# - bgp_proto:
|
|
# - edge
|
|
# - viarezo
|
|
# - crans
|
|
# - zayo
|
|
# accept: true
|
|
# - prefix: "{{ bird__orig_prefixes.aurore }}"
|
|
# sub: true
|
|
# accept: true
|
|
# - accept: false
|
|
# rezel2:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses.rezel[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 2a09:6842:19:9116::4
|
|
# - 45.66.111.4
|
|
# as: "{{ bird__asn.rezel }}"
|
|
# import:
|
|
# - local_pref: 75
|
|
# - prefix: "{{ bird__orig_prefixes.rezel }}"
|
|
# sub: true
|
|
# accept: true
|
|
# - accept: false
|
|
# export:
|
|
# - bgp_proto:
|
|
# - edge
|
|
# - viarezo
|
|
# - crans
|
|
# - zayo
|
|
# accept: true
|
|
# - prefix: "{{ bird__orig_prefixes.aurore }}"
|
|
# sub: true
|
|
# accept: true
|
|
# - accept: false
|
|
# viarezo:
|
|
# local:
|
|
# address:
|
|
# - 192.159.121.134
|
|
# - 2a0c:b641:2ff::6
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 192.159.121.133
|
|
# - 2a0c:b641:2ff::5
|
|
# as: "{{ bird__asn.viarezo }}"
|
|
# import:
|
|
# - prefix: "{{ bird__orig_prefixes.martians }}"
|
|
# accept: false
|
|
# - prefix: "{{ bird__orig_prefixes.viarezo }}"
|
|
# sub: true
|
|
# negate: true
|
|
# local_pref: 50
|
|
# - accept: true
|
|
# export:
|
|
# - prefix: "{{ bird__orig_prefixes.aurore }}"
|
|
# as_prepend:
|
|
# asn: "{{ bird__asn.aurore }}"
|
|
# size: 5
|
|
# - bgp_proto:
|
|
# - crans
|
|
# - zayo
|
|
# accept: true
|
|
# - accept: false
|
|
# bird__ospf_broadcast_interfaces:
|
|
# back0: null
|
|
# bird__ospf_stub_interfaces:
|
|
# - crans0
|
|
# - zayo0
|
|
# - rezel0
|
|
# - viarezo0
|
|
# bird__static_unreachable: "{{ bird__orig_prefixes.aurore }}"
|
|
# roles:
|
|
# - bird
|
|
|
|
#- hosts:
|
|
# - vpn-1.back.infra.auro.re
|
|
# - vpn-2.back.infra.auro.re
|
|
# vars:
|
|
# bird__asn:
|
|
# aurore: 43619
|
|
# bird__router_ids:
|
|
# vpn-1.back.infra.auro.re: 10.203.1.7
|
|
# vpn-2.back.infra.auro.re: 10.203.1.8
|
|
# bird__router_id: "{{ bird__router_ids[inventory_hostname] }}"
|
|
# bird__bgp_addresses:
|
|
# vpn-1.back.infra.auro.re:
|
|
# - 2a09:6840:203::1:7
|
|
# - 10.203.1.7
|
|
# vpn-2.back.infra.auro.re:
|
|
# - 2a09:6840:203::1:8
|
|
# - 10.203.1.8
|
|
# bird__bgp_sessions:
|
|
# edge1:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 2a09:6840:203::1:1
|
|
# - 10.203.1.1
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# import:
|
|
# - accept: true
|
|
# export:
|
|
# - accept: false
|
|
# edge2:
|
|
# local:
|
|
# address: "{{ bird__bgp_addresses[inventory_hostname] }}"
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# remote:
|
|
# address:
|
|
# - 2a09:6840:203::1:2
|
|
# - 10.203.1.2
|
|
# as: "{{ bird__asn.aurore }}"
|
|
# import:
|
|
# - accept: true
|
|
# export:
|
|
# - accept: false
|
|
# bird__ospf_broadcast_interfaces:
|
|
# back0: null
|
|
# bird__ospf_stub_interfaces:
|
|
## - wg0
|
|
# roles:
|
|
# - bird
|
|
...
|