74 lines
2.8 KiB
YAML
74 lines
2.8 KiB
YAML
---
|
|
|
|
- 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
|