first commit

This commit is contained in:
ace 2024-05-08 19:27:42 +03:00
commit 65534b2c47
Signed by: ace
GPG Key ID: 2C08973DD37A76FD
10 changed files with 190 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.galaxy_install_info
roles

70
README.md Normal file
View File

@ -0,0 +1,70 @@
# Setup VictoriaMetrics 1.101.1 cluster
## Install ansible and requirements in virtualenv
mkvirtualenv ansible-9.5.1
pip install -r requirements.txt
deactivate
workon ansible-9.5.1
## Install roles
ansible-playbook ansible-roles.yaml
## Install Patroni
ansible-playbook -i inventory/hosts victoriametrics.yaml -u almalinux
## Example hosts file:
[victoriametrics:children]
vmstorage
vminsert
vmselect
vmauth
vmagent
[vmstorage]
vm-1
vm-2
vm-3
[vminsert]
vm-1
vm-2
vm-3
[vmselect]
vm-1
vm-2
vm-3
[vmauth]
vm-1
vm-2
vm-3
[vmagent]
vm-1
vm-2
vm-3
Example group_vars:
victoriametrics_vmauth_reloadAuthKey: reload-auth-key
victoriametrics_vmauth_users:
- id: "1"
username: "foobar"
password: "foobar"
victoriametrics_vmagent_prometheus_config:
global:
scrape_interval: '1m'
scrape_timeout: '1m'
scrape_configs:
- job_name: 'rgw'
stream_parse: true
static_configs:
- targets: ['127.0.0.1:9242']

6
ansible-roles.yaml Normal file
View File

@ -0,0 +1,6 @@
- hosts: localhost
gather_facts: false
tasks:
- name: Install roles
local_action: ansible.builtin.command ansible-galaxy install -r requirements.yaml -p roles

13
ansible.cfg Normal file
View File

@ -0,0 +1,13 @@
[defaults]
timeout = 300
jinja2_native = True
host_key_checking = False
pipelining = True
callbacks_enabled = timer, profile_tasks
forks = 50
roles_path = roles
interpreter_python = auto_silent
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o UserKnownHostsFile=/dev/null

View File

@ -0,0 +1,4 @@
victoriametrics_vmauth_users:
- id: "1"
username: "foobar"
password: "foobar"

36
inventory/hosts Normal file
View File

@ -0,0 +1,36 @@
[all]
vm-1 ansible_host=192.168.79.84
vm-2 ansible_host=192.168.79.69
vm-3 ansible_host=192.168.79.80
[victoriametrics:children]
vmstorage
vminsert
vmselect
vmauth
vmagent
[vmstorage]
vm-1
vm-2
vm-3
[vminsert]
vm-1
vm-2
vm-3
[vmselect]
vm-1
vm-2
vm-3
[vmauth]
vm-1
vm-2
vm-3
[vmagent]
vm-1
vm-2
vm-3

10
requirements.txt Normal file
View File

@ -0,0 +1,10 @@
ansible==9.5.1
ansible-core==2.16.6
cffi==1.16.0
cryptography==42.0.7
Jinja2==3.1.4
MarkupSafe==2.1.5
packaging==24.0
pycparser==2.22
PyYAML==6.0.1
resolvelib==1.0.1

7
requirements.yaml Normal file
View File

@ -0,0 +1,7 @@
---
- src: https://gitea.geekhome.org/ansible-galaxy/hosts.git
scm: git
name: hosts
- src: https://gitea.geekhome.org/ansible-galaxy/victoriametrics.git
scm: git
name: victoriametrics

View File

42
victoriametrics.yaml Normal file
View File

@ -0,0 +1,42 @@
- hosts: localhost
gather_facts: false
tasks:
- name: Print Ansible version
debug:
msg: "{{ ansible_version }}"
- hosts: victoriametrics
gather_facts: false
tasks:
- name: Wait 300 seconds
ansible.builtin.wait_for_connection:
timeout: 300
- hosts: victoriametrics
tasks:
- name: Include Patroni vars
ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_facts['distribution'] }}-{{ ansible_facts['distribution_major_version'] }}.yaml"
- "{{ ansible_facts['distribution'] }}-{{ ansible_facts['distribution_version'] }}.yaml"
- "{{ ansible_facts['os_family'] }}-{{ ansible_facts['distribution_major_version'] }}.yaml"
- "{{ ansible_facts['os_family'] }}-{{ ansible_facts['distribution_version'] }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- victoriametrics.yaml
paths:
- "vars"
- hosts: victoriametrics
gather_facts: true
become: true
tasks:
- name: Set hostname
ansible.builtin.hostname:
name: "{{ inventory_hostname }}"
- import_role:
name: hosts
- import_role:
name: victoriametrics