- name: Install Prometheus node exporter apt: name: prometheus-node-exporter state: present - name: Run Prometheus node exporter service: name: prometheus-node-exporter state: started - name: Create Prometheus directories file: path: "{{ prom_root }}" state: directory - name: Install Prometheus configuration template: src: prometheus.yml.j2 dest: "{{ prom_root }}/prometheus.yml" - name: Create Prometheus network docker_network: name: "{{ prom_name }}" - name: Start Prometheus container docker_container: name: "{{ prom_name }}" image: prom/prometheus:{{ prom_version }} state: started restart_policy: always volumes: "{{ prom_root }}:/etc/prometheus" networks_cli_compatible: true networks: - name: "{{ prom_name }}" - name: traefik labels: traefik.http.routers.prometheus.rule: "Host(`{{ prom_domain }}`)" traefik.http.routers.prometheus.entrypoints: websecure traefik.docker.network: traefik traefik.enable: "true" - name: Start Grafana container docker_container: name: "{{ grafana_name }}" image: grafana/grafana:{{ grafana_version }} state: started restart_policy: always networks_cli_compatible: true networks: - name: "{{ prom_name }}" - name: traefik labels: traefik.http.routers.grafana.rule: "Host(`{{ grafana_domain }}`)" traefik.http.routers.grafana.entrypoints: websecure traefik.docker.network: traefik traefik.enable: "true"