- hosts: all connection: httpapi tasks: - name: Execute 'getIntrusionPolicyList' operation ftd_configuration: operation: "getIntrusionPolicyList" query_params: filter: name~Balanced Security and Connectivity register_as: intrusion_policy - name: Execute 'getFilePolicyList' operation ftd_configuration: operation: "getFilePolicyList" query_params: filter: name~BlockMalwareAll register_as: file_policy - name: Execute 'upsertAccessRule' operation ftd_configuration: operation: upsertAccessRule data: name: Inside_Outside_Rule ruleAction: PERMIT intrusionPolicy: id: "{{ intrusion_policy[0].id }}" type: "{{ intrusion_policy[0].type}}" filePolicy: id: "{{ file_policy[0].id }}" type: "{{ file_policy[0].type}}" type: accessrule path_params: parentId: default - name: Start deployment ftd_configuration: operation: addDeployment register_as: deployment_job - name: Poll deployment status until the job is finished ftd_configuration: operation: getDeployment path_params: objId: '{{ deployment_job.id }}' register_as: deployment_status until: deployment_status.endTime != -1 retries: 100 delay: 3 - name: Stop the playbook if the deployment failed fail: msg: 'Deployment failed. Status: {{ deployment_status.statusMessages }}' when: deployment_status.state != 'DEPLOYED'