--- - name: Get node list, retry on error uri: url: https://{{ ansible_fqdn }}:{{ configs.mft_services.transfer_job_manager.proxy_port }}/transfer-job-manager/v1/admin/nodes status_code: 200 user: "{{ configs.mft_services.transfer_job_manager.api_user }}" password: "{{ configs.mft_services.transfer_job_manager.api_pass }}" force_basic_auth: yes client_cert: "{{ cert_cert_path.remote }}" client_key: "{{ cert_key_path.remote }}" validate_certs: false register: nodes_response until: nodes_response.status == 200 retries: 20 delay: 5 become: true - name: Create nodes on a host operating as MFT normally uri: url: https://{{ ansible_fqdn }}:{{ configs.mft_services.transfer_job_manager.proxy_port }}/transfer-job-manager/v1/admin/nodes method: POST status_code: 201 user: "{{ configs.mft_services.transfer_job_manager.api_user }}" password: "{{ configs.mft_services.transfer_job_manager.api_pass }}" force_basic_auth: yes client_cert: "{{ cert_cert_path.remote }}" client_key: "{{ cert_key_path.remote }}" validate_certs: false body: name: "{{ item.value.name }}" address: "https://{{ item.value.hostname }}:{{ configs.mft_services.transfer_job_manager.proxy_port }}/transfer-job-manager/v1" encryption_policy: "{{item.value.encryption_policy}}" checksum_policy: "{{item.value.checksum_policy}}" body_format: json vars: existing: "{{ nodes_response|json_query('json[*].name') }}" when: - item.value.name not in existing - item.value.contains_setup is defined - "'mft' in item.value.contains_setup" with_dict: "{{ configs.host_config }}" become: true - name: Create nodes on a host operating as a clustered MFT uri: url: https://{{ ansible_fqdn }}:{{ configs.mft_services.transfer_job_manager.proxy_port }}/transfer-job-manager/v1/admin/nodes method: POST status_code: 201 user: "{{ configs.mft_services.transfer_job_manager.api_user }}" password: "{{ configs.mft_services.transfer_job_manager.api_pass }}" force_basic_auth: yes client_cert: "{{ cert_cert_path.remote }}" client_key: "{{ cert_key_path.remote }}" validate_certs: false body: name: "{{ item.value.name }}" address: "https://{{ item.value.cluster_hostname }}:{{ configs.mft_services.transfer_job_manager.proxy_port }}/transfer-job-manager/v1" encryption_policy: "{{item.value.encryption_policy}}" checksum_policy: "{{item.value.checksum_policy}}" body_format: json vars: existing: "{{ nodes_response|json_query('json[*].name') }}" when: - item.value.name not in existing - "'spain' not in existing" - item.value.contains_setup is defined - "'mft-cluster-node' in item.value.contains_setup" - item.value.hostname != 'valencia.tixeltec.de' with_dict: "{{ configs.host_config }}" become: true # vim:ft=ansible