# COD Preset - Тестирование российских и зарубежных ОС **Автор:** Сергей Антропов **Сайт:** https://devops.org.ru **Версия:** 3.0.0 ## 📋 Описание COD preset (Code of Operations Development) - это специализированный пресет для тестирования Ansible ролей на российских и зарубежных операционных системах с поддержкой ARM64 архитектуры. ## 🎯 Цель Обеспечить комплексное тестирование инфраструктурных решений на: - **Зарубежных ОС**: Ubuntu, Debian, CentOS, RHEL - **Российских ОС**: Alt Linux, Astra Linux - **Архитектура**: ARM64 (нативная поддержка) ## 🖥️ Поддерживаемые ОС ### Зарубежные ОС - **Ubuntu 22.04 LTS** - популярная Linux дистрибуция - **Debian 12** - стабильная основа для многих дистрибуций - **CentOS Stream 9** - community версия RHEL - **RHEL 8** - корпоративная Linux платформа ### Российские ОС - **Alt Linux 10** - российская Linux дистрибуция - **Astra Linux 1.7** - защищенная ОС для государственных организаций ## 🚀 Использование ### Базовое тестирование ```bash # Запуск тестирования с COD preset make role test cod # Проверка статуса контейнеров docker ps -a --filter "network=labnet" --format "table {{.Names}}\t{{.Status}}\t{{.Image}}" ``` ### Тестирование конкретной роли ```bash # Тестирование роли devops make role test cod # Тестирование роли docker make role test cod ``` ### Проверка результатов ```bash # Проверка пользователя devops на всех хостах docker exec -it ubuntu1 id devops docker exec -it debian1 id devops docker exec -it alt1 id devops docker exec -it astra1 id devops docker exec -it centos1 id devops docker exec -it rhel1 id devops # Проверка SSH ключей docker exec -it ubuntu1 cat /home/devops/.ssh/authorized_keys docker exec -it alt1 cat /home/devops/.ssh/authorized_keys ``` ## 📊 Конфигурация ### Структура preset ```yaml --- # COD пресет с 6 контейнерами (Ubuntu + Debian + Alt + Astra + CentOS + RHEL) docker_network: labnet generated_inventory: "{{ molecule_ephemeral_directory }}/inventory/hosts.ini" # Образы для ARM64 images: ubuntu: "inecs/ansible-lab:ubuntu22-latest" debian: "inecs/ansible-lab:debian12-latest" alt: "inecs/ansible-lab:alt10-latest" astra: "inecs/ansible-lab:astra-linux-arm64-latest" centos: "inecs/ansible-lab:centos9-latest" rhel: "inecs/ansible-lab:rhel-latest" # ARM64 платформа platform: "linux/arm64" docker_platform: "linux/arm64" # Хосты hosts: - name: ubuntu1 family: ubuntu groups: [cod, ubuntu] platform: "linux/arm64" # ... остальные хосты ``` ### Группы хостов - **`cod`** - все хосты COD preset - **`ubuntu`** - Ubuntu хосты - **`debian`** - Debian хосты - **`alt`** - Alt Linux хосты - **`astra`** - Astra Linux хосты - **`centos`** - CentOS хосты - **`rhel`** - RHEL хосты ## 🔧 Особенности ### ARM64 поддержка - **Нативная архитектура** - все контейнеры собираются для ARM64 - **Оптимальная производительность** - без эмуляции - **Совместимость** - работает на Apple Silicon и ARM серверах ### Российские ОС - **Alt Linux** - полная поддержка пакетного менеджера apt - **Astra Linux** - совместимый образ на базе Debian - **Автоматическое определение** ОС в роли devops ### Универсальная роль devops Роль автоматически определяет тип ОС и применяет соответствующие конфигурации: ```yaml # Для российских ОС devops_russian_os_config: clearlinux: # Astra Linux package_manager: "apt" sudo_group: "sudo" additional_groups: ["sudo", "docker", "systemd-journal"] altlinux: # Alt Linux package_manager: "apt" sudo_group: "sudo" additional_groups: ["sudo", "docker", "systemd-journal"] ``` ## 📈 Примеры использования ### Тестирование инфраструктурных ролей ```bash # Тестирование роли мониторинга make role test cod # Проверка установки пакетов на разных ОС docker exec -it ubuntu1 dpkg -l | grep monitoring docker exec -it centos1 rpm -qa | grep monitoring ``` ### Тестирование безопасности ```bash # Тестирование роли безопасности make role test cod # Проверка настроек безопасности docker exec -it astra1 cat /etc/ssh/sshd_config | grep PermitRootLogin docker exec -it rhel1 cat /etc/ssh/sshd_config | grep PermitRootLogin ``` ### Тестирование контейнеризации ```bash # Тестирование роли Docker make role test cod # Проверка Docker на разных ОС docker exec -it ubuntu1 docker --version docker exec -it alt1 docker --version ``` ## 🐛 Диагностика ### Проверка контейнеров ```bash # Статус всех контейнеров docker ps -a --filter "network=labnet" # Логи конкретного контейнера docker logs ubuntu1 docker logs alt1 docker logs astra1 ``` ### Проверка сети ```bash # Информация о сети docker network inspect labnet # Проверка связности docker exec -it ubuntu1 ping -c 3 debian1 docker exec -it alt1 ping -c 3 astra1 ``` ### Проверка роли devops ```bash # Проверка пользователя docker exec -it ubuntu1 id devops docker exec -it alt1 id devops # Проверка групп docker exec -it ubuntu1 groups devops docker exec -it centos1 groups devops # Проверка sudo прав docker exec -it ubuntu1 sudo -l -U devops docker exec -it rhel1 sudo -l -U devops ``` ## 🔄 Обновление ### Обновление образов ```bash # Пересборка всех образов make docker rebuild # Пересборка конкретного образа make docker build-image IMAGE=astra-linux-arm64 make docker build-image IMAGE=redos-arm64 ``` ### Обновление preset ```bash # Проверка синтаксиса make presets info PRESET=cod # Тестирование обновленного preset make role test cod ``` ## 📚 Связанная документация - **[examples.md](examples.md)** - Примеры использования - **[creating-roles.md](creating-roles.md)** - Создание ролей - **[universal-testing.md](universal-testing.md)** - Универсальное тестирование - **[presets-by-os.md](presets-by-os.md)** - Presets по ОС ## 🎉 Заключение COD preset обеспечивает: 1. **Комплексное тестирование** на российских и зарубежных ОС 2. **ARM64 поддержку** для оптимальной производительности 3. **Универсальность** - одна роль работает на всех ОС 4. **Автоматизацию** - минимальные настройки для максимального результата 5. **Надежность** - проверка совместимости с реальными системами Используйте COD preset для: - Тестирования инфраструктурных решений - Проверки совместимости с российскими ОС - Разработки универсальных Ansible ролей - Валидации безопасности на разных платформах --- **Автор:** Сергей Антропов **Сайт:** https://devops.org.ru