- Создана система пресетов для быстрого переключения между конфигурациями - Добавлены пресеты: minimal, standard, docker, cluster - Обновлена структура проекта с папками cicd/, vault/, scripts/ - Упрощена система vault с функциональными секретами - Добавлены скрипты для работы с пресетами - Обновлен Makefile с командами для пресетов - Удалены старые файлы и структуры Автор: Сергей Антропов Сайт: https://devops.org.ru
95 lines
2.2 KiB
YAML
95 lines
2.2 KiB
YAML
---
|
|
# Универсальный плейбук для тестирования
|
|
# Автор: Сергей Антропов
|
|
# Сайт: 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 }}" |