Exploring Citrix/NetScaler configs
This project aims to explore the process of breaking down, analyzing and abstracting applications from a Citrix NetScaler config/archive (.conf/.tgz)
Future goals include conversion outputs for different supported F5 solutions, including BIG-IP TMOS, NGINX and F5 Distributed Cloud (XC)
I need help
Greetings, I need help to grow this tool. It is at a point where I need feeback from the field about the application abstraction process and diagnostic rules. Please, use the tool and provide any feedback/issues via github. ANY and ALL feedback is respected and appreciated. Thank you.
If your looking to contribute a little more, here are some ways;
Phase 1: Archive unpack and config Parsing (Complete)
This phase is about unpacking an archive and/or parsing the ns.conf file.
Parsing includes the process of organizing and converting the important config lines into a structure that is a bit more predictable and searchable. This process basically breaks down the config file into a json structure that allows subsequent processes to realiably search for and access key data when needed. (see breakdown process)
Phase 2: Application Abstraction (~60% complete)
This phase of the roadmap is focused on crawling the parsed config and abstracting applications. In these early phases of the project, we have tested with v10 through v13.1. There is currently no deviation from this process based on these version. This will probably change as the project progresses.
Phase 3: Analytics/Diagnostics (~10%)
This phase is focused on analyzing the individual applications produced by the abstraction process.
The foundation is to use vscode diagnostics and supporting ruleset to provide feedback about different ns config pieces/options/parameters
This information may possibly get fed back into the abstration process to help identify key application features for converstion outputs.
Phase 4: Conversion outputs for XC/TMOS/NGINX (pending)
This phase is focused on utilizing the information gathered from the diagnostics and abstraction process to provide the beginning of deploying a similar application on F5 technology (XC/TMOS/NGINX).
This phase will begin once we have more confidence that phases two and three are providing solid output to base the conversions on. This is the major request for feedback. To help fine tune the abstraction and analytics.
The goal here is to provide details about the applications current features on NS/ADC and some output to begin deploying that application in the different F5 technologies. A single click, production grade application conversion is the goal, but realistically, an understanding of the features and a path/assistance getting there is probably more of where things will land.
These outputs will probably include basic AS3 for TMOS/NEXT, JSON body for deployment on F5 Distributed Cloud, and possibly configuration snippets for NGINX (or declarative json)
Please check out the github issues for details on bugs and enhancements. Don't hesitate to open an issue to request a feature, ask a question, or provide feedback.
There is currently a report to output all the details from the tool. This include all the details about the unpacking/parsing/app-abstraction process and details about the diagnstics.
There are additional stats to understand numbers of applications, breakdown of the different types of applications and supporting configuration objects. High level diagnostic stats, along with per-app diagnostics are also included.
The goal for this report is to provide a full output to easily search, reference and add notes to when working through the process
How to get started using the extension
1. Archive unpack
2. Breakdown/parse config
3. Abstract applications
walk cs vservers
This second phase will loop through each 'add vs vserver' and 'add lb vserver' to walk the config tree and abstract each application's config
walk lb vserver
Add walking details...
Add walking details...
Citrix ADC Firmware Release Cycle
Citrix has announced following updates to the Citrix ADC firmware release cycle.
Citrix Product Lifecycle Matrix