Deploying BigIQ 6.0 Application Service Template from Ansible
We are trying to automate application deployments to our Big-IPs through Ansible and BigIQ. I have application templates in the service catalog of our Big-IQ that was cloned from Default-f5-HTTPS-WAF-lb-template with some customization for our environment. I can manually deploy the new application template to any of our 9 Big-IP clusters without any problems. I can also initiate the same deployment through the RestAPI using PostMan without any problems.
I know I should be able to initiate a deployment from Ansible by calling the RestAPI, but I was looking at the Ansible modules referenced on (https://clouddocs.f5.com/products/orchestration/ansible/devel/modules/partner_maintained.html). I like the idea of using the bigiq_application_https_waf module to initiate the application deployment from Ansible, and was able to successfully deploy an application with this module. The only problem is the bigiq_application_https_waf module creates an application with pool member servers using HTTP (TCP/80), but I need the application to use HTTPS (TCP/443) for the pool member servers.
I tried to copy and rename /usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigiq_application_https_waf.py to my Ansible project directory and updated the uri filter on line 311 of the module with my template name. I thought this would do the trick, but I am getting mixed results. On half of the attempts, Ansible returns an error with "ssl.SSLError: ('The read operation timed out',)." The other half of the attempts look like they run successfully, but when I check the status of the deployment, it shows "status": "FAILED." If I change the filter back to Default-f5-HTTPS-WAF-lb-template, the playbooks executes successfully, and Big-IQ successfully deploys the application.
Has anyone else successfully used Ansible to automate a deployment from a custom Big-IQ 6.0 application service template? How are you accomplishing this? Did you use a modified version of the BigIQ module, or did you just run a RestAPI call to a static URL? What challenges other challenges have seen trying to implement this?