Skip to content

Commit 9e3c990

Browse files
ManjotScursoragent
andauthored
Persist scylla-monitoring start/stop wrapper scripts on deploy (#529)
* Persist scylla-monitoring start/stop wrapper scripts on deploy. Write /opt/scylla-monitoring/{start,stop}-monitoring.sh during monitoring role deploy so operators can restart the stack without re-running ansible or reconstructing start-all.sh arguments by hand. Co-authored-by: Cursor <cursoragent@cursor.com> * Address Copilot review on monitoring wrapper scripts. Quote paths and credentials, use conditional sudo for stop, move CQL secrets to a 0600 env file sourced at runtime, and restore env vars for ansible-driven starts. Co-authored-by: Cursor <cursoragent@cursor.com> * ci: retrigger molecule workflow Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 6c5b2e4 commit 9e3c990

5 files changed

Lines changed: 44 additions & 7 deletions

File tree

ansible-scylla-monitoring/defaults/main.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ scylla_monitoring_archive_url: 'https://github.com/scylladb/scylla-monitoring/ar
2424
scylla_monitoring_role_config_path: "{{ inventory_dir }}"
2525

2626
scylla_monitoring_deploy_path: /opt/scylla-monitoring
27+
scylla_monitoring_start_script_path: "{{ scylla_monitoring_deploy_path }}/start-monitoring.sh"
28+
scylla_monitoring_stop_script_path: "{{ scylla_monitoring_deploy_path }}/stop-monitoring.sh"
29+
scylla_monitoring_start_env_path: "{{ scylla_monitoring_deploy_path }}/start-monitoring.env"
2730
scylla_monitoring_data_path: "{{ scylla_monitoring_deploy_path }}/data"
2831
scylla_monitoring_config_path: "{{ scylla_monitoring_deploy_path }}/config"
2932
scylla_monitoring_prom_rules_path: "{{ scylla_monitoring_config_path }}/prom_rules"

ansible-scylla-monitoring/tasks/docker.yml

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,28 @@
3131
when: "'cql_credentials' in groups and item.split('=')[0] == scylla_monitoring_cql_default_user | default('scylla_cql_monitor')"
3232
loop: "{{ groups['cql_credentials'] }}"
3333

34+
- name: "docker.yml: Write stop monitoring wrapper script"
35+
template:
36+
src: stop-monitoring.sh.j2
37+
dest: "{{ scylla_monitoring_stop_script_path }}"
38+
mode: '0750'
39+
owner: "{{ ansible_user_id }}"
40+
41+
- name: "docker.yml: Write start monitoring env file"
42+
template:
43+
src: start-monitoring.env.j2
44+
dest: "{{ scylla_monitoring_start_env_path }}"
45+
mode: '0600'
46+
owner: "{{ ansible_user_id }}"
47+
when: monitoring_cql_username is defined and monitoring_cql_password is defined
48+
49+
- name: "docker.yml: Write start monitoring wrapper script"
50+
template:
51+
src: start-monitoring.sh.j2
52+
dest: "{{ scylla_monitoring_start_script_path }}"
53+
mode: '0750'
54+
owner: "{{ ansible_user_id }}"
55+
3456
- name: "docker.yml: restart the docker daemon again"
3557
service:
3658
name: docker
@@ -49,15 +71,10 @@
4971
when: ansible_facts.services["docker.service"] is defined
5072

5173
- name: "docker.yml: Stop monitoring"
52-
shell: |
53-
cd {{ base_dir }}
54-
./kill-all.sh
55-
sudo ./kill-all.sh
74+
command: "{{ scylla_monitoring_stop_script_path }}"
5675

5776
- name: "docker.yml: start scylla-monitoring"
58-
shell: "{{ start_command }}"
59-
args:
60-
chdir: "{{ base_dir }}"
77+
command: "{{ scylla_monitoring_start_script_path }}"
6178
become: "{{ 'true' if run_docker_with_sudo is defined and run_docker_with_sudo|bool == True else 'false' }}"
6279
environment:
6380
SCYLLA_USER: "{% if monitoring_cql_username is defined and monitoring_cql_password is defined %}{{ monitoring_cql_username }}{% endif %}"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{% if monitoring_cql_username is defined and monitoring_cql_password is defined %}
2+
export SCYLLA_USER={{ monitoring_cql_username | quote }}
3+
export SCYLLA_PSSWD={{ monitoring_cql_password | quote }}
4+
{% endif %}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
cd {{ base_dir | quote }}
4+
ENV_FILE={{ scylla_monitoring_start_env_path | quote }}
5+
if [ -f "$ENV_FILE" ]; then
6+
# shellcheck disable=SC1090
7+
. "$ENV_FILE"
8+
fi
9+
{{ start_command }}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
cd {{ base_dir | quote }}
4+
./kill-all.sh || sudo ./kill-all.sh || true

0 commit comments

Comments
 (0)