F5Networks / f5-ansible

Imperative Ansible modules for F5 BIG-IP products
GNU General Public License v3.0
375 stars 229 forks source link

Feature Request: Snat List ansible module #1796

Open bradstapleton94 opened 4 years ago

bradstapleton94 commented 4 years ago
ISSUE TYPE
COMPONENT NAME

Does not exist

ANSIBLE VERSION
ansible 2.9.6
  config file = None
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.6.8 (default, Nov 10 2019, 15:33:49) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4.0.1)]
PYTHON VERSION
Python 3.6.8
BIGIP VERSION
Sys::Version
Main Package
  Product     BIG-IP
  Version     14.1.2.6
  Build       0.0.2
  Edition     Point Release 6
  Date        Fri Jun  5 11:36:46 PDT 2020
CONFIGURATION

None

OS / ENVIRONMENT

N/A

SUMMARY

Feature request to add an ansible module to create SNAT lists and modify addresses in said SNAT list. Currently, SNAT pools and SNAT Translation List modules exist but with no way to populate specific IPs inside a SNAT.

STEPS TO REPRODUCE

No module currently exists.

EXPECTED RESULTS
ACTUAL RESULTS
pgouband commented 1 year ago

Hi @bradstapleton94, Have you tried with AS3? https://clouddocs.f5.com/products/orchestration/ansible/devel/f5_bigip/modules_2_0/bigip_as3_deploy_module.html#bigip-as3-deploy-module-2

bradstapleton94 commented 1 year ago

Doesn't that require you to have your entire config in AS3?

dwebr commented 1 year ago

Hey @bradstapleton94,

Not sure if this is the same for you but we create snat pools specifying the ip as a list and it works.
I have this in a group_vars file that represents the LTM pair, for this example

snat_pools:
  - name: AC0D1-011-IPRF1-ESP-S001
    members:
      - 1.1.1.11
  - name: AC0D1-012-IPRF2-ESP-S001
    members:
      - 1.1.1.12

In a playbook I call the bigip_snat_pools from f5networks.f5_modules collection

  - name: "MANAGE SNAT POOLS (SNATS)"
    bigip_snat_pool:
      provider: "{{ provider_admin }}"
      name: "{{ item.name }}"
      members: "{{ item.members }}"
    loop: "{{ snat_pools }}"