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 архитектуре
This commit is contained in:
266
docs/cod-preset.md
Normal file
266
docs/cod-preset.md
Normal file
@@ -0,0 +1,266 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user