From 71ef979f8c5a6b58ac0fc4f9d76eb6b7f7d87aa5 Mon Sep 17 00:00:00 2001 From: Daniel Berteaud Date: Wed, 31 Aug 2022 18:00:16 +0200 Subject: [PATCH] Update to 2022-08-31 18:00 --- roles/drbd/meta/main.yml | 1 + roles/drbdtop/defaults/main.yml | 6 +++++ roles/drbdtop/tasks/.archive_pre.yml.swp | Bin 0 -> 12288 bytes roles/drbdtop/tasks/archive_post.yml | 15 +++++++++++++ roles/drbdtop/tasks/archive_pre.yml | 16 ++++++++++++++ roles/drbdtop/tasks/directories.yml | 9 ++++++++ roles/drbdtop/tasks/facts.yml | 27 +++++++++++++++++++++++ roles/drbdtop/tasks/install.yml | 27 +++++++++++++++++++++++ roles/drbdtop/tasks/main.yml | 18 +++++++++++++++ roles/vault/templates/vault.hcl.j2 | 6 +++++ 10 files changed, 125 insertions(+) create mode 100644 roles/drbdtop/defaults/main.yml create mode 100644 roles/drbdtop/tasks/.archive_pre.yml.swp create mode 100644 roles/drbdtop/tasks/archive_post.yml create mode 100644 roles/drbdtop/tasks/archive_pre.yml create mode 100644 roles/drbdtop/tasks/directories.yml create mode 100644 roles/drbdtop/tasks/facts.yml create mode 100644 roles/drbdtop/tasks/install.yml create mode 100644 roles/drbdtop/tasks/main.yml diff --git a/roles/drbd/meta/main.yml b/roles/drbd/meta/main.yml index 1af740a..0a83d51 100644 --- a/roles/drbd/meta/main.yml +++ b/roles/drbd/meta/main.yml @@ -2,3 +2,4 @@ dependencies: - role: repo_elrepo + - role: drbdtop diff --git a/roles/drbdtop/defaults/main.yml b/roles/drbdtop/defaults/main.yml new file mode 100644 index 0000000..782329d --- /dev/null +++ b/roles/drbdtop/defaults/main.yml @@ -0,0 +1,6 @@ +--- + +drbdtop_version: 0.2.2 +drbdtop_bin_url: https://github.com/LINBIT/drbdtop/releases/download/v{{ drbdtop_version }}/drbdtop-linux-amd64 +drbdtop_bin_sha256: 901b9af50b4491063c9e96d6e14510b119a0bd5c81bd63104f33242fea0c51cb +drbdtop_root_dir: /opt/drbdtop diff --git a/roles/drbdtop/tasks/.archive_pre.yml.swp b/roles/drbdtop/tasks/.archive_pre.yml.swp new file mode 100644 index 0000000000000000000000000000000000000000..0a70390d221288f7023284e9c435fbe909c3cc6a GIT binary patch literal 12288 zcmeI&zi-n(6bJAN%urMY)<>9ar*x{NNa zm{{5PPhj9Vbr7^5m9gS`(pOIGyXWVRlp)FGlb3t@v=vX3j9W?_9IqAer@hhEm+Pv` z%LhA8oTx0oP)9LA0W)jIJbJ-d0rQEJ=JTK3c?8Di@VJms&tPNRNJ6X2cQ0@~cyt-b@ zoRd3bb9TPArk{3JUUsMdy;9#<;CAT6FHBK6YwBZ8RYZN4DLvA~(X1nBabDY*r{M-l x`uq*yRo%$!PKRpym$v@BZSq0jw&hW|=)rzAGIcB$C{#?tj(U!zus( literal 0 HcmV?d00001 diff --git a/roles/drbdtop/tasks/archive_post.yml b/roles/drbdtop/tasks/archive_post.yml new file mode 100644 index 0000000..7cbe636 --- /dev/null +++ b/roles/drbdtop/tasks/archive_post.yml @@ -0,0 +1,15 @@ +--- + +- name: Compress previous version + command: tar cf {{ drbdtop_root_dir }}/archives/{{ drbdtop_current_version }}.tar.zst --use-compress-program=zstd ./ + args: + chdir: "{{ drbdtop_root_dir }}/archives/{{ drbdtop_current_version }}" + warn: False + environment: + ZSTD_CLEVEL: 10 + tags: drbd + +- name: Remove archive dir + file: path={{ drbdtop_root_dir }}/archives/{{ drbdtop_current_version }} state=absent + tags: drbd + diff --git a/roles/drbdtop/tasks/archive_pre.yml b/roles/drbdtop/tasks/archive_pre.yml new file mode 100644 index 0000000..258f890 --- /dev/null +++ b/roles/drbdtop/tasks/archive_pre.yml @@ -0,0 +1,16 @@ +--- + +- name: Create the archive dir + file: path={{ drbdtop_root_dir }}/archives/{{ drbdtop_current_version }} state=directory + tags: drbd + +- name: Backup previous version + synchronize: + src: "{{ drbdtop_root_dir }}/{{ item }}" + dest: "{{ drbdtop_root_dir }}/archives/{{ drbdtop_current_version }}/" + compress: False + delegate_to: "{{ inventory_hostname }}" + loop: + - bin + tags: drbd + diff --git a/roles/drbdtop/tasks/directories.yml b/roles/drbdtop/tasks/directories.yml new file mode 100644 index 0000000..dcaeb97 --- /dev/null +++ b/roles/drbdtop/tasks/directories.yml @@ -0,0 +1,9 @@ +--- + +- name: Create needed directories + file: path={{ item.dir }} state=directory + loop: + - dir: "{{ drbdtop_root_dir }}" + - dir: "{{ drbdtop_root_dir }}/bin" + - dir: "{{ drbdtop_root_dir }}/archives" + tags: drbd diff --git a/roles/drbdtop/tasks/facts.yml b/roles/drbdtop/tasks/facts.yml new file mode 100644 index 0000000..9b22009 --- /dev/null +++ b/roles/drbdtop/tasks/facts.yml @@ -0,0 +1,27 @@ +--- + +- set_fact: drbdtop_install_mode='none' + tags: drbd + +- name: Detect if drbd is installed + stat: path=/usr/local/bin/drbdtop + register: drbdtop_bin + tags: drbd + +- when: not drbdtop_bin.stat.exists + set_fact: drbdtop_install_mode='install' + tags: drbd + +- when: drbdtop_bin.stat.exists + block: + - name: Detect installed version + shell: /usr/local/bin/drbdtop -v 2>&1 | perl -pe 's/^[^\d]//' + changed_when: False + register: drbdtop_current_version + - set_fact: drbdtop_current_version={{ drbdtop_current_version.stdout }} + tags: drbd + +- when: drbdtop_bin.stat.exists and drbdtop_current_version != drbdtop_version + set_fact: drbdtop_install_mode='upgrade' + tags: drbd + diff --git a/roles/drbdtop/tasks/install.yml b/roles/drbdtop/tasks/install.yml new file mode 100644 index 0000000..727b5ca --- /dev/null +++ b/roles/drbdtop/tasks/install.yml @@ -0,0 +1,27 @@ +--- + +- name: Install needed tools + package: + name: + - tar + - zstd + tags: drbd + +- when: drbdtop_install_mode != 'none' + block: + - name: Download drbdtop + get_url: + url: "{{ drbdtop_bin_url }}" + dest: "{{ drbdtop_root_dir }}/bin/drbdtop" + checksum: sha256:{{ drbdtop_bin_sha256 }} + mode: 755 + tags: drbd + +- name: Install wrapper script + copy: + content: | + #!/bin/sh + TERM=xterm {{ drbdtop_root_dir }}/bin/drbdtop "$@" + dest: /usr/local/bin/drbdtop + mode: 755 + tags: drbd diff --git a/roles/drbdtop/tasks/main.yml b/roles/drbdtop/tasks/main.yml new file mode 100644 index 0000000..4483190 --- /dev/null +++ b/roles/drbdtop/tasks/main.yml @@ -0,0 +1,18 @@ +--- + +- include_tasks: directories.yml + tags: always + +- include_tasks: facts.yml + tags: always + +- include_tasks: archive_pre.yml + when: drbdtop_install_mode | default('none') == 'upgrade' + tags: always + +- include_tasks: install.yml + tags: always + +- include_tasks: archive_post.yml + when: drbdtop_install_mode | default('none') == 'upgrade' + tags: always diff --git a/roles/vault/templates/vault.hcl.j2 b/roles/vault/templates/vault.hcl.j2 index 82903cb..6fd19d7 100644 --- a/roles/vault/templates/vault.hcl.j2 +++ b/roles/vault/templates/vault.hcl.j2 @@ -30,11 +30,15 @@ storage "raft" { performance_multiplier = {{ vault_conf.storage.raft.performance_multiplier }} {% if vault_conf.storage.raft.retry_join | length > 0 %} {% for server in vault_conf.storage.raft.retry_join %} +{% if server.leader_api_addr is defined and server.leader_api_addr != vault_conf.api_addr %} retry_join { {% for key in server.keys() | list %} {{ key }} = "{{ server[key] }}" {% endfor %} } +{% else %} + # Skipping {{ server.leader_api_addr }} as it's ourself +{% endif %} {% endfor %} {% endif %} } @@ -55,3 +59,5 @@ service_registration "consul" { {% endif %} } {% endif %} + +ui = {{ vault_conf.ui | ternary('true', 'false') }}