Commit Graph

35 Commits

Author SHA1 Message Date
Сергей Антропов
98af514e2c Merge k8s в main: добавлена поддержка Kubernetes Kind кластеров 2025-10-27 11:21:45 +03:00
Сергей Антропов
f5b13436a7 Добавлены alt9 и alt10 вместо alt-linux во все файлы 2025-10-27 09:57:01 +03:00
Сергей Антропов
d8e1052e7b refactor: переименование проекта AnsibleLab -> DevOpsLab
- Заменено название проекта во всех файлах проекта
- Обновлены:
  * README.md
  * Makefile
  * Все файлы документации (.md)
  * CI/CD конфигурации (Jenkins, GitLab, GitHub Actions, Azure DevOps)
  * Скрипты (setup-cicd.sh, test-custom-images.sh)
  * Файлы конфигурации Molecule
- Изменена переменная PROJECT_NAME в Makefile на devops-lab
- Docker образы inecs/ansible-lab:* оставлены без изменений
  (чтобы не затрагивать существующие образы в Docker Hub)
2025-10-26 12:28:05 +03:00
Сергей Антропов
c2ab17b7b6 chore: удален неиспользуемый скрипт portforward_container.py
- Скрипт был экспериментальным решением для запуска port-forward в контейнере
- Итоговое решение: использование portforward.py напрямую на хосте
- Скрипт не использовался ни в Makefile, ни в документации
2025-10-26 12:25:26 +03:00
Сергей Антропов
0ffe1f1a90 refactor: удален скрипт manage_hosts.py и все упоминания
- Удален скрипт scripts/manage_hosts.py
- Удалены все вызовы из Makefile
- Удалены упоминания из документации
- Обновлена документация по Ingress - теперь требуется ручное добавление в /etc/hosts
- Убрано автоматическое управление /etc/hosts (не состоятельное решение)
2025-10-26 11:56:14 +03:00
Сергей Антропов
df7473fbd9 fix: исправлена проблема с пробросом портов Ingress
- Исправлена логика добавления extraPortMappings в конфигурацию Kind
- Порты 80 и 443 теперь правильно пробрасываются на host (8081, 8443)
- Создана документация k8s-ingress-fix.md с инструкциями
2025-10-26 10:58:37 +03:00
Сергей Антропов
fcf3f33e80 feat: добавлен детальный отчет о состоянии кластера
- Создан скрипт scripts/k8s_status.py для детального отчета
- Показывает: узлы, namespaces, pods, deployments, daemonsets,
  statefulsets, services, ingress, PVC, события, Helm релизы
- Исправлена проблема с подключением kubectl (используется
  прямой адрес control-plane)
- Команда make k8s status теперь показывает полный отчет
2025-10-26 10:16:24 +03:00
Сергей Антропов
fd80db220a feat: автоматическое управление Ingress хостами в /etc/hosts
- Добавлен скрипт scripts/manage_hosts.py для управления /etc/hosts
- Автоматическое добавление Ingress хостов при создании кластера
- Автоматическое удаление Ingress хостов при удалении кластера
- Записи помечаются меткой #k8s для разделения со статическими
- Команды: add, remove, cleanup, list
2025-10-26 10:03:59 +03:00
Сергей Антропов
69a589974e wip: попытка запускать port-forward через k8s-controller (требуется доработка) 2025-10-26 09:48:51 +03:00
Сергей Антропов
3238b3903a feat: добавлен контейнер k8s-portforward для порт-форвардинга
- Создан Dockerfile для контейнера порт-форвардинга
- Скрипт portforward-container.py работает внутри контейнера
- Скрипт portforward_container.py управляет контейнером с хоста
- Контейнер автоматически пробрасывает порты через -p
- Контейнер подключается к сети Kind для доступа к кластеру
- Добавлен k8s-portforward в docker-get-base-tag
2025-10-26 09:48:05 +03:00
Сергей Антропов
44fff158ce feat: добавлены порты Ingress (80, 443) в port-forward
- Добавлен port-forward для Ingress HTTP на порт 8081 (localhost:8081 -> ingress-nginx-controller:80)
- Добавлен port-forward для Ingress HTTPS на порт 8443 (localhost:8443 -> ingress-nginx-controller:443)
- Теперь все аддоны доступны через port-forward: Ingress, Prometheus, Grafana, Kiali, Metrics Server
2025-10-26 09:40:47 +03:00
Сергей Антропов
604c7816be feat: port-forward теперь работает на локальном компьютере
- Скрипт получает kubeconfig из контейнера k8s-controller
- Заменяет server 0.0.0.0 на localhost для локального доступа
- Port-forward запускается на хосте через локальный kubectl
- Все аддоны доступны на localhost: Grafana 3000, Prometheus 9090, Kiali 20001
2025-10-26 09:39:20 +03:00
Сергей Антропов
06bfc00b5a fix: удалены extraPortMappings для аддонов, port-forward перенесен в отдельный скрипт 2025-10-26 09:34:59 +03:00
Сергей Антропов
ebed1f76ab feat: добавлена команда recreate для port-forward
- Добавлена функция recreate_portforwards() в scripts/portforward.py
- Команда recreate удаляет все существующие port-forward и создает их заново
- Добавлена команда в Makefile: make k8s portforward recreate
- Полезно для переподключения после перезапуска контейнера или кластера
2025-10-26 09:28:07 +03:00
Сергей Антропов
69b547dda6 feat: добавлен port-forward для кластера Kubernetes
- Создан скрипт scripts/portforward.py для управления port-forward
- Добавлены команды в Makefile:
  - make k8s portforward create - создать port-forward для всех сервисов
  - make k8s portforward list - показать активные port-forward
  - make k8s portforward clear - очистить все port-forward
  - make k8s portforward delete PORT - удалить конкретный port-forward
- Сервисы остаются с типом ClusterIP
- Port-forward автоматически создается для Prometheus, Grafana, Kiali и Metrics Server
- Порты: Prometheus 9090, Grafana 3000, Kiali 20001, Metrics Server 4443
2025-10-26 09:25:59 +03:00
Сергей Антропов
d48c273e50 feat: добавлен порт для Metrics Server
- Добавлен проброс порта 4443 для Metrics Server
- Metrics Server теперь доступен на http://localhost:4443
- Обновлена документация с информацией о порте
2025-10-26 09:13:22 +03:00
Сергей Антропов
87002cb9b3 refactor: использование ClusterIP вместо NodePort
- Убрана логика патчинга NodePort для Prometheus, Grafana и Kiali
- Сервисы теперь остаются с типом ClusterIP
- Порты пробрасываются через extraPortMappings в Kind конфиге
- Использованы стандартные порты: Prometheus 9090, Grafana 3000, Kiali 20001
- Более простой и надежный подход без ограничений NodePort диапазона
2025-10-26 09:11:32 +03:00
Сергей Антропов
e2b9d94075 fix: исправлены порты для NodePort и добавлены Helm репозитории
- Изменены порты Prometheus, Grafana и Kiali на NodePort диапазон (30000-32767)
- Добавлены Helm репозитории для Kiali и Prometheus
- Исправлена логика extraPortMappings для правильного маппинга портов
- Prometheus: 30900, Grafana: 30000, Kiali: 32001
2025-10-26 09:07:00 +03:00
Сергей Антропов
791504abf6 fix: исправлена установка Istio, Kiali и Prometheus Stack
- Istio теперь использует исправленный kubeconfig с IP control-plane узла
- Helm команды теперь используют исправленный kubeconfig
- Создание namespace сделано идемпотентным (не прерывает скрипт при существовании)
- Все аддоны теперь должны устанавливаться корректно
2025-10-26 08:52:43 +03:00
Сергей Антропов
33e329c091 refactor: перенос портов ingress в addon_ports
- Удалены ingress_host_http_port и ingress_host_https_port
- Все порты (ingress, prometheus, grafana, kiali) теперь в addon_ports
- Обновлен скрипт create_k8s_cluster.py для работы с новой структурой
- Все порты теперь пробрасываются через extraPortMappings в конфигурации Kind
- Порты теперь видны в контейнерах control-plane и worker
2025-10-26 08:38:57 +03:00
Сергей Антропов
5c8862e9bf fix: исправлено подключение kubectl к API серверу Kind
Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
- Добавлен --validate=false для отключения валидации при установке аддонов
- kubectl теперь подключается напрямую к control-plane узлу
- Контейнер k8s-controller автоматически подключается к сети kind
- Все kubectl команды используют --server=https://{name}-control-plane:6443 --insecure-skip-tls-verify
2025-10-26 08:34:59 +03:00
Сергей Антропов
4ed9c2e0eb feat: добавлена поддержка создания и удаления контейнеров из пресета
Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
- Добавлено создание контейнеров из секции hosts в create_k8s_cluster.py
- Добавлено удаление контейнеров в команде make k8s destroy
- Создан скрипт scripts/delete_hosts.py для удаления контейнеров
- Контейнеры автоматически создаются в Docker сети из пресета
- Контейнеры удаляются вместе с Kind кластером при make k8s destroy
2025-10-26 08:23:43 +03:00
Сергей Антропов
881502ad69 feat: добавить поддержку Kubernetes Kind кластеров
Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
- Создан новый Docker образ k8s для работы с Kind, kubectl, Helm, Istio CLI
- Добавлены команды make k8s: create, destroy, stop, start, status, config, nodes, addon, shell
- Добавлена поддержка пресетов Kubernetes в molecule/presets/k8s/
- Создан скрипт create_k8s_cluster.py для автоматического создания кластеров и установки аддонов
- Добавлена документация docs/kubernetes-kind.md
- Команды kubectl выполняются внутри контейнера k8s, не требуют локальной установки
2025-10-26 03:30:58 +03:00
Сергей Антропов
5093d38c06 fix: Исправление ошибок в скриптах
Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
Исправленные проблемы:
- 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 теперь работает корректно
- Все остальные скрипты протестированы и работают
2025-10-25 19:41:21 +03:00
Сергей Антропов
c6dd7bc0b8 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
2025-10-25 19:37:35 +03:00
Сергей Антропов
bfed0d1ea8 refactor: Переименование проекта с AnsibleTemplate на AnsibleLab
- Обновлено название проекта во всех файлах
- Изменена документация (README.md, docs/*.md)
- Обновлены конфигурационные файлы (Makefile, env.example)
- Изменены CI/CD файлы (GitHub Actions, Azure DevOps, Jenkins)
- Обновлены скрипты и Dockerfile
- Изменено название в molecule.yml и dockerfiles/README.md

Все ссылки и упоминания проекта теперь используют название AnsibleLab
2025-10-25 19:30:54 +03:00
Сергей Антропов
e98bfa9c1f feat: Добавлены интерактивные команды для управления ролями
- Добавлен скрипт 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 - документация роли
2025-10-25 19:19:06 +03:00
Сергей Антропов
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
Сергей Антропов
94560ffaaa feat: Полная переработка документации и структуры проекта
- Переписан главный 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 с новыми командами автоматизации
- Улучшена навигация по документации
2025-10-25 18:11:36 +03:00
Сергей Антропов
24d229b026 Добавлены образы Ubuntu 22.04 и Debian для тестирования
- Созданы 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
2025-10-25 15:56:30 +03:00
Сергей Антропов
3b2533c8ee Добавлена поддержка собственных образов для molecule тестирования
- Созданы пресеты для тестирования с собственными образами:
  - 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
2025-10-25 15:46:05 +03:00
Сергей Антропов
e389cad393 Исправления проблем с Docker Buildx
- Заменен buildx ls на безопасный buildx inspect
- Добавлены диагностические команды для buildx
- Создана функция docker-diagnose-buildx для отладки
- Добавлена функция docker-reset-builder для сброса
- Предварительная загрузка образа moby/buildkit:buildx-stable-1
- Полная очистка buildkit контейнеров
- Обновлена документация и справка
- Добавлен тестовый скрипт для проверки исправлений

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-10-25 15:13:00 +03:00
Сергей Антропов
60ee5e90a5 Обновление конфигурации Ansible: добавлены новые пресеты, улучшен Makefile, добавлена документация 2025-10-25 10:11:17 +03:00
c99df83bad Рефакторинг: вынес запуск ролей в отдельный файл deploy.yml
- Создан файл roles/deploy.yml с блоком запуска роли nginx
- Обновлен molecule/default/site.yml для импорта deploy.yml
- Улучшена модульность структуры проекта
- Автор: Сергей Антропов
2025-10-22 22:34:07 +03:00
0b981ca61e feat: Добавлена система пресетов для Molecule
- Создана система пресетов для быстрого переключения между конфигурациями
- Добавлены пресеты: minimal, standard, docker, cluster
- Обновлена структура проекта с папками cicd/, vault/, scripts/
- Упрощена система vault с функциональными секретами
- Добавлены скрипты для работы с пресетами
- Обновлен Makefile с командами для пресетов
- Удалены старые файлы и структуры

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-10-22 20:31:23 +03:00