Using GitHub's Webhook feature, this Webhook Server automates Configuration as Code management of F5's BIG-IP devices (hardware or software).
Configuration-as-Code has predominantely focussed on 'server' infrastructure. However, this 'Network Configuration as Code' solution allows engineers to 'commit' F5 BIG-IP service definitions to a Github, or Github Enterprise, repository, which results in configured F5 BIG-IP application services ready for application traffic. Installing this Webhook Server onto BIG-IP devices enables for the automated deployment of BIG-IP configurations directly via a Github Webhook.
This solution was written upon the iControl LX framework. Installed on a BIG-IP, this iControl LX worker presents a /mgmt/shared/webhook/github-listener
REST end-point ready to receive Github 'commit' notifications.
Combine the Github Webhook Server with BigStats (telemetry exporter) for a more complete solution:
NOTE: AS3 is an F5 developed and supported iControl LX worker that greatly simplifies the programmable surface of BIG-IP.
/mgmt/shared/webhook/github-listener
.GHE_IaC_WebHook
|- README.md
|- DIST
|- GheWebhookServer-0.3.0-0005.noarch.rpm
|- DOCS
|- BIG-IP_SETUP.md
|- GHE_SETUP.md
|- EXAMPLES
|- service_def_BAD.json
|- service_def1.json
|- service_def2.json
|- service_def3.json
|- service_def4.json
|- service_def5.json
|- service_def6.json
|- service_def7.json
|- service_def8.json
|- SRC
|- README.md
|- GheWebhookServer
|- nodesjs
|- ghe_listener.js
|- ghe_settings.js
|- ghe_util.js
/DIST
- the RPMs to install onto BIG-IPs for IaC management./DOCS
- the setup and usage instructions for GHE an BIG-IP./EXAMPLES
- contains AS3 service definition examples for configuring BIG-IP application services./SRC
- the WebHook server iControl LX source.