- Создан пресет 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
59 lines
2.3 KiB
Bash
59 lines
2.3 KiB
Bash
#!/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 обновлены!"
|