Add immutability to PVC subrole

1. Remove the obsolete pvc-vacuum script install.

2. Remove notifies when modifying configs; we do not want to restart the
daemons uncontrolled.

3. Add bootstrap check to package installs so they only happen on
bootstrap.

This ensures this part of the role, on re-runs, will *only* update
configs and not actually touch the running daemon. This makes it safe to
run before a oneshot/update-pvc-daemons.yml playbook run.
This commit is contained in:
Joshua Boniface 2023-09-01 15:42:28 -04:00
parent 77be96bf6f
commit d6cb28b639
3 changed files with 1 additions and 51 deletions

View File

@ -40,13 +40,3 @@
- name: restart ceph-mgr - name: restart ceph-mgr
shell: "{% if is_coordinator %}sleep {{ 30 * (hostvars[inventory_hostname].ansible_local.host_id|int - 1) }} && systemctl restart ceph-mgr@{{ this_node }}.service{% endif %}" shell: "{% if is_coordinator %}sleep {{ 30 * (hostvars[inventory_hostname].ansible_local.host_id|int - 1) }} && systemctl restart ceph-mgr@{{ this_node }}.service{% endif %}"
ignore_errors: true ignore_errors: true
- name: restart pvcnoded
shell: "{% if is_coordinator %}sleep {{ 30 * (hostvars[inventory_hostname].ansible_local.host_id|int - 1) }} &&{% endif %} systemctl restart pvcnoded.service"
ignore_errors: true
when: bootstrap is not defined
- name: restart pvcapid
shell: "{% if is_coordinator %}sleep {{ 30 * (hostvars[inventory_hostname].ansible_local.host_id|int - 1) }} &&{% endif %} systemctl restart pvcapid.service"
ignore_errors: true
when: bootstrap is not defined

View File

@ -10,13 +10,12 @@
- ethtool - ethtool
- jq - jq
state: latest state: latest
when: bootstrap is defined and bootstrap
- name: install pvc node daemon configuration - name: install pvc node daemon configuration
template: template:
src: pvc/{{ item }}.j2 src: pvc/{{ item }}.j2
dest: /etc/pvc/{{ item }} dest: /etc/pvc/{{ item }}
notify:
- restart pvcnoded
with_items: with_items:
- pvcnoded.yaml - pvcnoded.yaml
@ -24,8 +23,6 @@
template: template:
src: pvc/{{ item }}.j2 src: pvc/{{ item }}.j2
dest: /etc/pvc/{{ item }} dest: /etc/pvc/{{ item }}
notify:
- restart pvcapid
with_items: with_items:
- pvcapid.yaml - pvcapid.yaml
@ -55,12 +52,6 @@
run_once: yes run_once: yes
when: bootstrap is defined and bootstrap and is_coordinator when: bootstrap is defined and bootstrap and is_coordinator
- name: install daily vacuum script
template:
src: pvc/pvc-vacuum.j2
dest: /etc/cron.daily/pvc-vacuum
mode: 0755
- meta: flush_handlers - meta: flush_handlers
- name: ensure services are started and running - name: ensure services are started and running

View File

@ -1,31 +0,0 @@
#!/bin/bash
# Daily vaccuum script for PVC daemons
# {{ ansible_managed }}
# This script cleans up the PostgreSQL databases as well as the Zookeeper
# database. This prevents filesystem growth balooning after loong running
# periods.
echo -e "----------------------------" &>>/var/log/pvc/vacuum.log
echo -e "$( date )" &>>/var/log/pvc/vacuum.log
echo -e "----------------------------" &>>/var/log/pvc/vacuum.log
#
# PostgreSQL
#
# Don't run if we aren't the Patroni primary
HOSTNAME="$( hostname -s )"
PRIMARY="$( patronictl -c /etc/patroni/config.yml -d zookeeper://localhost:2181 list --format json \
| jq -r '.[] | select(.Role == "Leader") | .Member' )"
if [[ $HOSTNAME == $PRIMARY ]]; then
# Analyze the database
su postgres -c 'vacuumdb --verbose --analyze --all' &>>/var/log/pvc/vacuum.log
fi
#
# Zookeeper
#
export ZOOCFG=/etc/zookeeper/conf/zoo.cfg
/usr/share/zookeeper/bin/zkCleanup.sh -n 7 &>>/var/log/pvc/vacuum.log