--- - name: Create Grafana directory structure ansible.builtin.file: path: "{{ item }}" state: directory owner: 472 group: 472 mode: '0755' loop: - "{{ grafana_base_dir }}" - "{{ grafana_data_dir }}" - "{{ grafana_config_dir }}" - "{{ grafana_vm_data_dir }}" - "{{ grafana_vmagent_tmp_dir | dirname }}" # создаёт /mnt/grafana/vmagent - name: Deploy vmagent configuration template: src: vmagent.yaml.j2 dest: "{{ grafana_vmagent_config }}" owner: root group: root mode: '0644' become: yes notify: restart vmagent - name: Deploy Grafana docker-compose.yml ansible.builtin.template: src: docker-compose.yml.j2 dest: "{{ grafana_base_dir }}/docker-compose.yml" owner: root group: root mode: '0644' - name: Start Grafana services ansible.builtin.shell: | cd "{{ grafana_base_dir }}" docker compose up -d args: executable: /bin/bash register: grafana_up changed_when: "'Started' in grafana_up.stdout or 'Recreated' in grafana_up.stdout" - name: Wait for services to start ansible.builtin.pause: seconds: 20 - name: Check Grafana container status ansible.builtin.shell: docker ps --filter name=grafana register: grafana_status changed_when: false - name: Show Grafana status ansible.builtin.debug: var: grafana_status.stdout_lines - name: Ensure datasources directory exists ansible.builtin.file: path: "{{ grafana_config_dir }}/datasources" state: directory owner: 472 group: 472 mode: '0755' become: yes - name: Deploy Loki datasource configuration template: src: loki-datasource.yml.j2 dest: "{{ grafana_config_dir }}/datasources/loki.yml" owner: root group: root mode: '0644' become: yes