Skip to content

Commit 67c8f0f

Browse files
committed
add read only for grafana
1 parent 510465e commit 67c8f0f

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

infra/aggregation_mode/ansible/playbooks/pg_monitor.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
db_password: "{{ lookup('ini', 'db_password', file=config_file) }}"
2323
monitor_pgdata: "{{ lookup('ini', 'monitor_pgdata', file=config_file, default='/var/lib/postgresql/monitor') }}"
2424
monitor_port: "{{ lookup('ini', 'monitor_port', file=config_file, default='5432') }}"
25+
grafana_postgres_user: "{{ lookup('ini', 'grafana_postgres_user', file=config_file) }}"
26+
grafana_postgres_password: "{{ lookup('ini', 'grafana_postgres_password', file=config_file) }}"
2527
no_log: true
2628

2729
- name: Debug vars
@@ -113,3 +115,22 @@
113115
shell: |
114116
psql -d pg_auto_failover -c "ALTER USER autoctl_node PASSWORD '{{ db_password }}';"
115117
no_log: true
118+
119+
- name: Create Grafana read-only user on monitor
120+
become: true
121+
become_user: postgres
122+
shell: |
123+
psql -d pg_auto_failover << 'EOF'
124+
DO $$
125+
BEGIN
126+
IF NOT EXISTS (SELECT FROM pg_catalog.pg_user WHERE usename = '{{ grafana_postgres_user }}') THEN
127+
CREATE USER {{ grafana_postgres_user }} WITH PASSWORD '{{ grafana_postgres_password }}';
128+
ELSE
129+
ALTER USER {{ grafana_postgres_user }} WITH PASSWORD '{{ grafana_postgres_password }}';
130+
END IF;
131+
END
132+
$$;
133+
GRANT CONNECT ON DATABASE pg_auto_failover TO {{ grafana_postgres_user }};
134+
GRANT pg_read_all_data TO {{ grafana_postgres_user }};
135+
EOF
136+
no_log: true

infra/aggregation_mode/ansible/playbooks/pg_node.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
node_pgdata: "{{ lookup('ini', 'node_pgdata', file=config_file, default='/var/lib/postgresql/node') }}"
2323
node_port: "{{ lookup('ini', 'node_port', file=config_file, default='5432') }}"
2424
backup_dir: "{{ lookup('ini', 'backup_dir', file=config_file, default='/var/lib/backup') }}"
25+
grafana_postgres_user: "{{ lookup('ini', 'grafana_postgres_user', file=config_file) }}"
26+
grafana_postgres_password: "{{ lookup('ini', 'grafana_postgres_password', file=config_file) }}"
2527
no_log: true
2628

2729
- name: Create backup directory
@@ -141,3 +143,23 @@
141143
psql -d {{ db_name }} -c "ALTER USER pgautofailover_replicator PASSWORD '{{ db_password }}';"
142144
when: is_writable.stdout == 't'
143145
no_log: true
146+
147+
- name: Create Grafana read-only user
148+
become: true
149+
become_user: postgres
150+
shell: |
151+
psql -d {{ db_name }} << 'EOF'
152+
DO $$
153+
BEGIN
154+
IF NOT EXISTS (SELECT FROM pg_catalog.pg_user WHERE usename = '{{ grafana_postgres_user }}') THEN
155+
CREATE USER {{ grafana_postgres_user }} WITH PASSWORD '{{ grafana_postgres_password }}';
156+
ELSE
157+
ALTER USER {{ grafana_postgres_user }} WITH PASSWORD '{{ grafana_postgres_password }}';
158+
END IF;
159+
END
160+
$$;
161+
GRANT CONNECT ON DATABASE {{ db_name }} TO {{ grafana_postgres_user }};
162+
GRANT pg_read_all_data TO {{ grafana_postgres_user }};
163+
EOF
164+
when: is_writable.stdout == 't'
165+
no_log: true

0 commit comments

Comments
 (0)