- Обновлен 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 архитектуре
267 lines
8.4 KiB
Markdown
267 lines
8.4 KiB
Markdown
# 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
|