--- - name: Create VictoriaMetrics system user ansible.builtin.user: name: "{{ victoriametrics_user }}" system: true create_home: false shell: /usr/sbin/nologin state: present - name: Create VictoriaMetrics directories ansible.builtin.file: path: "{{ item }}" state: directory owner: "{{ victoriametrics_user }}" group: "{{ victoriametrics_group }}" mode: '0755' loop: - "{{ victoriametrics_data_dir }}" - "{{ victoriametrics_scrape_config_dir }}" - name: Download VictoriaMetrics binary ansible.builtin.get_url: url: "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v{{ victoriametrics_version }}/victoria-metrics-linux-amd64-v{{ victoriametrics_version }}.tar.gz" dest: "/tmp/victoria-metrics-v{{ victoriametrics_version }}.tar.gz" mode: '0644' register: victoriametrics_download - name: Extract VictoriaMetrics binary ansible.builtin.unarchive: src: "/tmp/victoria-metrics-v{{ victoriametrics_version }}.tar.gz" dest: /usr/local/bin remote_src: true creates: /usr/local/bin/victoria-metrics-prod when: victoriametrics_download.changed - name: Set VictoriaMetrics binary permissions ansible.builtin.file: path: /usr/local/bin/victoria-metrics-prod owner: root group: root mode: '0755' - name: Deploy VictoriaMetrics scrape configuration ansible.builtin.template: src: scrape.yml.j2 dest: "{{ victoriametrics_scrape_config_file }}" owner: "{{ victoriametrics_user }}" group: "{{ victoriametrics_group }}" mode: '0644' notify: restart victoriametrics - name: Deploy VictoriaMetrics systemd service ansible.builtin.template: src: victoriametrics.service.j2 dest: /etc/systemd/system/victoriametrics.service owner: root group: root mode: '0644' notify: restart victoriametrics - name: Enable and start VictoriaMetrics service ansible.builtin.systemd: name: victoriametrics enabled: "{{ victoriametrics_service_enabled }}" state: "{{ victoriametrics_service_state }}" daemon_reload: true