iControl
3182 TopicsAS3 Limitations
Below are some limitations of AS3 as means of Automation. config deployment is locked down by Automation, no manual intervention possible for below use cases - incidents - new requirements/features need to wait for automation to be updated - Automation failures cause deployment to be stalled until automation is fixed - Operational issues, maybe require out-of-band changes outside of AS3 - Source of truth must be reconciled periodically with F5 device to check for config drift - 2 layers of failures during config deployment one is Automation and second is source of truth, therefore involves more troubleshooting effort - Reliance on an External Source of Truth management, non-native to F5 and not supported by F5 - AS3 is Less mature compared to iControl Rest, iControl Rest was introduced in TMOS 11.x134Views2likes3CommentsF5 iControl REST API - Token Lifecycle Management
Hello, I have a question about the API Token Lifecycle Management. In my case, I got the difference between expired tokens lifecycle management in two different versions BIG-IP 15 and 17. ------------------ BIG-IP Version ------------------ Sys::Version Main Package Product BIG-IP Version 15.1.10.6 Build 0.0.6 Edition Point Release 6 Date Thu Nov 21 05:48:27 PST 2024 ------------------ BIG-IP Version ------------------ Sys::Version Main Package Product BIG-IP Version 17.1.2.1 Build 0.0.2 Edition Point Release 1 Date Tue Dec 17 03:58:42 PST 2024 Version 15 I've got a new API Token with timeout value is 1200s past 1200s, I've checked the API Token is unavailable then past 600s, this expired API Token has been removed in /mgmt/shared/authz/tokens Version 17 I've got a new API Token with timeout value is 1200s past 1200s, I've checked the API Token is unavailable This expired API Token does not remove in /mgmt/shared/authz/tokens. Certainly it can be removed by DELETE method request. Why relatively recent version 17 does not work expired token automatically delete? Thank you, greetings!Solved231Views0likes1CommentCPU data, control and analytics plane utilization
Hi everyone, Wondering if there is any "quick" way of extracting the CPU statistics for Data, Control and Analytics plane utilization via iControl ? As far as I read, Even-numbered logical cores (hyperthreads) are allocated to TMM, while odd numbered cores are available for other processes, while last core is used for analytics. Do I need to do the math myself ?597Views1like7CommentsF5 ASM
Hey I'm trying to get to know the ASM feature in Big-IP. I want to be able to block request based on specific ips or headers (+values) and more. I also want to configure it using an API, I saw there is something called iControl. Is there any docs that contain all the paths in iControl so I could search everything I need? It would also help me get more familiar with the feature85Views0likes2CommentsUpload SSL certificate/key via REST API
Hello All, Looking to see if anyone knows of a method of uploading certs and keys to a BIGIP unit, using a method similar to the following example, but using REST instead of the SOAP API. Example: puts bigip["Management.KeyCertificate"].certificate_import_from_pem('MANAGEMENT_MODE_DEFAULT', [ cert['cert_name'] ], [ File.open(cert['cert_file']).read ], true) puts bigip["Management.KeyCertificate"].key_import_from_pem('MANAGEMENT_MODE_DEFAULT', [ cert['cert_name'] ], [ File.open(cert['key_file']).read ], true) Thanks!3.1KViews0likes10CommentsiControl REST Python Requests module
While iControl REST is great and pretty robust given how much we use it. But I come to the forum today to see if anyone has any experience with the Python requests module and the underlying urllib3 module. When I do have problems with iControl its often with things like the following: Here I've increased the timeout to 5.0 seconds but still get read timeouts. HTTPSConnectionPool(host='redacted', port=443): Read timed out. (read timeout=5.0) I also often see this message and, no I don't have a proxy in front of the F5. However, I know the the F5 proxies the REST call (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 503 Service Unavailable', Thanks!1.3KViews0likes1CommentExtract content of Certificate key file with REST or Ansible
Hi Community, I'm working on an automation for renewing Certificates on multiple BIG-IP's using Ansible. As not all available Ansible F5 modules provide what is required, I'm currently using a mix of modules and REST calls (which is call from Ansible). F5 Module Index What works so far is: Create new CSR/Key on BIG-IP Get new "CA based" Cert and upload to the BIG-IP Upload the same Cert to other BIG-IP's Update SSL profiles on multiple BIG-IP's and some others tasks, like irules..etc Anyhow, what doesnt work so far is to get the content of the key which was created on the first device together with the CSR. Basically I dont have the key which needs to be uploaded to the other BIG-IP's as well. From the CLI, the following gives me what I need: cat /config/filestore/files_d/Common_d/certificate_key_d/*name.key* The problem with this is, I cant integrate it in Ansible using the bigip_command – Run TMSH and BASH commands on F5 devices module. Looks like only tmsh commands are supported even though it states BASH as well. Plus I try to avoid using this module whenever possible in a first place. Through the GUI, simple export and import on an other device - done, but obviously not automated. I have tried all possible Ansible modules as well as REST calls, but dont get the content out of the .key file. I thought that this would/should be a simple tasks. If anyone's done this using any approach please share. I could create a new key and get a cert for each device, but first try to find out if there's another way. Thanks in advance, Stefan2.4KViews0likes4CommentsPartition description misbehaviour API vs GUI
Hello, we noticed strange environment with partition description on v14.1.4. I create partition with command POST https://10.10.10.10/mgmt/tm/auth/partition/ {"name": "partitiondescr", "description": "neco"} I get expected response: { "kind": "tm:auth:partition:partitionstate", "name": "partitiondescr", "fullPath": "partitiondescr", "generation": 3531, "selfLink": "https://localhost/mgmt/tm/auth/partition/partitiondescr?ver=14.1.4", "defaultRouteDomain": 0, "description": "neco" } BUT I cannot see the description in GUI: Seems like Description in GUI is defined somewhere else than "description" in API JSON structure. Any change through API is not visible in GUI and vice versa. Do you know where I could find API key-value pair for partition description? Thank you, Zdenek523Views0likes3Comments