diff options
| author | Ahmed Abdelhalim <[email protected]> | 2026-06-17 18:37:49 +0200 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2026-06-17 18:42:02 +0200 |
| commit | c7a4dfce1ad0b545b05a8043e321ad49e48873a6 (patch) | |
| tree | fe8a0bfc1bc31dc93a8138cce179df2416875bf4 /roles/grafana | |
| parent | d9dcfdd822f90eb65117523d7c15694fae952bd2 (diff) | |
Refactor pi roles to use .home.arpa subdomains for services
Diffstat (limited to 'roles/grafana')
| -rw-r--r-- | roles/grafana/defaults/main.yml | 1 | ||||
| -rw-r--r-- | roles/grafana/handlers/main.yml | 6 | ||||
| -rw-r--r-- | roles/grafana/meta/argument_specs.yml | 4 | ||||
| -rw-r--r-- | roles/grafana/tasks/main.yml | 15 | ||||
| -rw-r--r-- | roles/grafana/templates/grafana.ini.j2 | 4 | ||||
| -rw-r--r-- | roles/grafana/templates/grafana.nginx.conf.j2 | 10 |
6 files changed, 39 insertions, 1 deletions
diff --git a/roles/grafana/defaults/main.yml b/roles/grafana/defaults/main.yml index e61aeded..0cbbb71b 100644 --- a/roles/grafana/defaults/main.yml +++ b/roles/grafana/defaults/main.yml @@ -11,3 +11,4 @@ grafana_datasources: default: true grafana_dashboards: [] +grafana_hostname: "monitor.home.arpa" diff --git a/roles/grafana/handlers/main.yml b/roles/grafana/handlers/main.yml index 408c8c3d..b212487b 100644 --- a/roles/grafana/handlers/main.yml +++ b/roles/grafana/handlers/main.yml @@ -4,3 +4,9 @@ ansible.builtin.systemd_service: name: "{{ grafana_service }}" state: "restarted" + +- name: "Restart nginx" + become: true + ansible.builtin.systemd_service: + name: "nginx" + state: "restarted" diff --git a/roles/grafana/meta/argument_specs.yml b/roles/grafana/meta/argument_specs.yml index fee43a8c..5a38b97d 100644 --- a/roles/grafana/meta/argument_specs.yml +++ b/roles/grafana/meta/argument_specs.yml @@ -48,6 +48,10 @@ argument_specs: description: "Whether this is the default datasource" type: "bool" default: false + grafana_hostname: + type: "str" + description: "FQDN for the grafana nginx vhost (e.g. 'monitor.home.arpa')." + default: "monitor.home.arpa" grafana_dashboards: description: "List of community dashboards to download and provision" type: "list" diff --git a/roles/grafana/tasks/main.yml b/roles/grafana/tasks/main.yml index 3e29489b..f1fa479e 100644 --- a/roles/grafana/tasks/main.yml +++ b/roles/grafana/tasks/main.yml @@ -86,3 +86,18 @@ name: "{{ grafana_service }}" state: "started" enabled: true + +- name: "Create grafana nginx vhost configuration" + become: true + when: grafana_hostname | length > 0 + ansible.builtin.template: + src: "grafana.nginx.conf.j2" + dest: "/etc/nginx/vhosts.d/grafana.conf" + owner: "root" + group: "root" + mode: "0644" + backup: true + validate: > + bash -c 'echo "events { worker_connections 64; } http { include %s; }" > /tmp/nginx-vhost.conf; + sudo nginx -T -c /tmp/nginx-vhost.conf; ec=$?; rm -f /tmp/nginx-vhost.conf; exit $ec' + notify: "Restart nginx" diff --git a/roles/grafana/templates/grafana.ini.j2 b/roles/grafana/templates/grafana.ini.j2 index 7685bed2..05166994 100644 --- a/roles/grafana/templates/grafana.ini.j2 +++ b/roles/grafana/templates/grafana.ini.j2 @@ -1,6 +1,8 @@ [server] http_port = {{ grafana_port }} -root_url = http://localhost:{{ grafana_port }}/ +{% if grafana_hostname | length > 0 %} +root_url = http://{{ grafana_hostname }}/ +{% endif %} [database] type = {{ grafana_database_type }} diff --git a/roles/grafana/templates/grafana.nginx.conf.j2 b/roles/grafana/templates/grafana.nginx.conf.j2 new file mode 100644 index 00000000..e6e1052c --- /dev/null +++ b/roles/grafana/templates/grafana.nginx.conf.j2 @@ -0,0 +1,10 @@ +server { + listen 80; + listen [::]:80; + + server_name {{ grafana_hostname }}; + + location / { + proxy_pass http://127.0.0.1:{{ grafana_port }}/; + } +} |
