tmsh2iapp iApp generator // automate in minutes with easily generated iApps
Problem this snippet solves:
Advantages of using iApps for automation instead of plain ansible, plain REST calls, etc...
-
When deploying configurations as iApps the configurations are self-contained, that is: on delete all objects created by the iApp are automatically deleted and there will be no stale configurations left
-
iApps can be deployed with ansiblle, REST, etc... configurations just become easier to deploy because regardless the configuration size only two calls are quired: one call to import the template (if it is not already in the BIG-IP) and one to create an instance of the iApp.
-
tmsh2iapp allows creation of iApps that contain base configs too (ie: L1/L2/L3 network elements including non floating ones) which can be sync'ed in HA configurations seamlessly.
Main characteristics of tmsh2iapp
- Allows creating an iApp using a declarative tmsh-like syntax (these are called .t2i files)
- It has been used with LTM, ASM (limited support in v12 full support in v13+), APM, AFM and PEM modules.
- Baseline .t2i files can be created easily with the BIG-IP GUI
- Helps deploying the iApp by creating sample Ansible roles & playbooks, Heat templates and iWorkflow JSON files
- Input varialbles can be JSON lists (ie: multiple-choice/multiple-select survey variables in Ansible Tower)
- Can easily create iApps that contain base configurations (self-IPs, VLANs, etc...) that can be deployed in a BIG-IP cluster and config-sync'ed assigning per-BIG-IP values appropiately.
- It can be used in any computer with perl installed -- including the BIG-IP
- It supports passing parameters as JSON lists (useful for handling multiple-choice/multiple-select survey variables in Ansible Tower or any other YAML based automation)
- It is not BIG-IP version specific but it is being tested with BIG-IP 11.6-13.1
- Supports route-domains and partitions
- Supports LTM policies
- Options available to beautify the GUI allowing specifying field text width, validators, and single and multi-selector which lists that can be static or dynamically populated at run time.
- It allows importing (from external files or URL) the following configuration objects:
- apache-ssl-cert SSL certificates management
- asm-policy ASM policies
- browser-capabilities-db browser capabilities DB file management
- dashboard-viewset
- data-group External Data Group files management
- device-capabilities-db Device capabilities DB file management
- external-monitor External Monitor files management
- ifile iFile files management
- lwtunneltbl LW4o6 table files management
- ssl-cert SSL certificates management
- ssl-csr SSL Certificate Signing Request
- ssl-key SSL certificate keys management
How to use this snippet:
Visit the project's page and wiki in https://github.com/f5devcentral/f5-tmsh2iapp
Code :
https://github.com/f5devcentral/f5-tmsh2iapp