feat: Добавлен пресет all-images и установка sudo во все Dockerfile

- Создан пресет all-images для тестирования всех 9 образов
- Добавлен sudo во все Dockerfile образы
- Настроены sudoers для root и пользователей
- Упрощен site.yml (убрана установка sudo)
- Добавлена документация для пресета all-images
- Обновлен Makefile с поддержкой нового пресета
- Исправлена проблема с Parsec в Astra Linux
- Улучшена система очистки контейнеров

Пресет all-images включает:
- Debian-based: Ubuntu, Debian, Alt Linux, Astra Linux
- RHEL-based: CentOS, RHEL, AlmaLinux, Rocky Linux, RedOS
- Уникальные порты 8080-8088
- Переменные окружения TEST_OS и TEST_FAMILY
This commit is contained in:
Сергей Антропов
2025-10-25 19:00:34 +03:00
parent 94560ffaaa
commit 9ce30e0d67
18 changed files with 473 additions and 8 deletions

View File

@@ -0,0 +1,58 @@
#!/bin/bash
# Скрипт для добавления sudo во все Dockerfile
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
set -euo pipefail
echo "🔧 Добавление sudo во все Dockerfile..."
# Список всех Dockerfile для обновления
DOCKERFILES=(
"dockerfiles/ubuntu/Dockerfile"
"dockerfiles/debian/Dockerfile"
"dockerfiles/alt-linux/Dockerfile"
"dockerfiles/centos/Dockerfile"
"dockerfiles/rhel/Dockerfile"
"dockerfiles/alma/Dockerfile"
"dockerfiles/rocky/Dockerfile"
"dockerfiles/redos/Dockerfile"
)
for dockerfile in "${DOCKERFILES[@]}"; do
if [ -f "$dockerfile" ]; then
echo "📝 Обновление $dockerfile..."
# Для Debian-based систем (Ubuntu, Debian, Alt Linux)
if [[ "$dockerfile" =~ (ubuntu|debian|alt-linux) ]]; then
# Добавляем sudo в список пакетов
sed -i '/python3-pip \\/a\\ sudo \\' "$dockerfile"
# Добавляем настройку sudoers перед созданием пользователя
sed -i '/# Создаем пользователя для Ansible/i\\
# Настраиваем sudoers для root и пользователей\\
RUN echo "root ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \&\& \\\\
echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ansible-test\\
' "$dockerfile"
fi
# Для RHEL-based систем (CentOS, RHEL, Alma, Rocky, RedOS)
if [[ "$dockerfile" =~ (centos|rhel|alma|rocky|redos) ]]; then
# Добавляем sudo в список пакетов
sed -i '/python3-pip \\/a\ sudo \\' "$dockerfile"
# Добавляем настройку sudoers перед созданием пользователя
sed -i '/# Создаем пользователя для Ansible/i\
# Настраиваем sudoers для root и пользователей\
RUN echo "root ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \\\
echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ansible-test\
' "$dockerfile"
fi
echo "$dockerfile обновлен"
else
echo "⚠️ Файл $dockerfile не найден"
fi
done
echo "🎉 Все Dockerfile обновлены!"