Files
DevOpsLab/scripts/update-dockerfiles-sudo.sh
Сергей Антропов 9ce30e0d67 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
2025-10-25 19:00:34 +03:00

59 lines
2.3 KiB
Bash
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.

#!/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 обновлены!"