feat: Реорганизация Makefile и добавление Docker образов
- Реорганизован Makefile: * Переменные вынесены наверх * Справка перенесена в конец * Удалены секции molecule и container * Объединены presets и preset в одну секцию * Переименована секция docker в docker-cmd - Добавлены Docker образы: * ansible-controller - основной контроллер * alt-linux, astra-linux, redos - российские дистрибутивы * rhel, centos, alma, rocky - RHEL-совместимые образы - Обновлены preset'ы: * Добавлены описания #description: во все preset'ы * Переименован docker.yml в docker-test.yml * Добавлены новые preset'ы: etcd-patroni, multi-os - Добавлена документация: * docs/examples.md - примеры использования * docs/universal-testing.md - универсальное тестирование * dockerfiles/README.md - описание Docker образов - Улучшена функциональность: * Единообразный стиль команд make [категория] [действие] * Улучшенный вывод информации о preset'ах * Добавлены пустые цели для совместимости
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
---
|
||||
# Стандартный пресет по умолчанию для тестирования
|
||||
#description: Стандартный пресет по умолчанию для тестирования с 2 хостами (Debian + RHEL)
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
# Пресет с Docker контейнерами
|
||||
#description: Пресет с Docker контейнерами (DinD + DOoD) для тестирования Docker-задач
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
62
molecule/presets/etcd-patroni.yml
Normal file
62
molecule/presets/etcd-patroni.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
#description: Пресет для тестирования кластера etcd + PostgreSQL + Patroni (9 хостов)
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
docker_network: labnet
|
||||
generated_inventory: "{{ molecule_ephemeral_directory }}/inventory/hosts.ini"
|
||||
|
||||
# systemd-ready образы
|
||||
images:
|
||||
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
|
||||
rhel: "quay.io/centos/centos:stream9-systemd"
|
||||
|
||||
systemd_defaults:
|
||||
privileged: true
|
||||
command: "/sbin/init"
|
||||
volumes:
|
||||
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||
tmpfs: ["/run", "/run/lock"]
|
||||
capabilities: ["SYS_ADMIN"]
|
||||
|
||||
# Описание кластера etcd + Patroni + HAProxy
|
||||
hosts:
|
||||
# ETCD кластер (5 узлов для высокой доступности)
|
||||
- name: etcd1
|
||||
family: debian
|
||||
groups: [etcd, cluster]
|
||||
- name: etcd2
|
||||
family: rhel
|
||||
groups: [etcd, cluster]
|
||||
- name: etcd3
|
||||
family: debian
|
||||
groups: [etcd, cluster]
|
||||
- name: etcd4
|
||||
family: rhel
|
||||
groups: [etcd, cluster]
|
||||
- name: etcd5
|
||||
family: debian
|
||||
groups: [etcd, cluster]
|
||||
|
||||
# Patroni кластер (3 узла PostgreSQL)
|
||||
- name: patroni1
|
||||
family: rhel
|
||||
groups: [patroni, database, cluster]
|
||||
- name: patroni2
|
||||
family: debian
|
||||
groups: [patroni, database, cluster]
|
||||
- name: patroni3
|
||||
family: rhel
|
||||
groups: [patroni, database, cluster]
|
||||
|
||||
# HAProxy для балансировки
|
||||
- name: haproxy
|
||||
family: debian
|
||||
groups: [haproxy, loadbalancer]
|
||||
publish: ["5000:5000", "5001:5001"] # RW и RO порты
|
||||
|
||||
# DinD узел для тестирования Docker Compose внутри
|
||||
- name: app-dind
|
||||
type: dind
|
||||
groups: [apps, docker]
|
||||
publish: ["8080:8080"]
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
# Минимальный пресет для быстрого тестирования
|
||||
#description: Минимальный пресет для быстрого тестирования с 1 хостом (Debian)
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
|
||||
70
molecule/presets/multi-os.yml
Normal file
70
molecule/presets/multi-os.yml
Normal file
@@ -0,0 +1,70 @@
|
||||
---
|
||||
#description: Пресет для тестирования на разных ОС с 12 хостами (Debian + RHEL)
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
docker_network: labnet
|
||||
generated_inventory: "{{ molecule_ephemeral_directory }}/inventory/hosts.ini"
|
||||
|
||||
# systemd-ready образы для разных ОС
|
||||
images:
|
||||
debian: "ghcr.io/ansible-community/molecule-ubuntu-systemd:jammy"
|
||||
rhel: "quay.io/centos/centos:stream9-systemd"
|
||||
|
||||
systemd_defaults:
|
||||
privileged: true
|
||||
command: "/sbin/init"
|
||||
volumes:
|
||||
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||
tmpfs: ["/run", "/run/lock"]
|
||||
capabilities: ["SYS_ADMIN"]
|
||||
|
||||
# Описание кластера с разными ОС
|
||||
hosts:
|
||||
# Debian серверы
|
||||
- name: debian1
|
||||
family: debian
|
||||
groups: [debian, servers, web]
|
||||
- name: debian2
|
||||
family: debian
|
||||
groups: [debian, servers, web]
|
||||
- name: debian3
|
||||
family: debian
|
||||
groups: [debian, servers, app]
|
||||
- name: debian4
|
||||
family: debian
|
||||
groups: [debian, servers, app]
|
||||
|
||||
# RHEL серверы
|
||||
- name: rhel1
|
||||
family: rhel
|
||||
groups: [rhel, servers, web]
|
||||
- name: rhel2
|
||||
family: rhel
|
||||
groups: [rhel, servers, web]
|
||||
- name: rhel3
|
||||
family: rhel
|
||||
groups: [rhel, servers, app]
|
||||
- name: rhel4
|
||||
family: rhel
|
||||
groups: [rhel, servers, app]
|
||||
|
||||
# База данных на разных ОС
|
||||
- name: db-debian
|
||||
family: debian
|
||||
groups: [database, debian, db]
|
||||
- name: db-rhel
|
||||
family: rhel
|
||||
groups: [database, rhel, db]
|
||||
|
||||
# Load balancer
|
||||
- name: lb-mixed
|
||||
family: debian
|
||||
groups: [loadbalancer, haproxy]
|
||||
publish: ["80:80", "443:443"]
|
||||
|
||||
# DinD узел для тестирования Docker
|
||||
- name: docker-mixed
|
||||
type: dind
|
||||
groups: [docker, apps]
|
||||
publish: ["8080:8080"]
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
# Пресет для тестирования производительности
|
||||
#description: Пресет для нагрузочного тестирования с 12 хостами (серверы + БД + кэш)
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
@@ -19,20 +19,55 @@ systemd_defaults:
|
||||
tmpfs: ["/run", "/run/lock"]
|
||||
capabilities: ["SYS_ADMIN"]
|
||||
|
||||
# Описание кластера для нагрузочного тестирования
|
||||
hosts:
|
||||
# Нагрузочное тестирование - 5 хостов
|
||||
- name: perf1
|
||||
# Основные серверы (5 узлов)
|
||||
- name: server1
|
||||
family: debian
|
||||
groups: [test, performance]
|
||||
- name: perf2
|
||||
family: debian
|
||||
groups: [test, performance]
|
||||
- name: perf3
|
||||
groups: [servers, web, app]
|
||||
- name: server2
|
||||
family: rhel
|
||||
groups: [test, performance]
|
||||
- name: perf4
|
||||
family: rhel
|
||||
groups: [test, performance]
|
||||
- name: perf5
|
||||
groups: [servers, web, app]
|
||||
- name: server3
|
||||
family: debian
|
||||
groups: [test, performance]
|
||||
groups: [servers, web, app]
|
||||
- name: server4
|
||||
family: rhel
|
||||
groups: [servers, web, app]
|
||||
- name: server5
|
||||
family: debian
|
||||
groups: [servers, web, app]
|
||||
|
||||
# База данных (3 узла)
|
||||
- name: db1
|
||||
family: rhel
|
||||
groups: [database, db]
|
||||
- name: db2
|
||||
family: debian
|
||||
groups: [database, db]
|
||||
- name: db3
|
||||
family: rhel
|
||||
groups: [database, db]
|
||||
|
||||
# Кэш (3 узла Redis)
|
||||
- name: cache1
|
||||
family: debian
|
||||
groups: [cache, redis]
|
||||
- name: cache2
|
||||
family: rhel
|
||||
groups: [cache, redis]
|
||||
- name: cache3
|
||||
family: debian
|
||||
groups: [cache, redis]
|
||||
|
||||
# Load balancer
|
||||
- name: lb1
|
||||
family: rhel
|
||||
groups: [loadbalancer, haproxy]
|
||||
publish: ["80:80", "443:443"]
|
||||
|
||||
# DinD узел для тестирования Docker Compose
|
||||
- name: compose-dind
|
||||
type: dind
|
||||
groups: [apps, docker]
|
||||
publish: ["8080:8080", "8081:8081"]
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
# Пресет для тестирования безопасности
|
||||
#description: Пресет для тестирования безопасности с 10 хостами (bastion + internal + monitoring)
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
@@ -19,14 +19,58 @@ systemd_defaults:
|
||||
tmpfs: ["/run", "/run/lock"]
|
||||
capabilities: ["SYS_ADMIN"]
|
||||
|
||||
# Описание кластера для тестирования безопасности
|
||||
hosts:
|
||||
# Тестирование безопасности - 3 хоста с разными ОС
|
||||
- name: sec1
|
||||
family: debian
|
||||
groups: [test, security, web]
|
||||
- name: sec2
|
||||
# Bastion хосты (точки входа)
|
||||
- name: bastion1
|
||||
family: rhel
|
||||
groups: [test, security, db]
|
||||
- name: sec3
|
||||
groups: [bastion, security, jump]
|
||||
publish: ["2222:22"]
|
||||
- name: bastion2
|
||||
family: debian
|
||||
groups: [test, security, api]
|
||||
groups: [bastion, security, jump]
|
||||
publish: ["2223:22"]
|
||||
|
||||
# Внутренние серверы (без внешнего доступа)
|
||||
- name: internal1
|
||||
family: rhel
|
||||
groups: [internal, servers, app]
|
||||
- name: internal2
|
||||
family: debian
|
||||
groups: [internal, servers, app]
|
||||
- name: internal3
|
||||
family: rhel
|
||||
groups: [internal, servers, app]
|
||||
|
||||
# База данных (изолированная сеть)
|
||||
- name: db-secure1
|
||||
family: rhel
|
||||
groups: [database, secure, internal]
|
||||
- name: db-secure2
|
||||
family: debian
|
||||
groups: [database, secure, internal]
|
||||
|
||||
# Мониторинг и логирование
|
||||
- name: monitor1
|
||||
family: debian
|
||||
groups: [monitoring, security, logs]
|
||||
- name: monitor2
|
||||
family: rhel
|
||||
groups: [monitoring, security, logs]
|
||||
|
||||
# Firewall и сетевые компоненты
|
||||
- name: fw1
|
||||
family: rhel
|
||||
groups: [firewall, network, security]
|
||||
- name: fw2
|
||||
family: debian
|
||||
groups: [firewall, network, security]
|
||||
|
||||
# DOoD узел для тестирования Docker безопасности
|
||||
- name: docker-secure
|
||||
type: dood
|
||||
family: debian
|
||||
groups: [docker, security, apps]
|
||||
publish: ["8080:8080"]
|
||||
env:
|
||||
DOCKER_HOST: "unix:///var/run/docker.sock"
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
# Стандартный пресет для тестирования
|
||||
#description: Стандартный пресет для тестирования с 3 хостами (Debian + RHEL)
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
# Минимальный пресет для быстрого тестирования
|
||||
#description: Минимальный пресет для быстрого тестирования с 1 хостом (Debian)
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
|
||||
Reference in New Issue
Block a user