- Обновлен README.md с новыми возможностями COD preset и роли devops - Добавлена документация по COD preset (docs/cod-preset.md) - Добавлена документация по роли devops (docs/devops-role.md) - Обновлена документация по ARM64 поддержке (docs/arm64-support.md) - Обновлены примеры использования (docs/examples.md) - Исправлен Dockerfile для RHEL с Python 3.11 из EPEL - Обновлен COD preset с 6 контейнерами (Ubuntu + Debian + Alt + Astra + CentOS + RHEL) - Улучшена роль devops с поддержкой российских ОС - Добавлен CHANGELOG.md с историей изменений - Все изменения протестированы на ARM64 архитектуре
8.4 KiB
8.4 KiB
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 - защищенная ОС для государственных организаций
🚀 Использование
Базовое тестирование
# Запуск тестирования с COD preset
make role test cod
# Проверка статуса контейнеров
docker ps -a --filter "network=labnet" --format "table {{.Names}}\t{{.Status}}\t{{.Image}}"
Тестирование конкретной роли
# Тестирование роли devops
make role test cod
# Тестирование роли docker
make role test cod
Проверка результатов
# Проверка пользователя 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
---
# 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 presetubuntu- 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
Роль автоматически определяет тип ОС и применяет соответствующие конфигурации:
# Для российских ОС
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"]
📈 Примеры использования
Тестирование инфраструктурных ролей
# Тестирование роли мониторинга
make role test cod
# Проверка установки пакетов на разных ОС
docker exec -it ubuntu1 dpkg -l | grep monitoring
docker exec -it centos1 rpm -qa | grep monitoring
Тестирование безопасности
# Тестирование роли безопасности
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
Тестирование контейнеризации
# Тестирование роли Docker
make role test cod
# Проверка Docker на разных ОС
docker exec -it ubuntu1 docker --version
docker exec -it alt1 docker --version
🐛 Диагностика
Проверка контейнеров
# Статус всех контейнеров
docker ps -a --filter "network=labnet"
# Логи конкретного контейнера
docker logs ubuntu1
docker logs alt1
docker logs astra1
Проверка сети
# Информация о сети
docker network inspect labnet
# Проверка связности
docker exec -it ubuntu1 ping -c 3 debian1
docker exec -it alt1 ping -c 3 astra1
Проверка роли devops
# Проверка пользователя
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
🔄 Обновление
Обновление образов
# Пересборка всех образов
make docker rebuild
# Пересборка конкретного образа
make docker build-image IMAGE=astra-linux-arm64
make docker build-image IMAGE=redos-arm64
Обновление preset
# Проверка синтаксиса
make presets info PRESET=cod
# Тестирование обновленного preset
make role test cod
📚 Связанная документация
- examples.md - Примеры использования
- creating-roles.md - Создание ролей
- universal-testing.md - Универсальное тестирование
- presets-by-os.md - Presets по ОС
🎉 Заключение
COD preset обеспечивает:
- Комплексное тестирование на российских и зарубежных ОС
- ARM64 поддержку для оптимальной производительности
- Универсальность - одна роль работает на всех ОС
- Автоматизацию - минимальные настройки для максимального результата
- Надежность - проверка совместимости с реальными системами
Используйте COD preset для:
- Тестирования инфраструктурных решений
- Проверки совместимости с российскими ОС
- Разработки универсальных Ansible ролей
- Валидации безопасности на разных платформах
Автор: Сергей Антропов
Сайт: https://devops.org.ru