Files
DevOpsLab/docs/cod-preset.md
Сергей Антропов 1b6db7445d docs: Обновление документации и исправление RHEL образа
- Обновлен 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 архитектуре
2025-10-27 20:27:45 +03:00

8.4 KiB
Raw Blame History

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 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

Роль автоматически определяет тип ОС и применяет соответствующие конфигурации:

# Для российских ОС
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

📚 Связанная документация

🎉 Заключение

COD preset обеспечивает:

  1. Комплексное тестирование на российских и зарубежных ОС
  2. ARM64 поддержку для оптимальной производительности
  3. Универсальность - одна роль работает на всех ОС
  4. Автоматизацию - минимальные настройки для максимального результата
  5. Надежность - проверка совместимости с реальными системами

Используйте COD preset для:

  • Тестирования инфраструктурных решений
  • Проверки совместимости с российскими ОС
  • Разработки универсальных Ansible ролей
  • Валидации безопасности на разных платформах

Автор: Сергей Антропов
Сайт: https://devops.org.ru