This project is a sister of another my project Service Provider Fabric
. At some time in future they will be merged into a single one, but as of today they are splitted. The primar focus of this project is to make sure the freshly shipped network function is automatically provisioned (zero-touch) up to desired state including infrastructure and customer services and is integrated into data center operation.
- Arist EOS 4.21.1.1F
- Cisco IOS XR 6.5.1
- Nokia SR OS 16.0.R7
- Cumulus Linux 3.7.6
There is a full infrastructure enablers' stack (DHCP, DNS, FTP and HTTP) is deployed as Docker containers. Once the stack is launched after NetBox is up and running the following is happening:
- Container with DHCP is launched and
dhcpd.conf
is automaically populated with entries from NetBox for OOB management subnet. In case there are IP/MAC pairs present in the device configuration, the static entries are created as well. ForCumulus
andArista
there are corresponding entries added with link to ZTP script. - Container with DNS is launched and
named.conf
is automaically populated with zone names from NetBox for OOB management subnet. The files for forward and reverse (both IPv4 and IPv6) zones are automatically created and filled in with the entries of IPv4/IPv6 addresses of OOB interfaces matched to the hostnames. - Container with FTP server is launched and automatically populated with content, what must be shared (currently, only test file).
- Container with HTTP server is launched and ZTP scripts are automatically generated based on the information from NetBox.
In the folder containers
you can find source files of the infrastructure Docker containers build on top of Alpine Linux
to reduce usage of disk space.
The current version of this repository is 0.5.0
.
You have installed Netbox (https://github.com/digitalocean/netbox) to document your infrastructure, as it's used as "the source of truth" and modelling for data center infrastructure and services.
Version 0.1
.
- Initial release
- Integration of Ansible with NetBox over REST API to retreive information needed to create configuration for Cumulus Linux.
- Automatic provisioning of Cumulus VX using information extracted in previous point.
Version 0.1.1
.
- Topology is added within
topology
folder.
Version 0.2
.
- Automatic provisioning of Arista EOS for underlay IP Fabric.
- Automatic provisioning of Cisco IOS XR for underlay IP Fabric.
Version 0.3
.
- Added folder
containers
with Dockerfiles for infrastructure enablers. - Folder
containers\dns
contains the Dockerfile for DNS Server based on BIND9 and Alpine Linux base image. - Folder
contaienrs\ftp
contains the Dockerfile for FTP Server based on VSFTP and Alpine Linux base image. - Folder
contaienrs\http
contains the Dockerfile for HTTP Server based on NGINX and Alpine Linux base image. - Folder
contaienrs\dhcp
contains the Dockerfile for DHCP Server based on ISC DHCP and Alpine Linux base image.
Version 0.3.1
.
- The role
cloud_docker
is copied fromThe Service Provider Fabric
to setup the Docker on CentOS. - New role
cloud_enabler
is created to bring life DHCP, DNS, FTP and HTTP services automatically. More details inansible\README.md
.
Version 0.3.2
.
- The DHCP config file
dhcpd.conf
is automatically populated with data from NetBox over REST API using Ansible. The information is populated for the data centrebln
. - The DNS config file
named.cond
is automatically populated with data from NetBox over REST API using Ansible. The information is populated for the data centrebln
. - The filename for forward and reverse zones (both IPv4 and IPv6) is automatically generated based on the domain given in Ansible variables
group_vars/linux
and OOB subnet extracted from NetBox. - The DNS forward zone is automatically filled with info from NetBox over REST API using Ansible.
- The DNS reverse zone for IPv4 is automatically filled with info from NetBox over REST API using Ansible.
- The DNS reverse zone for IPv6 is automatically filled with info from NetBox over REST API using Ansible.
Version 0.3.3
.
- ZTP for Arista is added.
- Some text updates.
- Updated management topology with the Docker cloud on the management host.
Version 0.3.4
.
- Some minor templates' and tasks' updates.
Version 0.3.5
.
- Fixed some problem with Docker installation for role
cloud_docker
caused by imporperpip
behavior and missing folder.
Version 0.3.6
.
- In the
containers
folder added information about Telegraf, InfluxDB and Grafana. - There are two containers with Telegraf
telegraf_snmp
andtelegraf_syslog
as they collect different information.
Version 0.3.7
.
- The role
cloud_enabler
is extended with monitoring capabilities based on Telegraf, InfluxDB and Grafana using approach fromService Provider Fabric
. - Information from data centre switches is collected using SNMP and Syslog, from Docker containers using Syslog.
Version 0.3.8
.
- Configuration of SNMP on Cumulus is added to
dc_underlay
role. Arista/Cisco to add. - SNMPv3 with authentication and encryption is collected over IPv6.
- Dashboards are added to
containers/grafana/dashboards
folder. - The role
dc_underlay
is updated so that for Cumulus Linux rsyslog/snmpd services are restarted. - Syslog configuration is pushed to the Cumulus devices during provisioning of the
dc_underlay
role. - Management topology is updated with additional four containers.
- All the containers are moved to user-defined Docker bridge running both IPv4/IPv6.
- As a quick and dirty lab setup with 6x Cumulus VXs, there are two shell scripts in the
cumulus_kvm
folder. Refer there for more details.
Version 0.3.9
.
- Problem with ntp in VRF for the
Cumulus
switches is fixed.
Version 0.4.0
.
- The Docker container with Kapacitor to proces the data real-time is added, but configuration is still ongoing.
Version 0.4.1
.
- The Docker container with Kapacitor is automatically deployed together with other
enabler
infrastructure. - It connects to the
dcf_influxdb
on HTTPS and subscribe todcf_syslog
database to get all syslog messages. - There is one TICK script currently which looks for DHCPACK from
dcf_influxdb
messages and triggers alert action (shell script) upon getting it.
Version 0.4.2
.
- Kapacitor triggers automatic full provisioning of the full
dc_underlay
role for a host with the specific management IP address. - Kapacitor uses existing role
dc_underlay
with an additional ad-hoc variable.
Version 0.4.3
.
- The provisioning is done only for devices documented in NetBox with the status
Planned
. The device having any other status isn't provisioned. That's applicable both for manual execution and automatic one by Kapacitor.
Version 0.5.0
.
- Some minor modification of the text in
README.md
files. - Provisioning of 3 described Grafana dashboards are done automatically during the deployment of the Grafana container.
Join the network automation course: http://training.karneliuk.com
(c) 2016-2019 karneliuk.com