--- # package tasks file for n8n - name: Ensure n8n group exists ansible.builtin.group: name: "{{ n8n_group }}" system: true - name: Ensure n8n user exists ansible.builtin.user: name: "{{ n8n_user }}" group: "{{ n8n_group }}" system: true create_home: false shell: /usr/sbin/nologin - name: Ensure n8n directory exists ansible.builtin.file: path: "{{ n8n_home }}" state: directory owner: "{{ n8n_user }}" group: "{{ n8n_group }}" mode: "0755" - name: Install n8n package npm: name: "{{ n8n_package_name }}" version: "{{ n8n_package_version }}" global: true state: present become: true - name: Create n8n env file ansible.builtin.template: src: "{{ n8n_app_options.env_template | default('n8n.env.j2') }}" dest: "{{ n8n_home }}/.env" owner: "{{ n8n_user }}" group: "{{ n8n_group }}" mode: "0640" - name: Write n8n package systemd unit ansible.builtin.template: src: "{{ n8n_app_options.systemd_template | default('n8n-package.service.j2') }}" dest: "/etc/systemd/system/{{ n8n_unit_name }}.service" mode: "0644" become: true when: n8n_systemd - name: Reload systemd for n8n package ansible.builtin.systemd: daemon_reload: true become: true when: n8n_systemd - name: Enable and start n8n package ansible.builtin.systemd: name: "{{ n8n_unit_name }}.service" enabled: true state: started become: true when: n8n_systemd