--- - name: gather os specific variables include_vars: "{{ lookup('first_found', possible_files) }}" vars: possible_files: files: - "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml" - "{{ ansible_distribution }}.yaml" - "{{ ansible_os_family }}.yaml" - "default.yaml" paths: - vars - name: include os specific tasks include_tasks: "{{ lookup('first_found', possible_files) }}" vars: possible_files: files: - "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml" - "{{ ansible_distribution }}.yaml" - "{{ ansible_os_family }}.yaml" - "default.yaml" paths: - tasks - name: install package package: name: "{{ grafana_package_name }}" state: "{{ grafana_package_state }}" - name: "create {{ grafana_etc_path }}" file: path: "{{ grafana_etc_path }}" owner: root group: root mode: 0755 - name: configure template: src: grafana.ini.j2 dest: "{{ grafana_config_path }}" owner: root group: "{{ grafana_group }}" mode: 0640 notify: restart grafana - name: provision datasources copy: dest: "{{ grafana_provisioning_path }}/datasources/datasource.yaml" content: "{{ grafana_datasources | to_nice_yaml }}" owner: root group: "{{ grafana_group }}" mode: 0640 - name: create dashboard directory file: path: /var/lib/grafana/dashboards state: directory owner: "{{ grafana_user }}" group: "{{ grafana_group }}" mode: 0755 - name: provision dashboards copy: dest: "{{ grafana_provisioning_path }}/dashboards/dashboards.yaml" content: "{{ grafana_dashboards | to_nice_yaml }}" owner: root group: "{{ grafana_group }}" mode: 0640 - name: upload user dashboards copy: src: "files/grafana/dashboards/{{ item }}" dest: "/var/lib/grafana/dashboards/{{ item | basename }}" owner: "{{ grafana_user }}" group: "{{ grafana_group }}" mode: 0644 loop: "{{ grafana_dashboard_files | default([]) }}" - name: manage service service: name: "{{ grafana_service_name }}" state: "{{ grafana_service_state }}" enabled: "{{ grafana_service_enabled }}" - name: configure nginx include: nginx.yaml when: "'nginx' in ansible_play_role_names"