- Заменено название проекта во всех файлах проекта - Обновлены: * README.md * Makefile * Все файлы документации (.md) * CI/CD конфигурации (Jenkins, GitLab, GitHub Actions, Azure DevOps) * Скрипты (setup-cicd.sh, test-custom-images.sh) * Файлы конфигурации Molecule - Изменена переменная PROJECT_NAME в Makefile на devops-lab - Docker образы inecs/ansible-lab:* оставлены без изменений (чтобы не затрагивать существующие образы в Docker Hub)
		
			
				
	
	
		
			236 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			236 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Быстрый старт с DevOpsLab
 | ||
| 
 | ||
| **Автор:** Сергей Антропов  
 | ||
| **Сайт:** https://devops.org.ru  
 | ||
| **Версия:** 3.0.0
 | ||
| 
 | ||
| ## 🚀 Установка и настройка
 | ||
| 
 | ||
| ### 1. Клонирование репозитория
 | ||
| 
 | ||
| ```bash
 | ||
| git clone ssh://git@git.antropoff.ru:222/Ansible/DevOpsLab.git
 | ||
| cd DevOpsLab
 | ||
| ```
 | ||
| 
 | ||
| ### 2. Проверка структуры проекта
 | ||
| 
 | ||
| ```bash
 | ||
| # Просмотр доступных ролей
 | ||
| make role list
 | ||
| 
 | ||
| # Просмотр доступных preset'ов
 | ||
| make presets list
 | ||
| ```
 | ||
| 
 | ||
| ### 3. Настройка Docker (опционально)
 | ||
| 
 | ||
| Если вы хотите собрать собственные образы:
 | ||
| 
 | ||
| ```bash
 | ||
| # Настройка multi-arch builder
 | ||
| make docker setup-builder
 | ||
| 
 | ||
| # Сборка всех образов
 | ||
| make docker build
 | ||
| 
 | ||
| # Проверка собранных образов
 | ||
| make docker info
 | ||
| ```
 | ||
| 
 | ||
| **Примечание:** Используются готовые образы из Docker Hub `inecs/ansible-lab`.
 | ||
| 
 | ||
| ## 🧪 Первое тестирование
 | ||
| 
 | ||
| ### 1. Просмотр доступных preset'ов
 | ||
| 
 | ||
| ```bash
 | ||
| # Список всех preset'ов
 | ||
| make presets list
 | ||
| 
 | ||
| # Информация о конкретном preset'е
 | ||
| make presets info PRESET=default
 | ||
| ```
 | ||
| 
 | ||
| ### 2. Тестирование роли ping
 | ||
| 
 | ||
| ```bash
 | ||
| # Тестирование с default preset
 | ||
| make role test
 | ||
| 
 | ||
| # Тестирование с minimal preset (1 хост)
 | ||
| make role test minimal
 | ||
| ```
 | ||
| 
 | ||
| ### 3. Проверка результатов
 | ||
| 
 | ||
| ```bash
 | ||
| # Проверка через логи
 | ||
| docker logs ansible-controller 2>/dev/null || echo "Контейнер не запущен"
 | ||
| 
 | ||
| # Просмотр созданных контейнеров
 | ||
| docker ps -a --filter "network=labnet"
 | ||
| ```
 | ||
| 
 | ||
| ## 🔧 Создание первой роли
 | ||
| 
 | ||
| ### 1. Создание новой роли
 | ||
| 
 | ||
| ```bash
 | ||
| # Интерактивное создание роли
 | ||
| make role create
 | ||
| # Введите имя роли (например: nginx)
 | ||
| ```
 | ||
| 
 | ||
| ### 2. Редактирование роли
 | ||
| 
 | ||
| После создания роли будет создана структура в `roles/<имя-роли>/`:
 | ||
| 
 | ||
| ```
 | ||
| roles/my-role/
 | ||
| ├── tasks/
 | ||
| │   └── main.yml
 | ||
| ├── handlers/
 | ||
| │   └── main.yml
 | ||
| ├── defaults/
 | ||
| │   └── main.yml
 | ||
| ├── vars/
 | ||
| │   └── main.yml
 | ||
| ├── meta/
 | ||
| │   └── main.yml
 | ||
| ├── templates/
 | ||
| ├── files/
 | ||
| └── README.md
 | ||
| ```
 | ||
| 
 | ||
| ### 3. Написание задач роли
 | ||
| 
 | ||
| **`roles/my-role/tasks/main.yml`:**
 | ||
| ```yaml
 | ||
| ---
 | ||
| # Основные задачи для роли my-role
 | ||
| # Автор: Сергей Антропов
 | ||
| # Сайт: https://devops.org.ru
 | ||
| 
 | ||
| - name: Проверка установленных пакетов
 | ||
|   debug:
 | ||
|     msg: "Роль {{ role_name }} выполняется на {{ ansible_hostname }}"
 | ||
| 
 | ||
| - name: Установка пакетов (пример)
 | ||
|   package:
 | ||
|     name: "{{ my_role_packages | default([]) }}"
 | ||
|     state: present
 | ||
|   when: my_role_packages is defined
 | ||
| ```
 | ||
| 
 | ||
| ### 4. Настройка defaults
 | ||
| 
 | ||
| **`roles/my-role/defaults/main.yml`:**
 | ||
| ```yaml
 | ||
| ---
 | ||
| # Переменные по умолчанию для роли my-role
 | ||
| # Автор: Сергей Антропов
 | ||
| # Сайт: https://devops.org.ru
 | ||
| 
 | ||
| my_role_packages: []
 | ||
| my_role_enabled: true
 | ||
| ```
 | ||
| 
 | ||
| ### 5. Тестирование роли
 | ||
| 
 | ||
| ```bash
 | ||
| # Проверка синтаксиса
 | ||
| make role lint my-role
 | ||
| 
 | ||
| # Тестирование с минимальным preset
 | ||
| make role test minimal
 | ||
| ```
 | ||
| 
 | ||
| ### 6. Добавление роли в deploy.yml
 | ||
| 
 | ||
| Роль автоматически добавляется в `roles/deploy.yml` при создании.
 | ||
| 
 | ||
| ## 📚 Доступные роли
 | ||
| 
 | ||
| ### Docker
 | ||
| 
 | ||
| Универсальная роль для установки Docker и Docker Compose.
 | ||
| 
 | ||
| ```bash
 | ||
| # Тестирование роли docker
 | ||
| make role lint docker
 | ||
| make role test docker
 | ||
| ```
 | ||
| 
 | ||
| **Документация:** [roles/docker/README.md](../roles/docker/README.md)
 | ||
| 
 | ||
| ### DevOps
 | ||
| 
 | ||
| Роль для установки и настройки инструментов DevOps.
 | ||
| 
 | ||
| **Документация:** [roles/devops/README.md](../roles/devops/README.md)
 | ||
| 
 | ||
| ### Ping
 | ||
| 
 | ||
| Простая роль для проверки ping.
 | ||
| 
 | ||
| ```bash
 | ||
| # Тестирование роли ping
 | ||
| make role lint ping
 | ||
| make role test ping
 | ||
| ```
 | ||
| 
 | ||
| **Документация:** [roles/ping/README.md](../roles/ping/README.md)
 | ||
| 
 | ||
| ## 🎯 Preset система
 | ||
| 
 | ||
| ### Базовые preset'ы
 | ||
| 
 | ||
| - **`default`** - Стандартный preset (2 хоста: Ubuntu + Debian)
 | ||
| - **`minimal`** - Минимальный preset (1 хост: Debian)
 | ||
| - **`test`** - Базовый тест (2 хоста)
 | ||
| 
 | ||
| ### Preset'ы по ОС
 | ||
| 
 | ||
| - **Ubuntu**: `ubuntu20`, `ubuntu22`, `ubuntu24`, `ubuntu-all`
 | ||
| - **Debian**: `debian9`, `debian10`, `debian11`, `debian12`, `debian-all`
 | ||
| - **CentOS**: `centos7`, `centos8`, `centos9`, `centos-all`
 | ||
| 
 | ||
| ### Специализированные preset'ы
 | ||
| 
 | ||
| - **`all-images`** - Все образы (16 хостов)
 | ||
| - **`multi-os`** - Multi-OS тестирование (8 хостов)
 | ||
| - **`docker-full`** - Docker тестирование (4 хоста)
 | ||
| - **`performance`** - Тест производительности (8 хостов)
 | ||
| - **`security`** - Тест безопасности (6 хостов)
 | ||
| 
 | ||
| ## 🔐 Работа с секретами
 | ||
| 
 | ||
| ### Инициализация Vault
 | ||
| 
 | ||
| ```bash
 | ||
| # Создание файла с паролем
 | ||
| make vault init
 | ||
| ```
 | ||
| 
 | ||
| ### Создание и редактирование секретов
 | ||
| 
 | ||
| ```bash
 | ||
| # Создание нового секрета
 | ||
| make vault create
 | ||
| 
 | ||
| # Редактирование существующего
 | ||
| make vault edit
 | ||
| 
 | ||
| # Просмотр секрета
 | ||
| make vault show
 | ||
| ```
 | ||
| 
 | ||
| ## 📖 Дополнительная документация
 | ||
| 
 | ||
| - [Руководство по Molecule](molecule-guide.md)
 | ||
| - [Создание ролей](creating-roles.md)
 | ||
| - [Docker образы](dockerfiles.md)
 | ||
| - [Preset система](presets-by-os.md)
 | ||
| - [Настройка CI/CD](cicd-setup.md)
 |