feat: Полная переработка документации и структуры проекта

- Переписан главный README.md с подробной навигацией
- Создана структурированная документация в docs/:
  - getting-started.md - быстрый старт
  - creating-roles.md - создание ролей
  - cicd-setup.md - настройка CI/CD
  - monitoring.md - мониторинг и диагностика
  - site-yml-guide.md - руководство по site.yml
  - molecule-guide.md - подробное руководство по Molecule
- Переписан dockerfiles/README.md с детальным описанием всех образов
- Перенесен deploy.yml из корня в roles/ для лучшей организации
- Обновлен site.yml для импорта roles/deploy.yml
- Добавлены fallback значения в create.yml для надежности
- Созданы скрипты автоматизации:
  - update-playbooks.sh - обновление playbook'ов
  - generate-role-docs.sh - генерация документации
  - setup-cicd.sh - настройка CI/CD
- Добавлен env.example с примерами переменных
- Обновлен Makefile с новыми командами автоматизации
- Улучшена навигация по документации
This commit is contained in:
Сергей Антропов
2025-10-25 18:11:36 +03:00
parent 1a4e52aab2
commit 94560ffaaa
19 changed files with 6986 additions and 270 deletions

View File

@@ -1,29 +1,181 @@
---
# Универсальный плейбук для тестирования
# Универсальный playbook для тестирования Ansible ролей
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru
#
# Этот файл отвечает за:
# 1. Обновление пакетов в контейнерах при запуске тестов
# 2. Установку common tools для корректной работы тестов
# 3. Подготовку окружения для тестирования ролей
# 4. Запуск всех ролей из директории roles/
- name: Base deps
- name: Подготовка окружения для тестирования
hosts: all
become: true
tasks:
- name: Update apt cache (Debian)
# Обновление кеша пакетов для Debian/Ubuntu
- name: Update package cache (Debian/Ubuntu)
apt:
update_cache: true
cache_valid_time: 3600
when: ansible_os_family == 'Debian'
changed_when: false
tags:
- setup
- update
- name: Common tools
raw: dnf install -y curl jq ca-certificates iproute2 iputils procps-ng net-tools sudo vim || yum install -y curl jq ca-certificates iproute2 iputils procps-ng net-tools sudo vim || apt-get update && apt-get install -y curl jq ca-certificates iproute2 iputils-ping procps net-tools sudo vim || true
ignore_errors: true
# Обновление кеша пакетов для RHEL/CentOS/AlmaLinux/Rocky
- name: Update package cache (RHEL/CentOS/AlmaLinux/Rocky)
yum:
update_cache: true
when: ansible_os_family == 'RedHat'
changed_when: false
tags:
- setup
- update
- name: Update ansible-lint
raw: pip install --upgrade ansible-lint --quiet --no-warn-script-location || true
ignore_errors: true
# Обновление кеша пакетов для Alt Linux
- name: Update package cache (Alt Linux)
apt:
update_cache: true
when: ansible_distribution == 'Alt'
changed_when: false
tags:
- setup
- update
- name: Install ansible collections
raw: ansible-galaxy collection install -r requirements.yml --force --no-deps --upgrade || true
ignore_errors: true
# Установка common tools для всех ОС
- name: Install common tools (Debian/Ubuntu)
apt:
name:
- curl
- jq
- ca-certificates
- iproute2
- iputils-ping
- procps
- net-tools
- sudo
- vim
- wget
- unzip
- git
state: present
update_cache: false
when: ansible_os_family == 'Debian'
tags:
- setup
- tools
- import_playbook: ../../deploy.yml
- name: Install common tools (RHEL/CentOS/AlmaLinux/Rocky)
yum:
name:
- curl
- jq
- ca-certificates
- iproute
- iputils
- procps-ng
- net-tools
- sudo
- vim
- wget
- unzip
- git
state: present
when: ansible_os_family == 'RedHat'
tags:
- setup
- tools
- name: Install common tools (Alt Linux)
apt:
name:
- curl
- jq
- ca-certificates
- iproute2
- iputils
- procps
- net-tools
- sudo
- vim
- wget
- unzip
- git
state: present
when: ansible_distribution == 'Alt'
tags:
- setup
- tools
# Установка Python для Ansible (если не установлен)
- name: Install Python (Debian/Ubuntu)
apt:
name:
- python3
- python3-pip
- python3-venv
state: present
when: ansible_os_family == 'Debian'
tags:
- setup
- python
- name: Install Python (RHEL/CentOS/AlmaLinux/Rocky)
yum:
name:
- python3
- python3-pip
state: present
when: ansible_os_family == 'RedHat'
tags:
- setup
- python
- name: Install Python (Alt Linux)
apt:
name:
- python3
- python3-pip
state: present
when: ansible_distribution == 'Alt'
tags:
- setup
- python
# Создание пользователя для тестирования
- name: Create test user
user:
name: testuser
shell: /bin/bash
create_home: yes
state: present
tags:
- setup
- user
# Настройка sudo для тестового пользователя
- name: Configure sudo for test user
lineinfile:
path: /etc/sudoers
line: "testuser ALL=(ALL) NOPASSWD:ALL"
state: present
validate: 'visudo -cf %s'
tags:
- setup
- sudo
# Создание директории для тестов
- name: Create test directory
file:
path: /tmp/ansible-test
state: directory
mode: '0755'
owner: testuser
group: testuser
tags:
- setup
- directory
- import_playbook: ../../roles/deploy.yml