--- #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" # Собственные образы AnsibleTemplate alt: "inecs/ansible-lab:alt-linux-latest" astra: "inecs/ansible-lab:astra-linux-latest" rhel: "inecs/ansible-lab:rhel-latest" centos: "inecs/ansible-lab:centos-latest" alma: "inecs/ansible-lab:alma-latest" rocky: "inecs/ansible-lab:rocky-latest" redos: "inecs/ansible-lab:redos-latest" 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"]