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:
Сергей Антропов
2025-10-27 20:27:45 +03:00
parent 5ea320ce9a
commit 1b6db7445d
9 changed files with 1030 additions and 185 deletions

View File

@@ -60,7 +60,45 @@ docker logs $(docker ps -aq --filter "network=labnet" | head -1)
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) bash
```
## Пример 2: Создание собственной роли
## Пример 2: Использование роли devops
### Описание роли devops
Роль `devops` - это универсальная роль для настройки пользователей и SSH ключей на всех поддерживаемых ОС.
**Возможности:**
- Создание пользователя `devops` с настройкой пароля
- Установка SSH публичного ключа
- Настройка sudo прав
- Автоматическое определение ОС и применение соответствующих конфигураций
- Поддержка российских ОС (Alt Linux, Astra Linux, RedOS)
### Тестирование роли devops
```bash
# Тестирование с COD preset (6 хостов)
make role test cod
# Проверка результатов
docker exec -it ubuntu1 id devops
docker exec -it alt1 id devops
docker exec -it astra1 id devops
```
### Использование в других ролях
```yaml
# В вашем playbook
- name: Настройка пользователя devops
include_role:
name: devops
vars:
devops_user: "devops"
devops_password: "{{ vault_devops_password }}"
devops_ssh_public_key: "{{ vault_devops_ssh_public_key }}"
```
## Пример 3: Создание собственной роли
### Создание роли
@@ -105,7 +143,7 @@ make role test minimal
docker exec -it $(docker ps -aq --filter "network=labnet" | head -1) systemctl status nginx
```
## Пример 3: Использование preset'ов
## Пример 4: Использование preset'ов
### Minimal preset (1 хост)
@@ -127,6 +165,22 @@ make role test default
docker ps -a --filter "network=labnet"
```
### COD preset (6 хостов) - ARM64
```bash
# Тестирование на Ubuntu + Debian + Alt + Astra + CentOS + RHEL
make role test cod
# Проверка всех контейнеров
docker ps -a --filter "network=labnet" --format "table {{.Names}}\t{{.Status}}"
```
**Особенности COD preset:**
- **Платформа**: ARM64 (нативная поддержка)
- **ОС**: Ubuntu 22.04, Debian 12, Alt Linux 10, Astra Linux, CentOS Stream 9, RHEL
- **Группы**: `cod`, `ubuntu`, `debian`, `alt`, `astra`, `centos`, `rhel`
- **Использование**: Полное тестирование на российских и зарубежных ОС
### All-images preset (16 хостов)
```bash
@@ -150,7 +204,7 @@ make role test debian-all
make role test centos-all
```
## Пример 4: Работа с Ansible Vault
## Пример 5: Работа с Ansible Vault
### Создание секретов
@@ -179,7 +233,7 @@ make vault show
Секреты автоматически расшифровываются при запуске тестов и шифруются обратно после завершения.
## Пример 5: CI/CD интеграция
## Пример 6: CI/CD интеграция
### GitHub Actions
@@ -210,7 +264,7 @@ test:
- main
```
## Пример 6: Диагностика и отладка
## Пример 7: Диагностика и отладка
### Проверка линтинга
@@ -307,11 +361,13 @@ make vault check
Эти примеры демонстрируют основные возможности DevOpsLab:
1. **Быстрое тестирование** с minimal preset
2. **Полное тестирование** с all-images preset
3. **Создание ролей** через интерактивные команды
4. **Работа с Vault** для секретов
5. **Диагностика** и отладка тестов
6. **Интеграция CI/CD** для автоматизации
2. **Универсальная роль devops** для настройки пользователей и SSH
3. **COD preset** для тестирования российских и зарубежных ОС (ARM64)
4. **Полное тестирование** с all-images preset
5. **Создание ролей** через интерактивные команды
6. **Работа с Vault** для секретов
7. **Диагностика** и отладка тестов
8. **Интеграция CI/CD** для автоматизации
Для получения дополнительной информации:
- Используйте `make help` для списка команд