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

267 lines
8.4 KiB
Markdown
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.

# 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