add Final Infrastructure Setup

This commit is contained in:
Patryk Hegenberg 2026-03-29 13:45:10 +02:00
commit 7733dde658
174 changed files with 204949 additions and 0 deletions

View file

@ -0,0 +1,128 @@
---
- name: Create tixstream group
group:
name: "{{ smbgroup }}"
state: present
- name: create tixstream user
user:
name: "{{ smbuser }}"
shell: /bin/bash
groups: "{{ smbgroup }}"
append: yes
- name: create deployment directory
file: path={{ remote_deployment_dir }} state=directory
- include_tasks: mft-ubuntu-24.yml
when: ansible_distribution == "Ubuntu" and ansible_facts['distribution_version'] == "24.04"
- name: Print the package name
debug:
msg: "The box is {{ package_to_install }}"
- unarchive:
src: "{{ package_to_install.path }}"
dest: "{{ remote_deployment_dir }}"
when: oldpackage is undefined and newpackage is undefined
- unarchive:
src: "{{ package_to_install }}"
dest: "{{ remote_deployment_dir }}"
when: oldpackage is defined or newpackage is defined
- name: List unarchived MFT bundle directory
find:
paths: "{{ remote_deployment_dir }}"
patterns: "tixstream-mft-ubuntu*"
file_type: directory
register: found_directories
- name: Get latest unarchived MFT bundle directory
set_fact:
package_dir: "{{ found_directories.files | sort(attribute='mtime',reverse=true) | first }}"
- name: Check if an old version should be deployed (install script has different name)
stat: path={{ package_dir.path }}/install_mft_bundle.sh
register: old_install_script
- name: Set the correct name of the install script
set_fact:
install_script: "{{'install_mft_bundle.sh' if old_install_script.stat.exists else 'install.sh'}}"
- name: Execute MFT install script
command: "{{ package_dir.path }}/{{ install_script }} --assumeyes -u {{ smbuser }} -g {{ smbgroup }}"
- name: Set name to the nodes name in transfer-job-manager config
lineinfile:
dest: "{{ configs.mft_services.transfer_job_manager.config }}"
regexp: '^custom.transfer-job-manager.name.*$'
line: "custom.transfer-job-manager.name={{ item.value.name }}"
state: present
when: item.value.hostname == ansible_fqdn and item.value.contains_setup is defined and "mft" in item.value.contains_setup
with_dict: "{{ configs.host_config }}"
- name: Set hostname to the nodes hostname in transfer-job-manager config for a normal MFT node
lineinfile:
dest: "{{ configs.mft_services.transfer_job_manager.config }}"
regexp: '^custom.transfer-job-manager.hostname.*$'
line: "custom.transfer-job-manager.hostname={{ item.value.hostname }}"
state: present
when: item.value.hostname == ansible_fqdn and item.value.contains_setup is defined and "mft" in item.value.contains_setup
with_dict: "{{ configs.host_config }}"
- name: Set hostname to the nodes hostname in transfer-job-manager config for a clustered MFT node
lineinfile:
dest: "{{ configs.mft_services.transfer_job_manager.config }}"
regexp: '^custom.transfer-job-manager.hostname.*$'
line: "custom.transfer-job-manager.hostname={{ item.value.cluster_hostname }}"
state: present
when: item.value.hostname == ansible_fqdn and item.value.contains_setup is defined and "mft-cluster-node" in item.value.contains_setup
with_dict: "{{ configs.host_config }}"
- name: Set transfer-job-manager job scheduling options in the config
lineinfile:
dest: "{{ configs.mft_services.transfer_job_manager.config }}"
regexp: '^{{ item.option }}.*$'
line: "{{ item.line }}"
state: present
with_items: "{{ configs.mft_services.transfer_job_manager.scheduler_properties }}"
- name: Set transfer-job-manager sending max-datarate options in the config
lineinfile:
dest: "{{ configs.mft_services.transfer_job_manager.config }}"
regexp: '^custom.transfer-job-manager.default-sending-data-rate'
line: "custom.transfer-job-manager.default-sending-data-rate=10000000"
state: present
- name: Set transfer-job-manager receiving max-datarate options in the config
lineinfile:
dest: "{{ configs.mft_services.transfer_job_manager.config }}"
regexp: '^custom.transfer-job-manager.default-receiving-data-rate'
line: "custom.transfer-job-manager.default-receiving-data-rate=10000000"
state: present
- name: Enable transfer-job-manager watch folder feature
lineinfile:
dest: "{{ configs.mft_services.transfer_job_manager.config }}"
regexp: '^{{ item.option }}.*$'
line: "{{ item.line }}"
state: present
with_items: "{{ configs.mft_services.transfer_job_manager.watchfolder_properties }}"
# Use command module because service module fails to just 'enable' the services
- name: Enable MFT services to start on boot for centos
command: chkconfig {{ item.value.name }} on
with_dict: "{{ configs.mft_services }}"
when: (ansible_distribution == 'CentOS')
- name: Enable MFT services to start on boot for Ubuntu
service:
name: "{{ item.value.name }}"
enabled: yes
with_dict: "{{ configs.mft_services }}"
when: (ansible_distribution == 'Ubuntu')
# vim:ft=ansible