78 lines
2.0 KiB
YAML
78 lines
2.0 KiB
YAML
---
|
|
- name: Add Grafana APT key
|
|
ansible.builtin.get_url:
|
|
url: https://apt.grafana.com/gpg.key
|
|
dest: /etc/apt/keyrings/grafana.asc
|
|
mode: "0644"
|
|
|
|
- name: Add Grafana APT repository
|
|
ansible.builtin.apt_repository:
|
|
repo: "deb [signed-by=/etc/apt/keyrings/grafana.asc] https://apt.grafana.com stable main"
|
|
state: present
|
|
filename: grafana
|
|
|
|
- name: Install Grafana
|
|
ansible.builtin.apt:
|
|
name: grafana
|
|
state: present
|
|
update_cache: true
|
|
notify: Restart grafana
|
|
|
|
- name: Create Grafana provisioning directories
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: grafana
|
|
group: grafana
|
|
mode: "0755"
|
|
loop:
|
|
- /etc/grafana/provisioning/datasources
|
|
- /etc/grafana/provisioning/dashboards
|
|
- /var/lib/grafana/dashboards
|
|
|
|
- name: Deploy Grafana datasources
|
|
ansible.builtin.template:
|
|
src: datasources.yml.j2
|
|
dest: /etc/grafana/provisioning/datasources/datasources.yml
|
|
owner: grafana
|
|
group: grafana
|
|
mode: "0640"
|
|
notify: Restart grafana
|
|
|
|
- name: Deploy Grafana dashboard provisioning
|
|
ansible.builtin.template:
|
|
src: dashboards.yml.j2
|
|
dest: /etc/grafana/provisioning/dashboards/dashboards.yml
|
|
owner: grafana
|
|
group: grafana
|
|
mode: "0640"
|
|
notify: Restart grafana
|
|
|
|
- name: Deploy default dashboards
|
|
ansible.builtin.copy:
|
|
src: "{{ item }}"
|
|
dest: /var/lib/grafana/dashboards/
|
|
owner: grafana
|
|
group: grafana
|
|
mode: "0644"
|
|
loop: "{{ lookup('fileglob', 'files/dashboards/*.json', wantlist=True) }}"
|
|
notify: Restart grafana
|
|
ignore_errors: true # OK if no dashboards yet
|
|
|
|
- name: Configure Grafana
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/grafana/grafana.ini
|
|
regexp: "{{ item.regexp }}"
|
|
line: "{{ item.line }}"
|
|
state: present
|
|
loop:
|
|
- { regexp: '^;?http_port', line: 'http_port = 3000' }
|
|
- { regexp: '^;?http_addr', line: 'http_addr = 0.0.0.0' }
|
|
notify: Restart grafana
|
|
|
|
- name: Enable and start Grafana
|
|
ansible.builtin.systemd:
|
|
name: grafana-server
|
|
enabled: true
|
|
state: started
|