--- # Универсальный плейбук для тестирования # Автор: Сергей Антропов # Сайт: https://devops.org.ru - name: Base deps hosts: all become: true tasks: - name: Update apt cache (Debian) apt: update_cache: true when: ansible_os_family == 'Debian' changed_when: false - name: Common tools package: name: - curl - jq - ca-certificates - iproute2 - iputils-ping - procps - net-tools - sudo - vim state: present # ===== ТЕСТОВЫЕ РОЛИ ===== - name: Deploy example role to test hosts hosts: test become: true roles: - example vars: example_package_name: "nginx" example_directory: "/opt/example" example_setting: "test" example_port: 8080 - name: Deploy example role to docker hosts (DinD) hosts: docker become: true roles: - example vars: example_package_name: "docker" example_directory: "/opt/docker-example" example_setting: "dind" example_port: 8080 - name: Deploy example role to dood hosts (DOoD) hosts: dood become: true roles: - example vars: example_package_name: "docker" example_directory: "/opt/dood-example" example_setting: "dood" example_port: 8081 # ===== Пример: поднять compose внутри DinD-хостов ===== - name: Deploy stack inside DinD nodes hosts: docker gather_facts: false vars: docker_host: "tcp://{{ inventory_hostname }}:2375" stack_dir: /root/stack tasks: - name: Create stack directory file: path: "{{ stack_dir }}" state: directory - name: Create simple docker-compose.yml copy: dest: "{{ stack_dir }}/docker-compose.yml" content: | version: '3.8' services: nginx: image: nginx:alpine ports: - "8080:80" environment: - NGINX_HOST=localhost - NGINX_PORT=80 - name: Deploy stack with docker-compose community.docker.docker_compose_v2: project_src: "{{ stack_dir }}" state: present docker_host: "{{ docker_host }}"