From cd7a2dd166c673a381cdb97325c7fcb7042b6cd2 Mon Sep 17 00:00:00 2001 From: Clint Byrum Date: Thu, 27 Jun 2019 11:49:31 -0700 Subject: [PATCH] Revert "install-nodejs: add support for RPM-based OSes" This reverts commit 102374feb418d7fe114a9a0b7c48ed41b08d7f0c. This broke us, one cannot assume the presence of the 'command' utility. Change-Id: If5f92650b8e0b771aa602c21bf77981d66de1ac8 --- roles/install-nodejs/README.rst | 11 +-- .../tasks/distros/install_Debian.yaml | 43 ----------- .../tasks/distros/install_Fedora.yaml | 32 -------- .../tasks/distros/install_RedHat.yaml | 18 ----- .../tasks/distros/install_Suse.yaml | 17 ----- .../tasks/distros/install_default.yaml | 8 -- roles/install-nodejs/tasks/main.yaml | 73 +++++++++++++------ 7 files changed, 53 insertions(+), 149 deletions(-) delete mode 100644 roles/install-nodejs/tasks/distros/install_Debian.yaml delete mode 100644 roles/install-nodejs/tasks/distros/install_Fedora.yaml delete mode 100644 roles/install-nodejs/tasks/distros/install_RedHat.yaml delete mode 100644 roles/install-nodejs/tasks/distros/install_Suse.yaml delete mode 100644 roles/install-nodejs/tasks/distros/install_default.yaml diff --git a/roles/install-nodejs/README.rst b/roles/install-nodejs/README.rst index e6cf203e2..09f7e0679 100644 --- a/roles/install-nodejs/README.rst +++ b/roles/install-nodejs/README.rst @@ -1,13 +1,4 @@ -Install NodeJS from nodesource. - -**OS supported** - -This role supports the following OS families: - -- Debian -- Fedora -- Red Hat -- SUSE +Install NodeJS from nodesource **Role Variables** diff --git a/roles/install-nodejs/tasks/distros/install_Debian.yaml b/roles/install-nodejs/tasks/distros/install_Debian.yaml deleted file mode 100644 index 27574f116..000000000 --- a/roles/install-nodejs/tasks/distros/install_Debian.yaml +++ /dev/null @@ -1,43 +0,0 @@ -- name: Pin nodejs installs to nodesource - copy: - src: 00-nodesource.pref - dest: /etc/apt/preferences.d/00-nodesource.pref - become: yes - -- name: Add nodesource repository key - apt_key: - url: "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" - become: yes - -- name: Add nodesource apt source repository - apt_repository: - repo: "deb-src https://deb.nodesource.com/node_{{ node_version }}.x {{ ansible_distribution_release }} main" - state: present - become: yes - -- name: Add nodesource apt repository - apt_repository: - repo: "deb https://deb.nodesource.com/node_{{ node_version }}.x {{ ansible_distribution_release }} main" - state: present - update_cache: yes - become: yes - -# Use template so that we can easily update this in the future to be able to -# use a mirror location. -- name: Pin NodeJS to nodesource apt repository - become: yes - template: - dest: /etc/apt/preferences.d/nodejs.pref - group: root - mode: 0644 - owner: root - src: nodejs.pref.j2 - -- name: Install NodeJS from nodesource - package: - name: nodejs - state: latest - become: yes - tags: - # Ignore ANSIBLE0010: We really want latest version - - skip_ansible_lint diff --git a/roles/install-nodejs/tasks/distros/install_Fedora.yaml b/roles/install-nodejs/tasks/distros/install_Fedora.yaml deleted file mode 100644 index 170dfd2ac..000000000 --- a/roles/install-nodejs/tasks/distros/install_Fedora.yaml +++ /dev/null @@ -1,32 +0,0 @@ -- name: Install Nodesource repository (Fedora < 29) - package: - name: "https://rpm.nodesource.com/pub_{{ node_version }}.x/fc/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}/nodesource-release-fc{{ ansible_distribution_major_version }}-1.noarch.rpm" - state: present - when: - - ansible_distribution_major_version < 29 - become: yes - -- name: Fail installation if node version < 11 (Fedora >= 29) - fail: - msg: Fedora 29 and later only support NodeJS >= 11.x - when: - - ansible_distribution_major_version >= 29 - - node_version < 11 - -- name: Install Nodesource repository (Fedora >= 29) - package: - name: "https://rpm.nodesource.com/pub_{{ node_version }}.x/fc/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}/nodesource-release-fc{{ ansible_distribution_major_version }}-1.noarch.rpm" - state: present - when: - - ansible_distribution_major_version >= 29 - - node_version >= 11 - become: yes - -- name: Install NodeJS - package: - name: "nodejs" - state: latest - become: yes - tags: - # Ignore ANSIBLE0010: We really want latest version - - skip_ansible_lint diff --git a/roles/install-nodejs/tasks/distros/install_RedHat.yaml b/roles/install-nodejs/tasks/distros/install_RedHat.yaml deleted file mode 100644 index a59156106..000000000 --- a/roles/install-nodejs/tasks/distros/install_RedHat.yaml +++ /dev/null @@ -1,18 +0,0 @@ -- name: Install Nodesource repository - package: - name: "https://rpm.nodesource.com/pub_{{ node_version }}.x/el/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}/nodesource-release-el{{ ansible_distribution_major_version }}-1.noarch.rpm" - state: present - -- name: Update yum cache - yum: - update_cache: yes - become: yes - -- name: Install NodeJS - package: - name: "nodejs" - state: latest - become: yes - tags: - # Ignore ANSIBLE0010: We really want latest version - - skip_ansible_lint diff --git a/roles/install-nodejs/tasks/distros/install_Suse.yaml b/roles/install-nodejs/tasks/distros/install_Suse.yaml deleted file mode 100644 index 993eb1f04..000000000 --- a/roles/install-nodejs/tasks/distros/install_Suse.yaml +++ /dev/null @@ -1,17 +0,0 @@ -- name: Update zypper cache - zypper: - update_cache: yes - become: yes - -- name: Set node package name - set_fact: - nodejs_pkg: "nodejs{{ node_version }}" - -- name: Install NodeJS - package: - name: "{{ nodejs_pkg }}" - state: latest - become: yes - tags: - # Ignore ANSIBLE0010: We really want latest version - - skip_ansible_lint diff --git a/roles/install-nodejs/tasks/distros/install_default.yaml b/roles/install-nodejs/tasks/distros/install_default.yaml deleted file mode 100644 index 879aa4d8c..000000000 --- a/roles/install-nodejs/tasks/distros/install_default.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# Note: there are possible workarounds: -# -# - https://github.com/nodejs/help/wiki/Installation#how-to-install-nodejs-via-binary-archive-on-linux -# - https://github.com/nodejs/node/blob/master/BUILDING.md#building-nodejs-on-supported-platforms - -- name: Fail for unsupported OSes - fail: - msg: "Unsupported OS family {{ ansible_os_family }}" diff --git a/roles/install-nodejs/tasks/main.yaml b/roles/install-nodejs/tasks/main.yaml index 192a06a79..553099f0c 100644 --- a/roles/install-nodejs/tasks/main.yaml +++ b/roles/install-nodejs/tasks/main.yaml @@ -1,26 +1,57 @@ -- name: Check for the presence of node - command: command -v node - register: install_nodejs_node_installed - ignore_errors: true +- name: Update apt cache + apt: + update_cache: yes + become: yes -- name: Check for the presence of npm - command: command -v npm - register: install_nodejs_npm_installed - ignore_errors: true +- name: Install prereqs + package: + name: apt-transport-https + state: present + become: yes -- name: Install nodejs according to distro - include_tasks: "{{ lookup('first_found', params) }}" - vars: - params: - files: - - "install_{{ ansible_distribution }}.{{ ansible_distribution_major_version }}.yaml" - - "install_{{ ansible_distribution }}.yaml" - - "install_{{ ansible_os_family }}.yaml" - - "install_default.yaml" - paths: - - distros - when: - install_nodejs_node_installed.rc == 1 or install_nodejs_npm_installed == 1 +- name: Pin nodejs installs to nodesource + copy: + src: 00-nodesource.pref + dest: /etc/apt/preferences.d/00-nodesource.pref + become: yes + +- name: Add nodesource repository key + apt_key: + url: "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" + become: yes + +- name: Add nodesource apt source repository + apt_repository: + repo: "deb-src https://deb.nodesource.com/node_{{ node_version }}.x {{ ansible_distribution_release }} main" + state: present + become: yes + +- name: Add nodesource apt repository + apt_repository: + repo: "deb https://deb.nodesource.com/node_{{ node_version }}.x {{ ansible_distribution_release }} main" + state: present + update_cache: yes + become: yes + +# Use template so that we can easily update this in the future to be able to +# use a mirror location. +- name: Pin NodeJS to nodesource apt repository + become: yes + template: + dest: /etc/apt/preferences.d/nodejs.pref + group: root + mode: 0644 + owner: root + src: nodejs.pref.j2 + +- name: Install NodeJS from nodesource + package: + name: nodejs + state: latest + become: yes + tags: + # Ignore ANSIBLE0010: We really want latest version + - skip_ansible_lint - name: Output node version command: node --version