96 lines
1.9 KiB
YAML
96 lines
1.9 KiB
YAML
---
|
|
# Role to install and configure a n8n server
|
|
|
|
- name: 1. Pre-install system updates
|
|
become: true
|
|
ansible.builtin.apt:
|
|
name: '*'
|
|
state: present
|
|
update_cache: true
|
|
|
|
- name: 2. Install required packages
|
|
become: true
|
|
ansible.builtin.package:
|
|
name: "{{ item }}"
|
|
state: present
|
|
loop:
|
|
- curl
|
|
- wget
|
|
- gnupg
|
|
- lsb-release
|
|
- ca-certificates
|
|
- software-properties-common
|
|
|
|
- name: 3. Enable UFW
|
|
become: true
|
|
community.general.ufw:
|
|
state: enabled
|
|
|
|
- name: 4. Open firewall ports for n8n
|
|
become: true
|
|
community.general.ufw:
|
|
rule: allow
|
|
port: "{{ item }}"
|
|
proto: tcp
|
|
loop:
|
|
- 22
|
|
- 5678
|
|
|
|
- name: 5. Download node installer
|
|
# become: true
|
|
ansible.builtin.get_url:
|
|
url: 'https://deb.nodesource.com/setup_lts.x'
|
|
dest: '/tmp/setup_lts.x'
|
|
mode: '0755'
|
|
|
|
- name: 6. Run node installer
|
|
become: true
|
|
ansible.builtin.shell:
|
|
cmd: '/tmp/setup_lts.x'
|
|
|
|
- name: 7. Install Node.js and npm
|
|
become: true
|
|
ansible.builtin.package:
|
|
name: nodejs
|
|
state: present
|
|
|
|
- name: 8. Install npm@latest
|
|
become: true
|
|
ansible.builtin.shell:
|
|
cmd: 'sudo npm install -g npm@latest'
|
|
|
|
- name: 9. Install "n8n" node.js package globally.
|
|
become: true
|
|
community.general.npm:
|
|
name: n8n
|
|
global: true
|
|
|
|
- name: 10. Copy n8n.service to /etc/systemd/system
|
|
become: true
|
|
ansible.builtin.template:
|
|
dest: /etc/systemd/system/n8n.service
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
src: n8n.service.j2
|
|
|
|
- name: 11. Create n8n user
|
|
become: true
|
|
ansible.builtin.user:
|
|
name: n8n
|
|
state: present
|
|
shell: /bin/bash
|
|
home: /home/n8n
|
|
createhome: true
|
|
|
|
- name: 12. Reload systemd to re-read configs
|
|
ansible.builtin.systemd_service:
|
|
daemon_reload: true
|
|
|
|
- name: 13. Start n8n service
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
name: n8n.service
|
|
state: restarted
|
|
enabled: true
|