added multica agent hosts
This commit is contained in:
1 parent
5559cd425d
commit
01cd7b8d1e
32 files changed
+2636
-417
No files matched your search
@@ -0,0 +1,93 @@
|
||||
---
|
||||
# Installed from the official nodejs.org tarball rather than a distro repo so
|
||||
# that multica_node_version is a real pin on every distribution.
|
||||
|
||||
- name: Node | Check whether the pinned runtime is already present
|
||||
ansible.builtin.stat:
|
||||
path: "{{ multica_install_dir }}/node"
|
||||
register: _multica_node_stat
|
||||
check_mode: false
|
||||
|
||||
- name: Node | Read the installed version
|
||||
ansible.builtin.command:
|
||||
argv: ["{{ multica_install_dir }}/node", "--version"]
|
||||
register: _multica_node_installed
|
||||
when: _multica_node_stat.stat.exists
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
check_mode: false
|
||||
|
||||
- name: Node | Decide whether an install is needed
|
||||
ansible.builtin.set_fact:
|
||||
_multica_node_needs_install: >-
|
||||
{{ (not _multica_node_stat.stat.exists)
|
||||
or (_multica_node_installed.rc | default(1)) != 0
|
||||
or (_multica_node_installed.stdout | default('') | trim) != ('v' ~ multica_node_version) }}
|
||||
|
||||
- name: Node | Install the pinned runtime
|
||||
when: _multica_node_needs_install | bool
|
||||
block:
|
||||
- name: Node | Create the install prefix
|
||||
ansible.builtin.file:
|
||||
path: "{{ multica_node_prefix }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
become: true
|
||||
|
||||
# get_url resolves `sha256:<url>` against the file's basename in SHASUMS256.txt.
|
||||
- name: Node | Download the tarball with checksum verification
|
||||
ansible.builtin.get_url:
|
||||
url: "{{ multica_node_dist_base_url }}/v{{ multica_node_version }}/node-v{{ multica_node_version }}-linux-{{ _multica_node_arch }}.tar.xz"
|
||||
dest: "/tmp/node-v{{ multica_node_version }}-linux-{{ _multica_node_arch }}.tar.xz"
|
||||
checksum: "sha256:{{ multica_node_dist_base_url }}/v{{ multica_node_version }}/SHASUMS256.txt"
|
||||
mode: "0644"
|
||||
become: true
|
||||
|
||||
- name: Node | Unpack it
|
||||
ansible.builtin.unarchive:
|
||||
src: "/tmp/node-v{{ multica_node_version }}-linux-{{ _multica_node_arch }}.tar.xz"
|
||||
dest: "{{ multica_node_prefix }}"
|
||||
remote_src: true
|
||||
owner: root
|
||||
group: root
|
||||
creates: "{{ multica_node_prefix }}/node-v{{ multica_node_version }}-linux-{{ _multica_node_arch }}/bin/node"
|
||||
become: true
|
||||
|
||||
- name: Node | Remove the downloaded tarball
|
||||
ansible.builtin.file:
|
||||
path: "/tmp/node-v{{ multica_node_version }}-linux-{{ _multica_node_arch }}.tar.xz"
|
||||
state: absent
|
||||
become: true
|
||||
|
||||
# Symlinked into /usr/local/bin, which is on systemd's default PATH — the
|
||||
# daemon's autostart unit does not source /etc/profile.d.
|
||||
- name: Node | Link node, npm and npx onto the default PATH
|
||||
ansible.builtin.file:
|
||||
src: "{{ multica_node_prefix }}/node-v{{ multica_node_version }}-linux-{{ _multica_node_arch }}/bin/{{ item }}"
|
||||
dest: "{{ multica_install_dir }}/{{ item }}"
|
||||
state: link
|
||||
force: true
|
||||
become: true
|
||||
loop: [node, npm, npx]
|
||||
|
||||
- name: Node | Create the daemon user's npm global prefix
|
||||
ansible.builtin.file:
|
||||
path: "{{ multica_npm_prefix }}"
|
||||
state: directory
|
||||
owner: "{{ multica_user }}"
|
||||
group: "{{ multica_group }}"
|
||||
mode: "0755"
|
||||
become: true
|
||||
|
||||
- name: Node | Point the daemon user's npm at that prefix
|
||||
ansible.builtin.lineinfile:
|
||||
path: "{{ multica_user_home }}/.npmrc"
|
||||
regexp: '^prefix='
|
||||
line: "prefix={{ multica_npm_prefix }}"
|
||||
create: true
|
||||
owner: "{{ multica_user }}"
|
||||
group: "{{ multica_group }}"
|
||||
mode: "0644"
|
||||
become: true
|
||||
Reference in new issue
Block a user