- name: Set up Prometheus hosts: lotus-land-story vars_files: - vars.yml vars: prometheus_version: v2.54.1 cadvisor_version: v0.51.0 tasks: - name: Install host exporters ansible.builtin.apt: pkg: - prometheus-node-exporter - prometheus-postgres-exporter state: present - name: Configure node-exporter ansible.builtin.lineinfile: dest: /etc/default/prometheus-node-exporter regexp: '^ARGS=' # Include filesystems under /mnt line: ARGS='--collector.filesystem.ignored-mount-points="^/(dev|proc|run|sys|media|var/lib/docker/.+)($|/)"' state: present # /usr/share/doc/prometheus-postgres-exporter/README.Debian - name: Configure postgres-exporter ansible.builtin.lineinfile: dest: /etc/default/prometheus-postgres-exporter regexp: '^DATA_SOURCE_NAME=' line: "DATA_SOURCE_NAME='user=prometheus host=/run/postgresql dbname=postgres'" state: present - name: Create Prometheus dir ansible.builtin.file: path: /mnt/lotus-land-story/prometheus state: directory owner: prometheus group: prometheus mode: "0755" - name: Prometheus config ansible.builtin.template: dest: /mnt/lotus-land-story/prometheus/prometheus.yml src: templates/prometheus.yml owner: prometheus group: prometheus mode: "0600" - name: Create Prometheus volume community.docker.docker_volume: name: prometheus - name: Get prometheus user info ansible.builtin.user: name: prometheus register: prometheus_user - name: Run Prometheus community.docker.docker_container: name: prometheus image: prom/prometheus:{{ prometheus_version }} command: - --config.file=/etc/prometheus/prometheus.yml - --storage.tsdb.retention.size=5GB - --log.format=json restart: true user: "{{ prometheus_user.uid }}" groups: "{{ prometheus_user.group }}" volumes: - /mnt/lotus-land-story/prometheus:/etc/prometheus - prometheus:/prometheus restart_policy: unless-stopped networks: - name: lotus_land_story etc_hosts: host.docker.internal: host-gateway - name: Run cAdvisor community.docker.docker_container: name: cadvisor image: gcr.io/cadvisor/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 # vim: ft=yaml.ansible