From 6dfb60165ae04f2e756179b53065377f3b2c4eac Mon Sep 17 00:00:00 2001 From: polyfloyd Date: Wed, 30 Apr 2025 19:33:26 +0200 Subject: [PATCH] Add a distinct nodesource role --- chat.yaml | 1 + pad.yaml | 1 + roles/chat/tasks/main.yaml | 23 +----------- roles/chat/templates/nodejs-apt-pref | 5 --- roles/chat/templates/nodesource.list | 3 -- roles/etherpad/defaults/main.yaml | 1 - roles/etherpad/tasks/main.yaml | 37 +------------------ roles/nodesource/defaults/main.yaml | 2 + roles/nodesource/handlers/main.yaml | 3 ++ roles/nodesource/tasks/main.yaml | 33 +++++++++++++++++ .../templates/nodejs-apt-pref | 0 .../templates/nodesource.list | 2 +- 12 files changed, 44 insertions(+), 67 deletions(-) delete mode 100644 roles/chat/templates/nodejs-apt-pref delete mode 100644 roles/chat/templates/nodesource.list create mode 100644 roles/nodesource/defaults/main.yaml create mode 100644 roles/nodesource/handlers/main.yaml create mode 100644 roles/nodesource/tasks/main.yaml rename roles/{etherpad => nodesource}/templates/nodejs-apt-pref (100%) rename roles/{etherpad => nodesource}/templates/nodesource.list (56%) diff --git a/chat.yaml b/chat.yaml index a5b4c42..fdf3a9a 100644 --- a/chat.yaml +++ b/chat.yaml @@ -6,4 +6,5 @@ - { role: "nft", tags: [ "nft" ] } - { role: "nginx", tags: [ "nginx" ] } - { role: "acme", tags: [ "acme" ] } + - { role: "nodesource", tags: [ "nodesource" ] } - { role: "chat", tags: [ "chat" ] } diff --git a/pad.yaml b/pad.yaml index 380e790..1d35c0d 100644 --- a/pad.yaml +++ b/pad.yaml @@ -9,4 +9,5 @@ - { role: "nft", tags: [ "nft" ] } - { role: "acme", tags: [ "acme" ] } - { role: "nginx", tags: [ "nginx" ] } + - { role: "nodesource", tags: [ "nodesource" ] } - { role: "etherpad", tags: [ "etherpad" ] } diff --git a/roles/chat/tasks/main.yaml b/roles/chat/tasks/main.yaml index 7b74982..696d5e5 100644 --- a/roles/chat/tasks/main.yaml +++ b/roles/chat/tasks/main.yaml @@ -4,17 +4,8 @@ ansible.builtin.apt: state: present pkg: - - gpg - - apt-transport-https - build-essential - -- name: Import nodesource signing key - ansible.builtin.shell: - cmd: curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor - -o /usr/share/keyrings/nodesource.gpg - args: - creates: /usr/share/keyrings/nodesource.gpg - notify: Apt update + - nodejs - name: Ensure directories are present ansible.builtin.file: @@ -30,20 +21,8 @@ notify: - Restart thelounge -- name: Configure templates - ansible.builtin.template: - src: "{{ item.src }}" - dest: "{{ item.dest }}" - owner: "{{ item.owner | default( chat_user ) }}" - group: "{{ item.group | default( chat_group ) }}" - mode: "{{ item.mode | default('0640') }}" - with_items: - - { src: "nodesource.list", dest: "/etc/apt/sources.list.d/nodesource.list", owner: root, group: root } - - { src: "nodejs-apt-pref", dest: "/etc/apt/preferences.d/nodejs", owner: root, group: root } - - name: Install nodejs ansible.builtin.apt: - name: nodejs - name: Install yarn ansible.builtin.shell: diff --git a/roles/chat/templates/nodejs-apt-pref b/roles/chat/templates/nodejs-apt-pref deleted file mode 100644 index 6193912..0000000 --- a/roles/chat/templates/nodejs-apt-pref +++ /dev/null @@ -1,5 +0,0 @@ -# {{ ansible_managed }} - -Package: nodejs -Pin: origin deb.nodesource.com -Pin-Priority: 1000 diff --git a/roles/chat/templates/nodesource.list b/roles/chat/templates/nodesource.list deleted file mode 100644 index 6ac9322..0000000 --- a/roles/chat/templates/nodesource.list +++ /dev/null @@ -1,3 +0,0 @@ -# {{ ansible_managed }} - -deb [arch=amd64 signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_{{ nodejs_version }} nodistro main diff --git a/roles/etherpad/defaults/main.yaml b/roles/etherpad/defaults/main.yaml index 7e1952a..4a05b97 100644 --- a/roles/etherpad/defaults/main.yaml +++ b/roles/etherpad/defaults/main.yaml @@ -1,4 +1,3 @@ -nodejs_version: 22.x etherpad_db_user: etherpad etherpad_db_password: "{{ lookup('password', '/tmp/etherpad_db_password length=32') }}" etherpad_db_name: etherpad diff --git a/roles/etherpad/tasks/main.yaml b/roles/etherpad/tasks/main.yaml index 38dc4d3..e19835c 100644 --- a/roles/etherpad/tasks/main.yaml +++ b/roles/etherpad/tasks/main.yaml @@ -3,43 +3,10 @@ - name: Install dependencies ansible.builtin.apt: state: present - pkg: - - gpg + pkg: + - nodejs - postgresql - python3-psycopg2 - - apt-transport-https - -- name: Import nodesource signing key - ansible.builtin.shell: - cmd: curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor - -o /usr/share/keyrings/nodesource.gpg - args: - creates: /usr/share/keyrings/nodesource.gpg - notify: apt update - -- name: Install nodesource source list - ansible.builtin.template: - src: nodesource.list - dest: /etc/apt/sources.list.d/nodesource.list - owner: root - group: root - mode: 0644 - notify: apt update - -- name: Install nodejs apt preference - ansible.builtin.template: - src: nodejs-apt-pref - dest: /etc/apt/preferences.d/nodejs - owner: root - group: root - mode: 0644 - notify: apt update - -- ansible.builtin.meta: flush_handlers - -- name: Install nodejs - ansible.builtin.apt: - name: nodejs - name: Add database user become: true diff --git a/roles/nodesource/defaults/main.yaml b/roles/nodesource/defaults/main.yaml new file mode 100644 index 0000000..6ab2293 --- /dev/null +++ b/roles/nodesource/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +nodesource_version: 22.x diff --git a/roles/nodesource/handlers/main.yaml b/roles/nodesource/handlers/main.yaml new file mode 100644 index 0000000..e7a11ce --- /dev/null +++ b/roles/nodesource/handlers/main.yaml @@ -0,0 +1,3 @@ +--- +- ansible.builtin.import_tasks: + file: ../../common/handlers/main.yaml diff --git a/roles/nodesource/tasks/main.yaml b/roles/nodesource/tasks/main.yaml new file mode 100644 index 0000000..f35afde --- /dev/null +++ b/roles/nodesource/tasks/main.yaml @@ -0,0 +1,33 @@ +--- +- name: Install dependencies + ansible.builtin.apt: + state: present + pkg: + - apt-transport-https + - gpg + +- name: Import nodesource signing key + ansible.builtin.shell: + cmd: | + set -o pipefail + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg + executable: /bin/bash + args: + creates: /usr/share/keyrings/nodesource.gpg + notify: apt update + +- name: Install nodesource apt files + ansible.builtin.template: + src: nodesource.list + dest: /etc/apt/sources.list.d/nodesource.list + owner: root + group: root + mode: 0644 + notify: apt update + with_items: + - src: nodesource.list + dest: /etc/apt/sources.list.d/nodesource.list + - src: nodejs-apt-pref + dest: /etc/apt/preferences.d/nodejs + +- ansible.builtin.meta: flush_handlers diff --git a/roles/etherpad/templates/nodejs-apt-pref b/roles/nodesource/templates/nodejs-apt-pref similarity index 100% rename from roles/etherpad/templates/nodejs-apt-pref rename to roles/nodesource/templates/nodejs-apt-pref diff --git a/roles/etherpad/templates/nodesource.list b/roles/nodesource/templates/nodesource.list similarity index 56% rename from roles/etherpad/templates/nodesource.list rename to roles/nodesource/templates/nodesource.list index 43defab..3600170 100644 --- a/roles/etherpad/templates/nodesource.list +++ b/roles/nodesource/templates/nodesource.list @@ -1,3 +1,3 @@ # {{ ansible_managed }} -deb [arch=$arch signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_{{ nodejs_version }} nodistro main +deb [arch=$arch signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_{{ nodesource_version }} nodistro main