- name: Set up Grafana hosts: lotus-land-story vars_files: - vars.yml tasks: - name: Create Grafana dir ansible.builtin.file: path: /mnt/lotus-land-story/grafana/provisioning/{{ item }} state: directory mode: "0755" loop: - datasources - name: Configure Grafana ansible.builtin.copy: dest: /mnt/lotus-land-story/grafana/grafana.ini content: | [metrics] enabled = true disable_total_stats = false [server] domain = grafana.{{ domain }} http_addr = 0.0.0.0 mode: "0644" - name: Provision Prometheus ansible.builtin.copy: dest: /mnt/lotus-land-story/grafana/provisioning/datasources/prometheus.yml content: | apiVersion: 1 datasources: - name: Prometheus type: prometheus # Access mode - proxy (server in the UI) or direct (browser in the UI). access: proxy url: http://prometheus:9090 jsonData: httpMethod: POST manageAlerts: true prometheusType: Prometheus prometheusVersion: 2.37.0 mode: "0644" - name: Create Grafana volume community.docker.docker_volume: name: grafana - name: Run Grafana community.docker.docker_container: # recreate: true # restart: true name: grafana image: grafana/grafana-oss:9.2.15 # ports: # - "3000:3000" volumes: - /mnt/lotus-land-story/grafana/grafana.ini:/etc/grafana/grafana.ini - /mnt/lotus-land-story/grafana/provisioning:/etc/grafana/provisioning - grafana:/var/lib/grafana restart_policy: unless-stopped networks: - name: lotus_land_story etc_hosts: host.docker.internal: host-gateway # vim: ft=yaml.ansible