From 2f76536fccca5ae2d34677bcaeb09cf03ef8a6ac Mon Sep 17 00:00:00 2001 From: Kavya Agarwal Date: Wed, 15 Apr 2026 12:18:08 +0530 Subject: [PATCH] refactor: use module_defaults to eliminate repeated connection blocks Replace per-task hostname/username/password/https/validate_certs params with a play-level group/netapp.ontap.netapp_ontap module_defaults block in cifs_provision.yml and nfs_provision.yml. Removes ~30 lines of boilerplate per playbook. --- ansible/cifs_provision.yml | 32 ++++++++------------------------ ansible/nfs_provision.yml | 32 ++++++++------------------------ 2 files changed, 16 insertions(+), 48 deletions(-) diff --git a/ansible/cifs_provision.yml b/ansible/cifs_provision.yml index bf1b5ab..870cabc 100644 --- a/ansible/cifs_provision.yml +++ b/ansible/cifs_provision.yml @@ -12,17 +12,19 @@ hosts: ontap gather_facts: false connection: local + module_defaults: + group/netapp.ontap.netapp_ontap: + hostname: "{{ ontap_hostname }}" + username: "{{ ontap_username }}" + password: "{{ ontap_password }}" + https: "{{ ontap_https }}" + validate_certs: "{{ ontap_validate_certs }}" + use_rest: always tasks: # -- Step 1: Create FlexVol with NTFS security style ---------------- - name: Create volume '{{ volume_name }}' with NTFS security style netapp.ontap.na_ontap_volume: - hostname: "{{ ontap_hostname }}" - username: "{{ ontap_username }}" - password: "{{ ontap_password }}" - https: "{{ ontap_https }}" - validate_certs: "{{ ontap_validate_certs }}" - use_rest: always state: present name: "{{ volume_name }}" vserver: "{{ svm_name }}" @@ -37,12 +39,6 @@ # -- Step 2: Create CIFS share on the volume ------------------------ - name: Create CIFS share '{{ share_name }}' netapp.ontap.na_ontap_cifs: - hostname: "{{ ontap_hostname }}" - username: "{{ ontap_username }}" - password: "{{ ontap_password }}" - https: "{{ ontap_https }}" - validate_certs: "{{ ontap_validate_certs }}" - use_rest: always state: present share_name: "{{ share_name }}" path: "/{{ volume_name }}" @@ -53,12 +49,6 @@ # -- Step 3: Set share ACL ------------------------------------------ - name: Set ACL — '{{ acl_user }}' → {{ acl_permission }} netapp.ontap.na_ontap_cifs_acl: - hostname: "{{ ontap_hostname }}" - username: "{{ ontap_username }}" - password: "{{ ontap_password }}" - https: "{{ ontap_https }}" - validate_certs: "{{ ontap_validate_certs }}" - use_rest: always state: present share_name: "{{ share_name }}" vserver: "{{ svm_name }}" @@ -69,12 +59,6 @@ # -- Step 4: Verify share exists ------------------------------------ - name: Verify CIFS share '{{ share_name }}' netapp.ontap.na_ontap_rest_info: - hostname: "{{ ontap_hostname }}" - username: "{{ ontap_username }}" - password: "{{ ontap_password }}" - https: "{{ ontap_https }}" - validate_certs: "{{ ontap_validate_certs }}" - use_rest: always gather_subset: - protocols/cifs/shares parameters: diff --git a/ansible/nfs_provision.yml b/ansible/nfs_provision.yml index a1cbacd..1814989 100644 --- a/ansible/nfs_provision.yml +++ b/ansible/nfs_provision.yml @@ -12,6 +12,14 @@ hosts: ontap gather_facts: false connection: local + module_defaults: + group/netapp.ontap.netapp_ontap: + hostname: "{{ ontap_hostname }}" + username: "{{ ontap_username }}" + password: "{{ ontap_password }}" + https: "{{ ontap_https }}" + validate_certs: "{{ ontap_validate_certs }}" + use_rest: always vars: export_policy_name: "{{ volume_name }}_export_policy" @@ -20,12 +28,6 @@ # -- Step 1: Create the FlexVol volume ------------------------------ - name: Create volume '{{ volume_name }}' netapp.ontap.na_ontap_volume: - hostname: "{{ ontap_hostname }}" - username: "{{ ontap_username }}" - password: "{{ ontap_password }}" - https: "{{ ontap_https }}" - validate_certs: "{{ ontap_validate_certs }}" - use_rest: always state: present name: "{{ volume_name }}" vserver: "{{ svm_name }}" @@ -39,12 +41,6 @@ # -- Step 2: Create a dedicated NFS export policy ------------------- - name: Create export policy '{{ export_policy_name }}' netapp.ontap.na_ontap_export_policy: - hostname: "{{ ontap_hostname }}" - username: "{{ ontap_username }}" - password: "{{ ontap_password }}" - https: "{{ ontap_https }}" - validate_certs: "{{ ontap_validate_certs }}" - use_rest: always state: present name: "{{ export_policy_name }}" vserver: "{{ svm_name }}" @@ -53,12 +49,6 @@ # -- Step 3: Add a client-match rule to the policy ------------------ - name: Add client rule '{{ client_match }}' to export policy netapp.ontap.na_ontap_export_policy_rule: - hostname: "{{ ontap_hostname }}" - username: "{{ ontap_username }}" - password: "{{ ontap_password }}" - https: "{{ ontap_https }}" - validate_certs: "{{ ontap_validate_certs }}" - use_rest: always state: present policy_name: "{{ export_policy_name }}" vserver: "{{ svm_name }}" @@ -72,12 +62,6 @@ # -- Step 4: Assign the export policy to the volume ----------------- - name: Assign export policy to volume '{{ volume_name }}' netapp.ontap.na_ontap_volume: - hostname: "{{ ontap_hostname }}" - username: "{{ ontap_username }}" - password: "{{ ontap_password }}" - https: "{{ ontap_https }}" - validate_certs: "{{ ontap_validate_certs }}" - use_rest: always state: present name: "{{ volume_name }}" vserver: "{{ svm_name }}"