Ansible roles and playbooks for Victoria Metrics.
Roles are published in ansible galaxy: https://galaxy.ansible.com/ui/namespaces/victoriametrics/
Install collection:
ansible-galaxy collection install victoriametrics.cluster
Collection includes the following roles:
- single - installs and configures VictoriaMetrics single node
- vmagent - installs and configures
vmagent
- vmalert - installs and configures
vmalert
- vmselect - installs and configures
vmselect
- vmstorage - installs and configures
vmstorage
- vminsert - installs and configures
vminsert
- vmauth - installs and configures
vmauth
See cluster and single playbooks for examples of how to use these roles.
Deprecated roles:
- docker - role for docker installation
- load_balancer - nginx setup for load balancing between select and insert nodes
- cluster - installs and configures VictoriaMetrics cluster running in docker
These roles are deprecated in favor of roles for each component. They are still available in the collection, but will be removed in future releases. Note that per-component roles are using binary releases of VictoriaMetrics, while cluster role is using docker images.
Cluster deployment example is available in playbooks/cluster.yml. The playbook deploys VictoriaMetrics cluster and vmauth to act as a load balancer and authentication proxy. See inventory for example of inventory file.
Here is a diagram of the cluster deployment:
It's also possible to use molecule scenario to create a local cluster for testing.
See molecule directory for details. The scenario uses docker as a driver and
sets up a container for each component. The scenario can be deployed by
using make molecule-converge-cluster-integration
command.
In order to set up development environment, you need to have docker
, python
and make
installed.
Run make init-venv
to create virtual environment and install required packages for linting and testing
with molecule.
Please, note that cluster role is tested with vagrant
and libvirt
provider and
requires vagrant
to be installed.
Refer to Makefile for available commands for linting and molecule testing.