diff --git a/Makefile b/Makefile index 5ac4bef..d96db26 100644 --- a/Makefile +++ b/Makefile @@ -346,80 +346,10 @@ preset: ## Управление пресетами (list|create|edit|test|copy) esac # ============================================================================= -# УПРАВЛЕНИЕ РОЛЯМИ +# УПРАВЛЕНИЕ РОЛЯМИ (УДАЛЕНО) # ============================================================================= - -.PHONY: role -role: ## Управление ролями (list|create|edit|test|lint|deploy) - @case "$(word 2, $(MAKECMDGOALS))" in \ - list) \ - echo "$(CYAN)📋 Доступные роли:$(RESET)"; \ - if [ -d "$(ROLES_DIR)" ]; then \ - ls -la $(ROLES_DIR)/ | grep "^d" | awk '{print " " $$9}' | grep -v "^\.$\|^\.\.$"; \ - else \ - echo " $(YELLOW)Директория ролей не найдена$(RESET)"; \ - fi;; \ - create) \ - if [ -z "$(NAME)" ]; then \ - echo "$(RED)❌ Использование: make role create NAME=my-role$(RESET)"; \ - exit 1; \ - fi; \ - echo "$(YELLOW)📝 Создаем роль: $(NAME)$(RESET)"; \ - mkdir -p $(ROLES_DIR)/$(NAME)/{tasks,handlers,templates,files,vars,defaults,meta,tests}; \ - echo "---" > $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo "# Основные задачи роли $(NAME)" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo "" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo "- name: Install package" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo " package:" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo " name: \"{{ package_name }}\"" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo " state: present" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo "" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo "- name: Start service" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo " service:" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo " name: \"{{ service_name }}\"" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo " state: started" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo " enabled: true" >> $(ROLES_DIR)/$(NAME)/tasks/main.yml; \ - echo "---" > $(ROLES_DIR)/$(NAME)/defaults/main.yml; \ - echo "# Переменные по умолчанию для роли $(NAME)" >> $(ROLES_DIR)/$(NAME)/defaults/main.yml; \ - echo "" >> $(ROLES_DIR)/$(NAME)/defaults/main.yml; \ - echo "package_name: nginx" >> $(ROLES_DIR)/$(NAME)/defaults/main.yml; \ - echo "service_name: nginx" >> $(ROLES_DIR)/$(NAME)/defaults/main.yml; \ - echo "$(GREEN)✅ Роль создана: $(ROLES_DIR)/$(NAME)/$(RESET)"; \ - echo "$(BLUE)🔧 Автоматически добавляем роль в систему...$(RESET)"; \ - docker exec ansible-controller bash -lc "bash /ansible/scripts/auto-add-role.sh $(NAME)"; \ - echo "$(GREEN)✅ Роль $(NAME) добавлена в систему$(RESET)";; \ - edit) \ - if [ -z "$(NAME)" ]; then \ - echo "$(RED)❌ Использование: make role edit NAME=my-role$(RESET)"; \ - exit 1; \ - fi; \ - echo "$(BLUE)✏️ Редактируем роль: $(NAME)$(RESET)"; \ - $${EDITOR:-vim} $(ROLES_DIR)/$(NAME)/tasks/main.yml;; \ - test) \ - if [ -z "$(NAME)" ]; then \ - echo "$(RED)❌ Использование: make role test NAME=my-role$(RESET)"; \ - exit 1; \ - fi; \ - echo "$(PURPLE)🧪 Тестируем роль: $(NAME)$(RESET)"; \ - $(MAKE) lab test LAB_SPEC=molecule/presets/minimal.yml;; \ - lint) \ - echo "$(YELLOW)🔍 Проверяем роли...$(RESET)"; \ - docker exec ansible-controller bash -lc 'ansible-lint --config-file /ansible/.ansible-lint $(ROLES_DIR)/*'; \ - echo "$(GREEN)✅ Проверка завершена$(RESET)";; \ - deploy) \ - echo "$(PURPLE)🚀 Развертываем роли...$(RESET)"; \ - docker exec ansible-controller bash -lc 'ansible-playbook -i /tmp/molecule/inventory/hosts.yml files/playbooks/site.yml'; \ - echo "$(GREEN)✅ Развертывание завершено$(RESET)";; \ - info) \ - if [ -z "$(NAME)" ]; then \ - echo "$(RED)❌ Использование: make role info NAME=my-role$(RESET)"; \ - exit 1; \ - fi; \ - echo "$(BLUE)📋 Информация о роли: $(NAME)$(RESET)"; \ - docker exec ansible-controller bash -lc 'cat /ansible/roles/$(NAME)/README.md';; \ - *) \ - echo "$(RED)❌ Неизвестная команда. Доступные: list, create, edit, test, lint, deploy, info$(RESET)";; \ - esac +# Роли Ansible удалены из проекта +# Используйте playbooks для развертывания # ============================================================================= # УПРАВЛЕНИЕ VAULT diff --git a/README.md b/README.md index 42aec83..cbe83f3 100644 --- a/README.md +++ b/README.md @@ -94,13 +94,9 @@ make preset create NAME=my-preset make preset test NAME=my-preset make preset edit NAME=my-preset -# Управление ролями -make role list # Список ролей -make role create NAME=my-role -make role test NAME=my-role -make role lint # Проверка ролей -make role deploy # Развертывание ролей -make role info NAME=deploy # Информация о роли +# Управление ролями (УДАЛЕНО) +# Роли Ansible удалены из проекта +# Используйте playbooks для развертывания # Проверка всего проекта make lint # Проверить весь проект на ошибки diff --git a/files/playbooks/site.yml b/files/playbooks/site.yml index f1b36e7..c82c0aa 100644 --- a/files/playbooks/site.yml +++ b/files/playbooks/site.yml @@ -35,13 +35,11 @@ - unzip state: present -# Развертывание инфраструктуры через роль deploy +# Развертывание инфраструктуры - name: Deploy infrastructure hosts: all become: true - roles: - - role: deploy - vars: - deploy_enabled: true - demo_enabled: true - apps_enabled: "{{ 'apps' in group_names }}" + tasks: + - name: Infrastructure placeholder + debug: + msg: "Инфраструктура готова для настройки" diff --git a/roles/demo/README.md b/roles/demo/README.md deleted file mode 100644 index af7e2a7..0000000 --- a/roles/demo/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Демо роль - -Простая демо роль для тестирования возможностей лаборатории. - -## Описание - -Роль `demo` предназначена для демонстрации и тестирования возможностей универсальной лаборатории. Она устанавливает базовые инструменты и создает демо файлы. - -## Переменные - -| Переменная | По умолчанию | Описание | -|------------|--------------|----------| -| `demo_enabled` | `true` | Включить демо роль | -| `demo_packages` | `['htop', 'tree', 'git']` | Список пакетов для установки | -| `demo_directory` | `/opt/demo` | Директория для демо файлов | -| `demo_file` | `info.txt` | Имя демо файла | - -## Использование - -### Базовое использование - -```yaml -- hosts: all - roles: - - role: demo -``` - -### С настройками - -```yaml -- hosts: all - roles: - - role: demo - vars: - demo_packages: - - htop - - tree - - git - - vim - demo_directory: /opt/my-demo -``` - -## Что делает роль - -1. Устанавливает демо пакеты (htop, tree, git) -2. Создает демо директорию `/opt/demo` -3. Создает демо файл с информацией о хосте -4. Выводит информацию о развертывании - -## Требования - -- Ansible >= 2.9 -- Python >= 3.6 -- Доступ к репозиториям пакетов - -## Автор - -Сергей Антропов -Сайт: https://devops.org.ru diff --git a/roles/demo/defaults/main.yml b/roles/demo/defaults/main.yml deleted file mode 100644 index 7a139d1..0000000 --- a/roles/demo/defaults/main.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -# Переменные по умолчанию для демо роли -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -demo_enabled: true -demo_packages: - - htop - - tree - - git -demo_directory: /opt/demo -demo_file: info.txt diff --git a/roles/demo/meta/main.yml b/roles/demo/meta/main.yml deleted file mode 100644 index d4c0b6b..0000000 --- a/roles/demo/meta/main.yml +++ /dev/null @@ -1,32 +0,0 @@ ---- -# Метаданные демо роли -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -galaxy_info: - author: Сергей Антропов - description: Демо роль для тестирования возможностей лаборатории - company: DevOps.org.ru - license: MIT - min_ansible_version: 2.9 - platforms: - - name: Ubuntu - versions: - - focal - - jammy - - name: CentOS - versions: - - 7 - - 8 - - 9 - - name: RHEL - versions: - - 7 - - 8 - - 9 - galaxy_tags: - - demo - - testing - - laboratory - -dependencies: [] diff --git a/roles/demo/tasks/main.yml b/roles/demo/tasks/main.yml deleted file mode 100644 index 14b60b0..0000000 --- a/roles/demo/tasks/main.yml +++ /dev/null @@ -1,36 +0,0 @@ ---- -# Демо роль для тестирования возможностей лаборатории -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -- name: Demo role placeholder - debug: - msg: "Демо роль готова для тестирования" - -- name: Install demo package - package: - name: - - htop - - tree - - git - state: present - -- name: Create demo directory - file: - path: /opt/demo - state: directory - mode: '0755' - -- name: Create demo file - copy: - content: | - # Демо файл - Создан: {{ ansible_date_time.iso8601 }} - Хост: {{ inventory_hostname }} - Группы: {{ group_names | join(', ') }} - dest: /opt/demo/info.txt - mode: '0644' - -- name: Display demo info - debug: - msg: "Демо роль успешно развернута на {{ inventory_hostname }}" diff --git a/roles/deploy.yaml b/roles/deploy.yaml deleted file mode 100644 index 73b314f..0000000 --- a/roles/deploy.yaml +++ /dev/null @@ -1 +0,0 @@ ---- \ No newline at end of file diff --git a/roles/deploy/README.md b/roles/deploy/README.md deleted file mode 100644 index 769f1df..0000000 --- a/roles/deploy/README.md +++ /dev/null @@ -1,114 +0,0 @@ -# Роль Deploy - -Универсальная роль для развертывания инфраструктуры лаборатории. - -## Описание - -Роль `deploy` предназначена для развертывания различных компонентов инфраструктуры в лабораторной среде. Она поддерживает развертывание ETCD, Patroni, HAProxy и приложений с DinD стеками. - -## Переменные - -### Основные переменные - -| Переменная | По умолчанию | Описание | -|------------|--------------|----------| -| `deploy_enabled` | `true` | Включить развертывание | -| `deploy_cleanup` | `false` | Очистка перед развертыванием | - -### Переменные групп - -| Переменная | По умолчанию | Описание | -|------------|--------------|----------| -| `etcd_enabled` | `true` | Включить развертывание ETCD | -| `patroni_enabled` | `true` | Включить развертывание Patroni | -| `haproxy_enabled` | `true` | Включить развертывание HAProxy | -| `apps_enabled` | `true` | Включить развертывание приложений | - -### Переменные DinD - -| Переменная | По умолчанию | Описание | -|------------|--------------|----------| -| `dind_stack_dir` | `/root/stack` | Директория для DinD стека | -| `dind_compose_file` | `docker-compose.yml` | Имя файла docker-compose | - -## Использование - -### Базовое использование - -```yaml -- hosts: all - roles: - - role: deploy -``` - -### С настройками - -```yaml -- hosts: all - roles: - - role: deploy - vars: - etcd_enabled: true - patroni_enabled: true - haproxy_enabled: false - apps_enabled: true -``` - -### Условное развертывание - -```yaml -- hosts: all - roles: - - role: deploy - vars: - etcd_enabled: "{{ 'etcd' in group_names }}" - patroni_enabled: "{{ 'patroni' in group_names }}" - haproxy_enabled: "{{ 'haproxy' in group_names }}" - apps_enabled: "{{ 'apps' in group_names }}" -``` - -## Компоненты - -### ETCD -- Установка ETCD -- Настройка сервиса -- Проверка статуса - -### Patroni -- Установка PostgreSQL -- Установка Patroni -- Настройка пользователя postgres - -### HAProxy -- Установка HAProxy -- Генерация конфигурации -- Настройка балансировки - -### Apps -- Установка Docker -- Настройка пользователя -- Развертывание DinD стека - -## Шаблоны - -- `haproxy.cfg.j2` - конфигурация HAProxy -- `docker-compose.yml.j2` - конфигурация DinD стека - -## Обработчики - -- `restart haproxy` - перезапуск HAProxy -- `restart etcd` - перезапуск ETCD -- `restart postgresql` - перезапуск PostgreSQL -- `restart docker` - перезапуск Docker - -## Требования - -- Ansible >= 2.9 -- Python >= 3.6 -- Docker (для DinD) -- systemd - -## Автор - -Сергей Антропов -Сайт: https://devops.org.ru diff --git a/roles/deploy/defaults/main.yml b/roles/deploy/defaults/main.yml deleted file mode 100644 index e695315..0000000 --- a/roles/deploy/defaults/main.yml +++ /dev/null @@ -1,24 +0,0 @@ ---- -# Переменные по умолчанию для роли deploy -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -# Настройки развертывания -deploy_enabled: true -deploy_cleanup: false - -# Настройки демо роли -demo_enabled: true - -# Настройки DinD -apps_enabled: true -dind_stack_dir: /root/stack -dind_compose_file: docker-compose.yml - -# Настройки мониторинга -monitoring_enabled: false -monitoring_retention_days: 30 - -# Настройки безопасности -security_hardening: true -firewall_enabled: false diff --git a/roles/deploy/handlers/main.yml b/roles/deploy/handlers/main.yml deleted file mode 100644 index 3c8097c..0000000 --- a/roles/deploy/handlers/main.yml +++ /dev/null @@ -1,24 +0,0 @@ ---- -# Обработчики роли deploy -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -- name: restart haproxy - systemd: - name: haproxy - state: restarted - -- name: restart etcd - systemd: - name: etcd - state: restarted - -- name: restart postgresql - systemd: - name: postgresql - state: restarted - -- name: restart docker - systemd: - name: docker - state: restarted diff --git a/roles/deploy/meta/main.yml b/roles/deploy/meta/main.yml deleted file mode 100644 index 25da90a..0000000 --- a/roles/deploy/meta/main.yml +++ /dev/null @@ -1,34 +0,0 @@ ---- -# Метаданные роли deploy -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -galaxy_info: - author: Сергей Антропов - description: Универсальная роль для развертывания инфраструктуры лаборатории - company: DevOps.org.ru - license: MIT - min_ansible_version: 2.9 - platforms: - - name: Ubuntu - versions: - - focal - - jammy - - name: CentOS - versions: - - 7 - - 8 - - 9 - - name: RHEL - versions: - - 7 - - 8 - - 9 - galaxy_tags: - - infrastructure - - deployment - - laboratory - - docker - - kubernetes - -dependencies: [] diff --git a/roles/deploy/tasks/apps.yml b/roles/deploy/tasks/apps.yml deleted file mode 100644 index eda8958..0000000 --- a/roles/deploy/tasks/apps.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -# Задачи для развертывания приложений -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -- name: Apps placeholder - debug: - msg: "Apps группа готова для настройки" - -- name: Install Docker dependencies - package: - name: - - docker.io - - docker-compose - state: present - when: ansible_os_family == "Debian" - -- name: Start Docker service - systemd: - name: docker - state: started - enabled: true - -- name: Add user to docker group - user: - name: "{{ ansible_user }}" - groups: docker - append: true - -- name: Docker status - systemd: - name: docker - register: docker_status - -- name: Display Docker status - debug: - msg: "Docker service status: {{ docker_status.status.ActiveState }}" diff --git a/roles/deploy/tasks/dind-stack.yml b/roles/deploy/tasks/dind-stack.yml deleted file mode 100644 index ad493c0..0000000 --- a/roles/deploy/tasks/dind-stack.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -# Задачи для развертывания DinD стека -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -- name: Create stack directory - file: - path: "{{ dind_stack_dir }}" - state: directory - mode: '0755' - -- name: Generate docker-compose.yml - template: - src: docker-compose.yml.j2 - dest: "{{ dind_stack_dir }}/{{ dind_compose_file }}" - mode: '0644' - -- name: Deploy stack on DinD - community.docker.docker_compose_v2: - project_src: "{{ dind_stack_dir }}" - state: present - docker_host: "{{ docker_host }}" - vars: - docker_host: "tcp://{{ inventory_hostname }}:2375" - -- name: Display stack status - community.docker.docker_container: - docker_host: "{{ docker_host }}" - name: "{{ item }}" - state: started - loop: - - "{{ dind_stack_dir }}_web_1" - - "{{ dind_stack_dir }}_cache_1" - - "{{ dind_stack_dir }}_db_1" - ignore_errors: true - register: stack_containers - -- name: Show running containers - debug: - msg: "Running containers: {{ stack_containers.results | map(attribute='item') | list }}" diff --git a/roles/deploy/tasks/etcd.yml b/roles/deploy/tasks/etcd.yml deleted file mode 100644 index fc98082..0000000 --- a/roles/deploy/tasks/etcd.yml +++ /dev/null @@ -1,32 +0,0 @@ ---- -# Задачи для развертывания ETCD -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -- name: ETCD placeholder - debug: - msg: "ETCD группа готова для настройки" - -- name: Install ETCD dependencies - package: - name: - - etcd - - etcd-client - state: present - when: ansible_os_family == "Debian" - -- name: Start ETCD service - systemd: - name: etcd - state: started - enabled: true - when: ansible_os_family == "Debian" - -- name: ETCD status - systemd: - name: etcd - register: etcd_status - -- name: Display ETCD status - debug: - msg: "ETCD service status: {{ etcd_status.status.ActiveState }}" diff --git a/roles/deploy/tasks/haproxy.yml b/roles/deploy/tasks/haproxy.yml deleted file mode 100644 index 90ae1cc..0000000 --- a/roles/deploy/tasks/haproxy.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -# Задачи для развертывания HAProxy -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -- name: HAProxy placeholder - debug: - msg: "HAProxy группа готова для настройки" - -- name: Install HAProxy - package: - name: haproxy - state: present - -- name: Create HAProxy config directory - file: - path: /etc/haproxy - state: directory - mode: '0755' - -- name: Configure HAProxy - template: - src: haproxy.cfg.j2 - dest: /etc/haproxy/haproxy.cfg - mode: '0644' - notify: restart haproxy - -- name: Start HAProxy - systemd: - name: haproxy - state: started - enabled: true - -- name: HAProxy status - systemd: - name: haproxy - register: haproxy_status - -- name: Display HAProxy status - debug: - msg: "HAProxy service status: {{ haproxy_status.status.ActiveState }}" diff --git a/roles/deploy/tasks/main.yml b/roles/deploy/tasks/main.yml deleted file mode 100644 index 9ae4c3e..0000000 --- a/roles/deploy/tasks/main.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# Основные задачи роли deploy -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -- name: Deploy demo role - include_role: - name: demo - when: demo_enabled | default(true) - -- name: Deploy DinD stack - include_tasks: dind-stack.yml - when: - - apps_enabled | bool - - inventory_hostname in groups['apps'] | default([]) - - item.type is defined and item.type == 'dind' - loop: "{{ groups['apps'] | map('extract', hostvars) | list }}" - loop_control: - label: "{{ inventory_hostname }}" diff --git a/roles/deploy/tasks/patroni.yml b/roles/deploy/tasks/patroni.yml deleted file mode 100644 index 73e8e45..0000000 --- a/roles/deploy/tasks/patroni.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- -# Задачи для развертывания Patroni -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -- name: Patroni placeholder - debug: - msg: "Patroni группа готова для настройки" - -- name: Install PostgreSQL - package: - name: - - postgresql - - postgresql-contrib - - postgresql-client - state: present - -- name: Install Patroni dependencies - package: - name: - - python3-pip - - python3-psycopg2 - - python3-etcd - state: present - -- name: Install Patroni - pip: - name: patroni - state: present - -- name: Create Patroni user - user: - name: postgres - system: true - shell: /bin/bash - home: /var/lib/postgresql - create_home: true - -- name: Patroni status - systemd: - name: postgresql - register: patroni_status - -- name: Display Patroni status - debug: - msg: "PostgreSQL service status: {{ patroni_status.status.ActiveState }}" diff --git a/roles/deploy/templates/docker-compose.yml.j2 b/roles/deploy/templates/docker-compose.yml.j2 deleted file mode 100644 index eff06fc..0000000 --- a/roles/deploy/templates/docker-compose.yml.j2 +++ /dev/null @@ -1,36 +0,0 @@ -# Docker Compose конфигурация для DinD стека -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -version: "{{ dind_stack_config.version }}" - -services: - web: - image: {{ dind_stack_config.services.web.image }} - ports: - - "{{ dind_stack_config.services.web.ports[0] }}" - depends_on: - - cache - - db - restart: unless-stopped - - cache: - image: {{ dind_stack_config.services.cache.image }} - restart: unless-stopped - command: redis-server --appendonly yes - volumes: - - redis_data:/data - - db: - image: {{ dind_stack_config.services.db.image }} - environment: - POSTGRES_DB: {{ dind_stack_config.services.db.environment.POSTGRES_DB }} - POSTGRES_USER: {{ dind_stack_config.services.db.environment.POSTGRES_USER }} - POSTGRES_PASSWORD: {{ dind_stack_config.services.db.environment.POSTGRES_PASSWORD }} - restart: unless-stopped - volumes: - - postgres_data:/var/lib/postgresql/data - -volumes: - redis_data: - postgres_data: diff --git a/roles/deploy/templates/haproxy.cfg.j2 b/roles/deploy/templates/haproxy.cfg.j2 deleted file mode 100644 index f7f4728..0000000 --- a/roles/deploy/templates/haproxy.cfg.j2 +++ /dev/null @@ -1,31 +0,0 @@ -# HAProxy конфигурация -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -global - daemon - maxconn 4096 - log stdout local0 - -defaults - mode tcp - timeout connect 5000ms - timeout client 50000ms - timeout server 50000ms - -# PostgreSQL кластер -listen postgresql - bind *:5000 - balance roundrobin - option tcp-check - tcp-check connect port 5432 - {% for host in groups['patroni'] | default([]) %} - server {{ host }} {{ host }}:5432 check - {% endfor %} - -# Статистика HAProxy -listen stats - bind *:8404 - stats enable - stats uri /stats - stats refresh 5s diff --git a/roles/deploy/vars/main.yml b/roles/deploy/vars/main.yml deleted file mode 100644 index ee25a86..0000000 --- a/roles/deploy/vars/main.yml +++ /dev/null @@ -1,21 +0,0 @@ ---- -# Переменные роли deploy -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -# Настройки DinD стека -dind_stack_config: - version: "3.9" - services: - web: - image: nginx:alpine - ports: - - "8080:80" - cache: - image: redis:7-alpine - db: - image: postgres:15-alpine - environment: - POSTGRES_DB: app - POSTGRES_USER: app - POSTGRES_PASSWORD: "{{ vault_db_password | default('changeme') }}" diff --git a/scripts/auto-add-role.sh b/scripts/auto-add-role.sh deleted file mode 100644 index c0d9669..0000000 --- a/scripts/auto-add-role.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env bash -# Автоматическое добавление новой роли в систему -# Автор: Сергей Антропов -# Сайт: https://devops.org.ru - -set -euo pipefail - -ROLE_NAME="$1" -ROLES_DIR="/ansible/roles" -DEPLOY_TASKS="/ansible/roles/deploy/tasks/main.yml" - -if [ -z "$ROLE_NAME" ]; then - echo "❌ Использование: $0 " - exit 1 -fi - -echo "🔧 Добавляем роль $ROLE_NAME в систему..." - -# Проверяем, что роль существует -if [ ! -d "$ROLES_DIR/$ROLE_NAME" ]; then - echo "❌ Роль $ROLE_NAME не найдена в $ROLES_DIR" - exit 1 -fi - -# Добавляем роль в deploy/tasks/main.yml -echo "📝 Добавляем роль в deploy/tasks/main.yml..." - -# Создаем временный файл с новой задачей -cat > /tmp/add_role_task.yml << EOF -- name: Deploy $ROLE_NAME role - include_role: - name: $ROLE_NAME - when: ${ROLE_NAME}_enabled | default(true) -EOF - -# Добавляем задачу в main.yml перед DinD stack -sed -i '/Deploy DinD stack/i\ -'"$(cat /tmp/add_role_task.yml)"' -' "$DEPLOY_TASKS" - -# Добавляем переменную в defaults/main.yml -echo "📝 Добавляем переменную в deploy/defaults/main.yml..." -echo "" >> "$ROLES_DIR/deploy/defaults/main.yml" -echo "# Настройки роли $ROLE_NAME" >> "$ROLES_DIR/deploy/defaults/main.yml" -echo "${ROLE_NAME}_enabled: true" >> "$ROLES_DIR/deploy/defaults/main.yml" - -# Обновляем site.yml -echo "📝 Обновляем site.yml..." -sed -i "/demo_enabled: true/a\\ - ${ROLE_NAME}_enabled: true" /ansible/files/playbooks/site.yml - -echo "✅ Роль $ROLE_NAME успешно добавлена в систему!" -echo "📋 Доступные переменные:" -echo " - ${ROLE_NAME}_enabled: true/false" -echo "📝 Файлы обновлены:" -echo " - $DEPLOY_TASKS" -echo " - $ROLES_DIR/deploy/defaults/main.yml" -echo " - /ansible/files/playbooks/site.yml"