ansible-playbooks/fresh-rss/playbook.yaml

101 lines
3.2 KiB
YAML
Raw Normal View History

2025-02-17 21:43:05 +02:00
- name: Install FreshRSS
hosts: nuculabs
become: true
become_method: sudo
vars_files:
- variables.yaml
tasks:
# Create necessary directories.
- name: "Create directories"
block:
- name: Create base directory
ansible.builtin.file:
path: "{{ fresh_rss.base_directory }}"
state: directory
mode: "0755"
ignore_errors: true
- name: Create data directory
ansible.builtin.file:
path: "{{ fresh_rss.base_directory }}/{{ fresh_rss.data_directory }}"
state: directory
mode: "0755"
ignore_errors: true
- name: Create extensions directory
ansible.builtin.file:
path: "{{ fresh_rss.base_directory }}/{{ fresh_rss.extensions_directory }}"
state: directory
mode: "0755"
ignore_errors: true
- name: Setup SELinux
block:
- name: Ensure Udica is installed
ansible.builtin.package:
name: udica
state: present
- name: Ensure container-selinux is installed
ansible.builtin.package:
name: container-selinux
state: present
- name: Copy freshrss cil
ansible.builtin.copy:
src: ./templates/selinux/freshrss.cil
dest: /tmp/freshrss.cil
mode: "0644"
- name: Load freshrss CIL policy
ansible.builtin.command:
argv:
- semodule
- -i
- /tmp/freshrss.cil
- /usr/share/udica/templates/base_container.cil
- /usr/share/udica/templates/net_container.cil
when: setup_selinux
- name: Setup Container
block:
- name: Ensure Podman is installed
ansible.builtin.package:
name: podman
state: present
- name: Pull image
containers.podman.podman_image:
name: "{{ fresh_rss.container_image }}"
state: present
- name: "Copy container"
ansible.builtin.template:
src: ./templates/container/freshrss.container.j2
dest: /etc/containers/systemd/freshrss.container
mode: "0644"
- name: Reload systemd
ansible.builtin.command:
cmd: systemctl daemon-reload
- name: Stop service
ansible.builtin.systemd_service:
name: freshrss.service
state: stopped
enabled: true
- name: Enable service
ansible.builtin.systemd_service:
name: freshrss.service
state: started
enabled: true
- name: Setup firewall
block:
- name: Create firewalld service
ansible.builtin.template:
src: ./templates/firewall/freshrss.xml.j2
dest: /etc/firewalld/services/freshrss.xml
mode: "0644"
- name: Reload firewalld
ansible.builtin.command:
argv:
- firewall-cmd
- --reload
- name: Enable firewalld service
ansible.posix.firewalld:
service: freshrss
state: enabled
permanent: true
immediate: true
offline: true
when: setup_firewall