101 lines
3.0 KiB
YAML
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]
|