#!/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"