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,72 @@
|
||||
---
|
||||
- name: CLI | Check whether the binary is already present
|
||||
ansible.builtin.stat:
|
||||
path: "{{ _multica_bin }}"
|
||||
register: _multica_cli_stat
|
||||
check_mode: false
|
||||
|
||||
- name: CLI | Read the installed version
|
||||
ansible.builtin.command:
|
||||
argv: ["{{ _multica_bin }}", "--version"]
|
||||
register: _multica_cli_installed
|
||||
when: _multica_cli_stat.stat.exists
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
check_mode: false
|
||||
|
||||
# `multica --version` prints e.g. "multica 0.6.5 (commit: ..., built: ...)".
|
||||
- name: CLI | Extract the installed version string
|
||||
ansible.builtin.set_fact:
|
||||
_multica_cli_version_found: >-
|
||||
{{ ((_multica_cli_installed.stdout_lines | default([]) | first | default('')).split() + ['', ''])[1]
|
||||
if (_multica_cli_installed.rc | default(1)) == 0 else '' }}
|
||||
|
||||
- name: CLI | Decide whether an install is needed
|
||||
ansible.builtin.set_fact:
|
||||
_multica_cli_needs_install: "{{ (_multica_cli_version_found | trim) != multica_version }}"
|
||||
|
||||
- name: CLI | Install the pinned release
|
||||
when: _multica_cli_needs_install | bool
|
||||
block:
|
||||
- name: CLI | Create a staging directory
|
||||
ansible.builtin.tempfile:
|
||||
state: directory
|
||||
suffix: multica-cli
|
||||
register: _multica_stage
|
||||
become: true
|
||||
|
||||
- name: CLI | Download the release tarball
|
||||
ansible.builtin.get_url:
|
||||
url: "{{ _multica_release_url }}"
|
||||
dest: "{{ _multica_stage.path }}/{{ _multica_tarball }}"
|
||||
checksum: "{{ ('sha256:' ~ _multica_checksums_url) if multica_verify_checksum | bool else omit }}"
|
||||
mode: "0644"
|
||||
become: true
|
||||
|
||||
- name: CLI | Unpack the binary
|
||||
ansible.builtin.unarchive:
|
||||
src: "{{ _multica_stage.path }}/{{ _multica_tarball }}"
|
||||
dest: "{{ _multica_stage.path }}"
|
||||
remote_src: true
|
||||
become: true
|
||||
|
||||
# Replacing the binary while the daemon runs is fine — the handler restarts
|
||||
# it, and the daemon also watches its own binary for version changes.
|
||||
- name: CLI | Install it onto the PATH
|
||||
ansible.builtin.copy:
|
||||
src: "{{ _multica_stage.path }}/multica"
|
||||
dest: "{{ _multica_bin }}"
|
||||
remote_src: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
become: true
|
||||
notify: restart multica daemon
|
||||
|
||||
always:
|
||||
- name: CLI | Remove the staging directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ _multica_stage.path }}"
|
||||
state: absent
|
||||
become: true
|
||||
when: _multica_stage.path is defined
|
||||
Reference in new issue
Block a user