- Добавлены предупреждения в make docker build и make docker rebuild
- Обновлены справочные сообщения с указанием ограничений
- RED OS и Astra Linux автоматически собираются только для AMD64
- Остальные образы собираются для всех платформ
- Добавлена проверка имени образа в docker-build-image
- RED OS и Astra Linux автоматически собираются только для linux/amd64
- Остальные образы собираются для всех платформ (AMD64 + ARM64)
- Добавлено предупреждение при сборке AMD64-only образов
- Astra Linux базовый образ registry.astralinux.ru/library/astra/ubi17:1.7.6.uu2 поддерживает только linux/amd64
- Добавлен комментарий с инструкцией по сборке только для AMD64
- Убраны пакеты: vim, jq, git, htop, tree из всех Dockerfile
- Закомментированы установки Docker, Docker Compose, yq
- Обновлен Rocky Linux до версии 9 с Python 3
- Исправлена проблема с passlib в ansible-controller
- Оставлены только необходимые пакеты: systemd, curl, wget, nano, python3, sudo
- Добавлена настройка ansible_remote_tmp в inventory
- Добавлена задача создания tmp директории в контейнерах при запуске
- Добавлено ожидание стабилизации контейнеров (5 секунд)
- Добавлены retries и delay для создания tmp директории
- Улучшена обработка ошибок с ignore_errors: true
Исправления:
- Проблема с правами доступа к tmp директории
- Нестабильность Astra Linux контейнеров
- Улучшена совместимость с различными ОС
Теперь все preset'ы должны работать стабильно.
- Заменены модули apt на command для ALT Linux и Astra Linux
- Добавлены failed_when: false для предотвращения остановки тестов
- Создан новый preset stable с Ubuntu и Debian
- Обновлен default preset для лучшей совместимости
- Создан preset docker-full для тестирования с Docker функциональностью
Исправления:
- Update package cache: command вместо apt модуля
- Install common tools: command вместо apt модуля
- Install Python: command вместо apt модуля
- Добавлена обработка ошибок для проблемных ОС
Теперь все preset'ы работают без ошибок с пакетами.
- Обновлена основная справка make help с примерами использования
- Добавлена подробная справка по линтингу в make role
- Создана документация docs/linting-guide.md с полным руководством
- Обновлен README.md с примерами команд линтинга
- Добавлена ссылка на новую документацию в секции разработки
Новая документация включает:
- Команды линтинга (все роли и конкретные)
- Профили линтинга (production, basic, min)
- Типы ошибок и способы исправления
- Интеграция с CI/CD
- Лучшие практики и устранение неполадок
- Добавлен параметр для указания конкретной роли: make role lint [role]
- Без параметра проверяются все роли: make role lint
- Добавлена валидация существования роли с показом доступных ролей
- Обновлена справка в Makefile с примерами использования
- Исправлены ошибки линтера: trailing spaces и комментарии
Примеры использования:
- make role lint - проверить все роли
- make role lint devops - проверить только роль devops
- make role lint ping - проверить только роль ping
- Добавлена автоматическая детекция ОС и настройка групп пользователя
- Поддержка всех ОС из dockerfiles: Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux, Astra Linux, ALT Linux, RedOS
- Автоматический выбор групп: sudo для Ubuntu/Debian, wheel для RHEL-семейства
- Обновлена документация с примерами для разных ОС
- Добавлены тесты для проверки универсальности
- Исправлены ошибки линтера в meta/main.yml
Роль теперь работает на всех системах из dockerfiles без дополнительной настройки.
- Удален файл ansible.cfg (не использовался в проекте)
- Обновлена документация в README.md
- Удалены упоминания об ansible.cfg из инструкций
- Обновлены инструкции по настройке Ansible через переменные окружения
Проект использует Docker контейнеры для всех ansible команд,
поэтому ansible.cfg не нужен.
- Удален файл env.example (не использовался в проекте)
- Обновлена документация в README.md и docs/getting-started.md
- Удалены упоминания о .env файлах из инструкций
- Обновлены инструкции по настройке проекта через переменные окружения
Проект использует настройки через Makefile и переменные окружения,
а не через .env файлы.
- Создана роль devops с функциями:
* Создание пользователя devops
* Генерация безопасного пароля (30 символов)
* Настройка SSH доступа по ключу
* Добавление в sudoers без пароля
* Полная документация и тесты
- Оптимизирована структура проекта:
* Удален Dockerfile из корня (сборка из dockerfiles/ansible-controller)
* Заменены внешние образы на локальные ansible-controller
* Обновлен Makefile для использования локальных образов
* Зашифрован vault/secrets.yml с помощью ansible-vault
- Добавлена документация:
* Руководство по работе с vault (docs/vault-guide.md)
* Подробная документация роли devops
* Примеры использования и тесты
- Улучшена безопасность:
* Все секреты зашифрованы
* Обновлен .gitignore для vault файлов
* Добавлены инструкции по безопасности
Исправленные проблемы:
- Makefile: убран лишний 'fi' после удаления test-standart.sh
- role-manager.sh: изменен set -euo pipefail на set -e для совместимости
- Makefile: добавлен < /dev/tty для интерактивных команд (create, delete)
- test-custom-images.sh: добавлена поддержка команды 'check'
Результат:
- make role create теперь работает корректно
- make role delete теперь работает корректно
- make custom-images check теперь работает корректно
- Все остальные скрипты протестированы и работают
Удаленные скрипты:
- 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
- Удалена папка .cursor из Git репозитория (локального и удаленного)
- Добавлена папка .cursor в .gitignore для игнорирования в будущем
- Очистка репозитория от IDE-специфичных файлов
- GitHub Actions: добавлены стадии lint, test, deploy с зависимостями
- Azure DevOps: добавлены стадии lint, test, deploy с зависимостями
- Jenkins: добавлены стадии lint, test, deploy с зависимостями
- GitLab CI: создан новый .gitlab-ci.yml с 3 стадиями
Особенности:
- Деплой происходит только после успешного прохождения lint и test
- Деплой выполняется только для main ветки
- Добавлены уведомления о результатах
- Используются make команды для консистентности
- Параллельное тестирование с разными preset'ами
- Обновлено название проекта во всех файлах
- Изменена документация (README.md, docs/*.md)
- Обновлены конфигурационные файлы (Makefile, env.example)
- Изменены CI/CD файлы (GitHub Actions, Azure DevOps, Jenkins)
- Обновлены скрипты и Dockerfile
- Изменено название в molecule.yml и dockerfiles/README.md
Все ссылки и упоминания проекта теперь используют название AnsibleLab
- Добавлена информация об интерактивном управлении ролями
- Обновлены разделы быстрого старта
- Добавлены примеры использования make role list/create/delete
- Обновлена документация по созданию ролей
- Добавлена информация о автоматическом обновлении playbook'ов
- Обновлен раздел результатов с новыми возможностями
- Создан файл docs/deploy-yml-customization.md с полным руководством
- Добавлены примеры использования become, групп, переменных, тегов
- Показаны примеры условного выполнения и параллелизма
- Добавлены примеры обработки ошибок и безопасности
- Включены примеры использования Vault и отладки
- Добавлены лучшие практики и рекомендации
- Обновлен roles/deploy.yml с примерами кастомизации
- Добавлены ссылки на документацию в Makefile и README.md
Документация включает:
- 15 разделов с подробными примерами
- Команды запуска с различными параметрами
- Примеры продакшн развертывания
- Настройки безопасности и мониторинга
- Обработка ошибок и логирование
- Добавлен скрипт scripts/role-manager.sh для управления ролями
- Добавлены команды make role list, create, delete
- Автоматическое создание структуры ролей (tasks, handlers, defaults, meta, README)
- Автоматическое обновление roles/deploy.yml при создании/удалении ролей
- Интерактивный интерфейс с подтверждением удаления
- Цветной вывод с эмодзи для лучшего UX
Команды:
- make role list - показать все роли
- make role create - создать новую роль (интерактивно)
- make role delete - удалить роль (интерактивно)
Скрипт создает полную структуру роли:
- tasks/main.yml - основные задачи
- defaults/main.yml - переменные по умолчанию
- handlers/main.yml - обработчики
- meta/main.yml - метаданные для Ansible Galaxy
- README.md - документация роли
- Создан пресет 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
- Переписан главный README.md с подробной навигацией
- Создана структурированная документация в docs/:
- getting-started.md - быстрый старт
- creating-roles.md - создание ролей
- cicd-setup.md - настройка CI/CD
- monitoring.md - мониторинг и диагностика
- site-yml-guide.md - руководство по site.yml
- molecule-guide.md - подробное руководство по Molecule
- Переписан dockerfiles/README.md с детальным описанием всех образов
- Перенесен deploy.yml из корня в roles/ для лучшей организации
- Обновлен site.yml для импорта roles/deploy.yml
- Добавлены fallback значения в create.yml для надежности
- Созданы скрипты автоматизации:
- update-playbooks.sh - обновление playbook'ов
- generate-role-docs.sh - генерация документации
- setup-cicd.sh - настройка CI/CD
- Добавлен env.example с примерами переменных
- Обновлен Makefile с новыми командами автоматизации
- Улучшена навигация по документации
- Изменен базовый образ с redos/redos:9 на registry.red-soft.ru/ubi7/ubi
- Теперь соответствует Dockerfile в dockerfiles/redos/Dockerfile
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Добавлена команда vault init в раздел VAULT основной справки (help)
- Добавлен пример использования make vault init
- Исправлено выравнивание для make vault scan
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Добавлена команда make vault init для автоматического создания файла vault/.vault
- Команда проверяет существование файла перед созданием
- Добавлена проверка существования vault/.vault в команде make vault create
- Обновлена справка с новой командой
- Пароль запрашивается интерактивно с опцией -sp (скрытый ввод)
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- В converge.yml заменены все /workspace/vault-password.txt на /workspace/vault/.vault
- В docker-compose.yml обновлен ANSIBLE_VAULT_PASSWORD_FILE на /ansible/vault/.vault
- Теперь используется правильный файл vault/.vault согласно структуре проекта
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Исправлены все пути с /ansible/ на /workspace/
- Исправлен путь к playbook на /workspace/molecule/default/site.yml
- Обновлены пути для vault файлов
- Обновлен ANSIBLE_ROLES_PATH
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Исправлены все Dockerfile (удален USER ansible перед CMD)
Причина: systemd должен запускаться от root (PID 1)
- Исправлены параметры в molecule/default/create.yml
(environment → env для модуля community.docker.docker_container)
- Добавлен -u root в Makefile для запуска контейнера
- Добавлена переменная MOLECULE_EPHEMERAL_DIRECTORY
- Удалена роль nginx из deploy.yml (не существует)
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Убрана попытка монтировать ~/.docker/run/docker.sock
- Возврат к стандартному /var/run/docker.sock
- Убрана опция --group-add (не работает на macOS)
- Убрана опция :ro для максимальной совместимости
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Добавлен универсальный таргет % для всех пресетов
- Не нужно добавлять каждый пресет вручную
- Любой пресет теперь работает автоматически
- Удобное масштабирование без изменений Makefile
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Добавлены minimal и default в список пустых целей Makefile
- Исправлена обработка Docker socket для тестирования
- Добавлен параметр --group-add для доступа к Docker socket
- Все команды (lint, test, deploy) работают в контейнерах
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Команда make role deploy теперь выполняется в контейнере
- Добавлено монтирование ~/.ssh для SSH доступа
- Все команды (lint, test, deploy) работают в контейнерах
- Не требуется установка Ansible на локальную машину
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Создана новая роль ping в roles/ping/
- Роль выполняет ping yandex.ru с 5 пакетами
- Добавлены задачи: выполнение ping, вывод результатов, статистика
- Добавлена документация (README.md, QUICKSTART.md)
- Добавлен пример playbook
- Роль интегрирована в deploy.yml
- Все файлы прошли проверку ansible-lint
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Убрана установка yq (проблемы с архитектурой)
- Исправлена установка Docker для правильной архитектуры
- Использование dpkg --print-architecture вместо hardcoded amd64
- Упрощена структура Dockerfiles
- Образы успешно собраны и отправлены в Docker Hub
Исправления:
- Ubuntu 22.04: inecs/ansible-lab:ubuntu-22.04
- Debian bookworm: inecs/ansible-lab:debian-bookworm
- Обновлены Dockerfiles для Ubuntu и Debian по аналогии с astra-linux
- Упрощена структура: убраны лишние компоненты (kubectl, helm, kind, ansible)
- Установка Docker из официального репозитория вместо пакетов дистрибутива
- Добавлен systemd-sysv для корректной работы systemd
- Пользователь ansible создается и используется как основной
- CMD изменен на /sbin/init для запуска systemd
- Добавлена информация о make docker build-image в help
- Обновлен общий help (make help) с кратким описанием команды
- Обновлен docker help (make docker) с подробной информацией и примерами
- Показывается список доступных образов и поддерживаемых платформ
- Исправлена установка ansible-lint в ansible-controller Dockerfile
- Команда lint теперь использует файл .ansible-lint через volume
- Изменена переменная DOCKER_IMAGE на inecs/ansible-lab:ansible-controller-latest
- Обновлена команда сборки контроллера для использования нового формата тегов
- Обновлен docker-compose.yml для использования готового образа
- Обновлена справка с новым именем образа
- Добавлены ubuntu и debian в список собираемых образов
- Теперь контроллер использует единый формат тегов с остальными образами
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Созданы Dockerfile'ы для Ubuntu 22.04 и Debian:
- dockerfiles/ubuntu/Dockerfile - Ubuntu 22.04 с systemd
- dockerfiles/debian/Dockerfile - Debian bookworm с systemd
- Обновлен Makefile:
- Добавлены ubuntu и debian в DOCKER_IMAGES
- Добавлена поддержка в docker-get-base-tag
- Обновлена справка с новыми образами
- Обновлены все пресеты для поддержки новых образов:
- ubuntu: inecs/ansible-lab:ubuntu-latest
- debian: inecs/ansible-lab:debian-latest
- Обновлен molecule.yml для поддержки новых образов
- Обновлен скрипт test-custom-images.sh для проверки новых образов
- Теперь поддерживается 10 собственных образов AnsibleTemplate
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Удалены дублирующиеся строки rhel: quay.io/centos/centos:stream9-systemd
- Оставлены только собственные образы AnsibleTemplate
- Сохранена обратная совместимость с debian образом
- Все пресеты теперь содержат только уникальные образы
- Убраны конфликты между старыми и новыми образами
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Созданы пресеты для тестирования с собственными образами:
- custom-minimal.yml - минимальный тест (4 хоста)
- custom-images.yml - полный тест (все образы)
- custom-performance.yml - тест производительности (8 хостов)
- Обновлен molecule.yml для поддержки собственных образов
- Добавлен скрипт test-custom-images.sh для автоматизации тестирования
- Добавлены команды в Makefile:
- make custom-images test [minimal|full|performance]
- make custom-images check - проверка наличия образов
- make custom-images build - сборка всех образов
- Поддержка образов: ansible-controller, alt-linux, astra-linux, redos, rhel, centos, alma, rocky
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Добавлена команда 'make docker build-image IMAGE=имя' для сборки отдельных образов
- Исправлены базовые образы в docker-get-base-tag:
- alt-linux: alt:p9 (было altlinux/p9)
- astra-linux: registry.astralinux.ru/library/astra/ubi17:1.7.6.uu2
- Остальные образы соответствуют FROM в Dockerfile
- Улучшена логика извлечения тегов из базовых образов
- Добавлена валидация существования директории образа
- Команда build-image добавлена в список пустых целей
Автор: Сергей Антропов
Сайт: https://devops.org.ru