SensusAgent/runner/test-config-generation.sh
Sergey Antropoff 7316b507ad feat: добавлена гибкая конфигурация коллекторов через Ansible группы
- Создана система групповых переменных для настройки коллекторов
- Добавлены группы: proxmox, proxvms, standalone
- Создан шаблон config.yaml.j2 для автоматической генерации конфигурации
- Обновлен Ansible playbook для использования шаблонов
- Добавлен скрипт тестирования генерации конфигурации
- Создана подробная документация по новой системе
- Обновлен inventory.ini с группировкой хостов

Группы коллекторов:
- proxmox: proxcluster, proxnode, proxvms, uptime
- proxvms: proxvmsystem, uptime
- standalone: system, hba, sensors, uptime

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-09-15 14:50:51 +03:00

92 lines
2.6 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Скрипт для тестирования генерации конфигурации коллекторов
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
set -e
echo "🔧 Тестирование генерации конфигурации коллекторов"
echo "=================================================="
# Функция для тестирования группы
test_group() {
local group_name=$1
echo ""
echo "📋 Тестирование группы: $group_name"
echo "----------------------------------------"
# Создаем временный inventory файл
cat > /tmp/test_inventory.ini << EOF
[$group_name]
test-host ansible_host=127.0.0.1 ansible_user=test
EOF
# Запускаем ansible для генерации конфигурации
ansible-playbook -i /tmp/test_inventory.ini \
-e "tmp_dir=/tmp/sensusagent_test" \
--check \
--diff \
test-config-generation.yml
echo "✅ Группа $group_name протестирована"
}
# Создаем тестовый playbook
cat > test-config-generation.yml << 'EOF'
---
- hosts: all
gather_facts: no
vars:
tmp_dir: /tmp/sensusagent_test
tasks:
- name: Create temp directory
ansible.builtin.file:
path: "{{ tmp_dir }}"
state: directory
mode: '0755'
delegate_to: localhost
run_once: true
- name: Generate config.yaml from template
ansible.builtin.template:
src: templates/config.yaml.j2
dest: "{{ tmp_dir }}/config.yaml"
mode: '0644'
delegate_to: localhost
run_once: true
- name: Display generated config
ansible.builtin.debug:
msg: "Generated config for group {{ group_names[0] }}"
run_once: true
- name: Show config content
ansible.builtin.shell: cat "{{ tmp_dir }}/config.yaml"
delegate_to: localhost
run_once: true
register: config_content
- name: Display config content
ansible.builtin.debug:
var: config_content.stdout_lines
run_once: true
EOF
echo "🧪 Тестируем все группы..."
# Тестируем каждую группу
test_group "proxmox"
test_group "proxvms"
test_group "standalone"
# Очистка
rm -f /tmp/test_inventory.ini
rm -f test-config-generation.yml
rm -rf /tmp/sensusagent_test
echo ""
echo "🎉 Все тесты завершены успешно!"
echo ""
echo "📝 Для применения изменений используйте:"
echo " make delete-service && make deploy-service"