--- - name: Install Pelican server daemon packages ansible.builtin.apt: name: - ca-certificates - curl - tar state: present update_cache: true tags: [pelican_server, packages] - name: Create Pelican server directories ansible.builtin.file: path: "{{ item }}" state: directory owner: root group: root mode: "0755" loop: - "{{ pelican_server_config_dir }}" - "{{ pelican_server_runtime_dir }}" tags: [pelican_server, directories] - name: Install Pelican server daemon binary ansible.builtin.get_url: url: "{{ pelican_server_binary_url }}" dest: "{{ pelican_server_binary_path }}" owner: root group: root mode: "{{ pelican_server_binary_mode }}" notify: restart pelican server tags: [pelican_server, install] - name: Check Pelican server daemon binary ansible.builtin.stat: path: "{{ pelican_server_binary_path }}" register: pelican_server_binary tags: [pelican_server, install] - name: Require Pelican server daemon binary ansible.builtin.assert: that: - pelican_server_binary.stat.exists - pelican_server_binary.stat.executable fail_msg: >- Pelican server daemon binary was not found at {{ pelican_server_binary_path }}. Set pelican_server_binary_url or install the daemon binary before enabling this role. tags: [pelican_server, install] - name: Check Pelican server config file ansible.builtin.stat: path: "{{ pelican_server_config_file }}" register: pelican_server_config when: pelican_server_require_config | bool tags: [pelican_server, config] - name: Require Pelican server config file ansible.builtin.assert: that: - pelican_server_config.stat.exists fail_msg: >- Pelican server config was not found at {{ pelican_server_config_file }}. Create it from the Pelican panel node configuration before starting the daemon. when: pelican_server_require_config | bool tags: [pelican_server, config] - name: Install Pelican server systemd unit ansible.builtin.template: src: wings.service.j2 dest: "/etc/systemd/system/{{ pelican_server_service_name }}.service" owner: root group: root mode: "0644" notify: - reload systemd - restart pelican server tags: [pelican_server, systemd] - name: Open Pelican server daemon and SFTP ports community.general.ufw: rule: allow port: "{{ item.port }}" proto: "{{ item.proto | default('tcp') }}" loop: "{{ pelican_server_firewall_ports }}" tags: [pelican_server, firewall] - name: Open Pelican server allocation ports community.general.ufw: rule: allow port: "{{ item.port }}" proto: "{{ item.proto | default('tcp') }}" loop: "{{ pelican_server_allocation_ports }}" tags: [pelican_server, firewall] - name: Enable Pelican server service ansible.builtin.service: name: "{{ pelican_server_service_name }}" enabled: "{{ pelican_server_service_enabled }}" state: "{{ pelican_server_service_state }}" tags: [pelican_server, services]