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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user