Files
ntbops-ansible/roles/pelican_server/tasks/main.yml
T

101 lines
3.0 KiB
YAML

---
- 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]