1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
- name: VictoriaMetrics
  hosts: lotus-land-story
  vars:
    version: "{{ versions.victoria_metrics }}"
    cadvisor_version: "{{ versions.cadvisor }}"
  tasks:

    - name: Make directories
      ansible.builtin.file:
        path: /mnt/lotus-land-story/victoria-metrics/data
        state: directory
        mode: "0755"

    - name: Configure scrape.yml
      ansible.builtin.template:
        dest: /mnt/lotus-land-story/victoria-metrics/scrape.yml
        src: templates/scrape.yml
        mode: "0600"

    - name: Get docker network
      community.docker.docker_network:
        name: lotus_land_story
      register: docker_network

    - name: Run VictoriaMetrics
      community.docker.docker_container:
        restart: true
        name: victoria-metrics
        image: victoriametrics/victoria-metrics:{{ version }}
        command:
          - --selfScrapeInterval=5s
          - -storageDataPath=victoria-metrics-data
          - -promscrape.config=scrape.yml
        restart_policy: unless-stopped
        volumes:
          - /mnt/lotus-land-story/victoria-metrics/data:/victoria-metrics-data
          - /mnt/lotus-land-story/victoria-metrics/scrape.yml:/scrape.yml
          - /mnt/lotus-land-story/caddy/data/caddy/pki/authorities/local/root.crt:/caddy-root.crt
        networks:
          - name: lotus_land_story
        etc_hosts:
          host.docker.internal: host-gateway

    - name: Run cAdvisor
      tags: cadvisor
      community.docker.docker_container:
        name: cadvisor
        image: ghcr.io/google/cadvisor:{{ cadvisor_version }}
        restart: true
        command:
          # https://github.com/google/cadvisor/issues/2523#issuecomment-2258042352
          - "--housekeeping_interval=30s"
          - "--docker_only=true"
          - "--store_container_labels=false"
        volumes:
          - /:/rootfs:ro
          - /var/run:/var/run:rw
          - /sys:/sys:ro
          - /var/lib/docker/:/var/lib/docker:ro
          # - /etc/machine-id:/etc/machine-id:ro
        restart_policy: unless-stopped
        networks:
          - name: lotus_land_story

  handlers:
    - name: Import restarts
      ansible.builtin.import_tasks: restarts.yml

# vim: ft=yaml.ansible