chore: Удаление неиспользуемых скриптов из папки scripts/
Удаленные скрипты: - test-buildx-fixes.sh - не используется в проекте - update-dockerfiles-sudo.sh - не используется в проекте - test-standart.sh - устаревший подход, заменен на Molecule preset - test-playbook.yml - использовался только в test-standart.sh Обновления: - Удалена ссылка на test-standart.sh из Makefile - Теперь preset 'standart' использует стандартный Molecule подход Оставшиеся скрипты (используются): - role-manager.sh - интерактивное управление ролями - test-custom-images.sh - тестирование с собственными образами - update-playbooks.sh - обновление playbook'ов - generate-role-docs.sh - генерация документации - setup-cicd.sh - настройка CI/CD
This commit is contained in:
3
Makefile
3
Makefile
@@ -67,9 +67,6 @@ role:
|
|||||||
exit 1; \
|
exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
if [ "$$PRESET" = "standart" ]; then \
|
|
||||||
./scripts/test-standart.sh; \
|
|
||||||
else \
|
|
||||||
echo "🔧 Запуск ansible-controller контейнера..."; \
|
echo "🔧 Запуск ansible-controller контейнера..."; \
|
||||||
docker run --rm --name $(CONTAINER_NAME) -v "$(PWD):/workspace" -w /workspace \
|
docker run --rm --name $(CONTAINER_NAME) -v "$(PWD):/workspace" -w /workspace \
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
|||||||
@@ -1,115 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Тестирование исправлений buildx проблем
|
|
||||||
# Автор: Сергей Антропов
|
|
||||||
# Сайт: https://devops.org.ru
|
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
echo "🧪 ТЕСТИРОВАНИЕ ИСПРАВЛЕНИЙ BUILDX"
|
|
||||||
echo "=================================="
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Цвета для вывода
|
|
||||||
RED='\033[0;31m'
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
YELLOW='\033[0;33m'
|
|
||||||
BLUE='\033[0;34m'
|
|
||||||
RESET='\033[0m'
|
|
||||||
|
|
||||||
# Функция для вывода результатов
|
|
||||||
test_result() {
|
|
||||||
local test_name="$1"
|
|
||||||
local result="$2"
|
|
||||||
local message="$3"
|
|
||||||
|
|
||||||
if [ "$result" = "PASS" ]; then
|
|
||||||
echo -e "${GREEN}✅ $test_name: $message${RESET}"
|
|
||||||
else
|
|
||||||
echo -e "${RED}❌ $test_name: $message${RESET}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "🔍 1. Проверка версий Docker и Buildx..."
|
|
||||||
if docker version >/dev/null 2>&1; then
|
|
||||||
test_result "Docker" "PASS" "Docker доступен"
|
|
||||||
else
|
|
||||||
test_result "Docker" "FAIL" "Docker недоступен"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if docker buildx version >/dev/null 2>&1; then
|
|
||||||
test_result "Buildx" "PASS" "Buildx доступен"
|
|
||||||
else
|
|
||||||
test_result "Buildx" "FAIL" "Buildx недоступен"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "🔍 2. Тестирование docker-check-builder..."
|
|
||||||
if make docker-check-builder >/dev/null 2>&1; then
|
|
||||||
test_result "check-builder" "PASS" "Builder существует"
|
|
||||||
else
|
|
||||||
test_result "check-builder" "PASS" "Builder не найден (ожидаемо)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "🔍 3. Тестирование docker-diagnose-buildx..."
|
|
||||||
if make docker-diagnose-buildx >/dev/null 2>&1; then
|
|
||||||
test_result "diagnose" "PASS" "Диагностика работает"
|
|
||||||
else
|
|
||||||
test_result "diagnose" "FAIL" "Диагностика не работает"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "🔍 4. Тестирование docker-create-builder..."
|
|
||||||
echo "📦 Создание тестового builder..."
|
|
||||||
if make docker-create-builder >/dev/null 2>&1; then
|
|
||||||
test_result "create-builder" "PASS" "Builder создан успешно"
|
|
||||||
else
|
|
||||||
test_result "create-builder" "FAIL" "Не удалось создать builder"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "🔍 5. Проверка созданного builder..."
|
|
||||||
if make docker-check-builder >/dev/null 2>&1; then
|
|
||||||
test_result "verify-builder" "PASS" "Builder готов к работе"
|
|
||||||
else
|
|
||||||
test_result "verify-builder" "FAIL" "Builder не готов"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "🔍 6. Тестирование docker-reset-builder..."
|
|
||||||
if make docker-reset-builder >/dev/null 2>&1; then
|
|
||||||
test_result "reset-builder" "PASS" "Builder сброшен успешно"
|
|
||||||
else
|
|
||||||
test_result "reset-builder" "FAIL" "Не удалось сбросить builder"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "🔍 7. Проверка отсутствия buildx ls в коде..."
|
|
||||||
if grep -r "buildx ls" Makefile >/dev/null 2>&1; then
|
|
||||||
test_result "no-buildx-ls" "FAIL" "Найдены использования buildx ls"
|
|
||||||
else
|
|
||||||
test_result "no-buildx-ls" "PASS" "buildx ls не используется"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "🔍 8. Проверка использования inspect..."
|
|
||||||
if grep -r "buildx inspect" Makefile >/dev/null 2>&1; then
|
|
||||||
test_result "uses-inspect" "PASS" "Используется buildx inspect"
|
|
||||||
else
|
|
||||||
test_result "uses-inspect" "FAIL" "buildx inspect не используется"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=================================="
|
|
||||||
echo "🎯 РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ"
|
|
||||||
echo "=================================="
|
|
||||||
echo ""
|
|
||||||
echo "💡 Рекомендации:"
|
|
||||||
echo " - Используйте 'make docker diagnose' при проблемах"
|
|
||||||
echo " - Используйте 'make docker reset-builder' при зависаниях"
|
|
||||||
echo " - Избегайте 'docker buildx ls' в CI/CD"
|
|
||||||
echo " - Используйте 'make docker setup-builder' для настройки"
|
|
||||||
echo ""
|
|
||||||
echo "✅ Исправления buildx проблем готовы к использованию!"
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
---
|
|
||||||
# Простой тестовый playbook для проверки 3 контейнеров
|
|
||||||
# Автор: Сергей Антропов
|
|
||||||
# Сайт: https://devops.org.ru
|
|
||||||
|
|
||||||
- name: Test containers connectivity
|
|
||||||
hosts: localhost
|
|
||||||
gather_facts: false
|
|
||||||
tasks:
|
|
||||||
- name: Check container u1 (Debian)
|
|
||||||
command: docker exec u1 echo "Hello from u1"
|
|
||||||
register: u1_result
|
|
||||||
changed_when: false
|
|
||||||
|
|
||||||
- name: Check container u2 (RHEL)
|
|
||||||
command: docker exec u2 echo "Hello from u2"
|
|
||||||
register: u2_result
|
|
||||||
changed_when: false
|
|
||||||
|
|
||||||
- name: Check container u3 (Debian)
|
|
||||||
command: docker exec u3 echo "Hello from u3"
|
|
||||||
register: u3_result
|
|
||||||
changed_when: false
|
|
||||||
|
|
||||||
- name: Display results
|
|
||||||
debug:
|
|
||||||
msg:
|
|
||||||
- "u1 (Debian): {{ u1_result.stdout }}"
|
|
||||||
- "u2 (RHEL): {{ u2_result.stdout }}"
|
|
||||||
- "u3 (Debian): {{ u3_result.stdout }}"
|
|
||||||
|
|
||||||
- name: Install nginx on u1
|
|
||||||
command: docker exec u1 bash -c "apt-get update && apt-get install -y nginx"
|
|
||||||
register: nginx_u1
|
|
||||||
changed_when: false
|
|
||||||
|
|
||||||
- name: Install nginx on u2
|
|
||||||
command: docker exec u2 bash -c "yum install -y nginx"
|
|
||||||
register: nginx_u2
|
|
||||||
changed_when: false
|
|
||||||
|
|
||||||
- name: Install nginx on u3
|
|
||||||
command: docker exec u3 bash -c "apt-get update && apt-get install -y nginx"
|
|
||||||
register: nginx_u3
|
|
||||||
changed_when: false
|
|
||||||
|
|
||||||
- name: Display nginx installation results
|
|
||||||
debug:
|
|
||||||
msg:
|
|
||||||
- "Nginx installation on u1: {{ 'SUCCESS' if nginx_u1.rc == 0 else 'FAILED' }}"
|
|
||||||
- "Nginx installation on u2: {{ 'SUCCESS' if nginx_u2.rc == 0 else 'FAILED' }}"
|
|
||||||
- "Nginx installation on u3: {{ 'SUCCESS' if nginx_u3.rc == 0 else 'FAILED' }}"
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Скрипт для тестирования с preset standart
|
|
||||||
# Автор: Сергей Антропов
|
|
||||||
# Сайт: https://devops.org.ru
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "🚀 Запуск тестирования с preset standart..."
|
|
||||||
|
|
||||||
# Очищаем старые контейнеры
|
|
||||||
echo "🧹 Очистка старых контейнеров..."
|
|
||||||
docker rm -f u1 u2 u3 2>/dev/null || true
|
|
||||||
docker network rm labnet 2>/dev/null || true
|
|
||||||
|
|
||||||
# Создаем сеть
|
|
||||||
echo "📡 Создание сети labnet..."
|
|
||||||
docker network create labnet 2>/dev/null || true
|
|
||||||
|
|
||||||
# Загружаем preset конфигурацию
|
|
||||||
PRESET_FILE="molecule/presets/standart.yml"
|
|
||||||
if [ ! -f "$PRESET_FILE" ]; then
|
|
||||||
echo "❌ Ошибка: Пресет файл $PRESET_FILE не найден!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Извлекаем конфигурацию из preset файла
|
|
||||||
echo "📋 Загрузка конфигурации из $PRESET_FILE..."
|
|
||||||
|
|
||||||
# Создаем временную директорию для inventory
|
|
||||||
mkdir -p /tmp/molecule_workspace/inventory
|
|
||||||
|
|
||||||
# Создаем inventory файл
|
|
||||||
cat > /tmp/molecule_workspace/inventory/hosts.ini << EOF
|
|
||||||
[all]
|
|
||||||
localhost ansible_connection=local
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "📄 Создан inventory файл:"
|
|
||||||
cat /tmp/molecule_workspace/inventory/hosts.ini
|
|
||||||
|
|
||||||
# Запускаем контейнеры
|
|
||||||
echo "🐳 Создание контейнеров..."
|
|
||||||
|
|
||||||
# u1 - Debian
|
|
||||||
echo "Создание u1 (Debian)..."
|
|
||||||
docker run -d --name u1 \
|
|
||||||
--network labnet \
|
|
||||||
-p 2201:22 \
|
|
||||||
ubuntu:20.04 \
|
|
||||||
bash -c "apt-get update && apt-get install -y openssh-server && service ssh start && sleep infinity"
|
|
||||||
|
|
||||||
# u2 - Debian (временно используем Ubuntu вместо CentOS)
|
|
||||||
echo "Создание u2 (Debian)..."
|
|
||||||
docker run -d --name u2 \
|
|
||||||
--network labnet \
|
|
||||||
-p 2202:22 \
|
|
||||||
ubuntu:20.04 \
|
|
||||||
bash -c "apt-get update && apt-get install -y openssh-server && service ssh start && sleep infinity"
|
|
||||||
|
|
||||||
# u3 - Debian
|
|
||||||
echo "Создание u3 (Debian)..."
|
|
||||||
docker run -d --name u3 \
|
|
||||||
--network labnet \
|
|
||||||
-p 2203:22 \
|
|
||||||
ubuntu:20.04 \
|
|
||||||
bash -c "apt-get update && apt-get install -y openssh-server && service ssh start && sleep infinity"
|
|
||||||
|
|
||||||
echo "⏳ Ожидание запуска контейнеров..."
|
|
||||||
sleep 10
|
|
||||||
|
|
||||||
# Проверяем статус контейнеров
|
|
||||||
echo "📊 Статус контейнеров:"
|
|
||||||
docker ps --filter "name=u[123]" --format "table {{.Names}}\t{{.Status}}\t{{.Image}}"
|
|
||||||
|
|
||||||
# Запускаем тесты
|
|
||||||
echo "🧪 Запуск тестов..."
|
|
||||||
ansible-playbook -i /tmp/molecule_workspace/inventory/hosts.ini scripts/test-playbook.yml
|
|
||||||
|
|
||||||
echo "🧹 Очистка контейнеров..."
|
|
||||||
docker rm -f u1 u2 u3 2>/dev/null || true
|
|
||||||
docker network rm labnet 2>/dev/null || true
|
|
||||||
|
|
||||||
echo "✅ Тестирование завершено!"
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
#!/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 обновлены!"
|
|
||||||
Reference in New Issue
Block a user