Add keep-alive-interval to bigip_profile_tcp
ISSUE TYPE
- Feature Idea
COMPONENT NAME
bigip_profile_tcp
ANSIBLE VERSION
ansible 2.9.13
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/testuser/.ansible/plugins/modules', u '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.17 (default, Sep 30 2020, 13:38:04) [GCC 7.5.0]
PYTHON VERSION
Python 2.7.17
BIGIP VERSION
Sys::Version
Main Package
Product BIG-IP
Version 13.1.3.4
Build 0.0.5
Edition Point Release 4
Date Tue Jun 16 14:26:18 PDT 2020
CONFIGURATION
OS / ENVIRONMENT
N/A
SUMMARY
The bigip_profile_tcp module does not have the keep-alive-interval parameter available. Federal Customers require this parameter.
STEPS TO REPRODUCE
create ltm profile tcp /Common/STIG_f5-tcp-progressive { defaults-from f5-tcp-progressive keep-alive-interval 900 idle-timeout 900}
EXPECTED RESULTS
ACTUAL RESULTS
Tracking via FMFA-659
We run into this as well. Do you guys (including @focrensh) by chance have any ETA on this?
Anyone who is interested this is how we workaround the issue (it loops through an array of map contains the tcp_profiles):
- name: Configure tcp profiles
bigip_profile_tcp:
name: "{{ item.name }}"
parent: "{{ item.parent }}"
idle_timeout: "{{ item.idle_timeout | default(omit) }}"
initial_congestion_window_size: "{{ item.initial_congestion_window_size | default(omit) }}"
initial_receive_window_size: "{{ item.initial_receive_window_size | default(omit) }}"
nagle: "{{ item.nagle | default(omit) }}"
proxy_options: "{{ item.proxy_options | default(omit) }}"
syn_rto_base: "{{ item.syn_rto_base | default(omit) }}"
time_wait_recycle: "{{ item.time_wait_recycle | default(omit) }}"
state: "{{ item.state }}"
provider: "{{ provider }}"
loop: "{{ tcp_profiles }}"
- name: Update keepalive settings for tcp profiles - Workaround for missing keep-alive attribute for tcp profiles (https://github.com/F5Networks/f5-ansible/issues/1897)
bigip_command:
commands: "tmsh list ltm profile tcp {{ item.name }}|grep -q \"keep-alive-interval {{ item.keep_alive_interval }}$\" || ( tmsh modify ltm profile tcp {{ item.name }} keep-alive-interval {{ item.keep_alive_interval }} && echo CHANGED )"
provider: "{{ provider }}"
register: monitor_result
changed_when: '"CHANGED" in monitor_result.stdout'
loop: "{{ tcp_profiles }}"
We can solve this issue with F5 Ansible collections v2 using AS3. See https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/refguide/schema-reference.html#tcp-profile
Please see F5 BIGIP Collection v2 documentation - https://clouddocs.f5.com/products/orchestration/ansible/devel/f5_bigip/f5_bigip.html for more info.
Hello, AS3 is not always the best option, in our environment we pre-provision all Big-IPs with one "main" tcp profile which is then used by all virtual servers. If it's not a major complication, I would like to see the keep-alive-interval added to the bigip_profile_tcp module. This would make the module more complete, and would allow us to avoid using extra command module for just this one option.
Thanks for considering.