--- - name: Master playbook to install and configure prometheus hosts: prometheus_server become: true tasks: - name: Install prerequisite software ansible.builtin.dnf: name: - tar - python3-dnf state: present - name: Permit prometheus metrics in default zone for dns service ansible.posix.firewalld: port: 9100/tcp permanent: true immediate: true state: enabled - name: Permit traffic in default zone for dns service ansible.posix.firewalld: port: 9090/tcp permanent: true immediate: true state: enabled - name: Install prometheus via role ansible.builtin.import_role: name: prometheus.prometheus.prometheus vars: prometheus_targets: node: - targets: - localhost:9100 labels: env: mk-labs - name: Permit grafana in default zone for dns service ansible.posix.firewalld: port: 3000/tcp permanent: true immediate: true state: enabled - name: Install grafana via role ansible.builtin.import_role: name: grafana.grafana.grafana # - name: Create/Update Data sources # grafana.grafana.datasource: # dataSource: | # { # "name": "Prometheus", # "type": "prometheus", # "access": "proxy", # "url": "http://localhost:9090", # "jsonData": { # "httpMethod": "POST", # "manageAlerts": true, # "prometheusType": "Prometheus", # "cacheLevel": "High" # } # } # grafana_url: "{{ grafana_url }}" # grafana_api_key: "{{ grafana_api_key }}" # state: present