Files
DevOpsLab/docs/getting-started.md
Сергей Антропов bfed0d1ea8 refactor: Переименование проекта с AnsibleTemplate на AnsibleLab
- Обновлено название проекта во всех файлах
- Изменена документация (README.md, docs/*.md)
- Обновлены конфигурационные файлы (Makefile, env.example)
- Изменены CI/CD файлы (GitHub Actions, Azure DevOps, Jenkins)
- Обновлены скрипты и Dockerfile
- Изменено название в molecule.yml и dockerfiles/README.md

Все ссылки и упоминания проекта теперь используют название AnsibleLab
2025-10-25 19:30:54 +03:00

6.4 KiB
Raw Blame History

Быстрый старт с AnsibleLab

Автор: Сергей Антропов
Сайт: https://devops.org.ru

🚀 Установка и настройка

1. Клонирование репозитория

git clone https://github.com/your-username/AnsibleLab.git
cd AnsibleLab

2. Настройка переменных окружения

# Копирование файла переменных
cp env.example .env

# Редактирование переменных
nano .env

3. Настройка Docker

# Настройка multi-arch builder
make docker setup-builder

# Сборка всех образов
make docker build

# Проверка собранных образов
make docker info

🧪 Первое тестирование

1. Управление ролями

# Просмотр всех ролей
make role list

# Создание новой роли (интерактивно)
make role create

# Удаление роли (интерактивно)
make role delete

2. Просмотр доступных preset'ов

# Список всех preset'ов
make presets list

# Информация о конкретном preset'е
make presets info PRESET=default

3. Тестирование роли ping

# Тестирование с default preset
make role test

# Тестирование с minimal preset
make role test minimal

3. Проверка результатов

# Просмотр логов
docker logs ansible-controller

# Вход в контейнер для отладки
docker exec -it ansible-controller bash

🔧 Создание первой роли

1. Создание структуры роли

# Создание директории роли
mkdir -p roles/my-role/{tasks,handlers,templates,files,vars,defaults,meta}

# Создание основных файлов
touch roles/my-role/{tasks,handlers,meta}/main.yml
touch roles/my-role/defaults/main.yml
touch roles/my-role/vars/main.yml
touch roles/my-role/README.md

2. Разработка роли

roles/my-role/tasks/main.yml:

---
# Основные задачи для роли my-role
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru

- name: Установка пакетов
  package:
    name: "{{ my_role_packages }}"
    state: present
  when: my_role_enabled | default(true)
  tags:
    - my-role
    - install

- name: Настройка конфигурации
  template:
    src: my-role.conf.j2
    dest: /etc/my-role/my-role.conf
    owner: root
    group: root
    mode: '0644'
  notify: restart my-role
  tags:
    - my-role
    - config

roles/my-role/defaults/main.yml:

---
# Переменные по умолчанию для роли my-role
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru

# Основные настройки
my_role_enabled: true
my_role_packages:
  - nginx
  - curl

# Конфигурация
my_role_config_file: /etc/my-role/my-role.conf
my_role_log_level: info

3. Тестирование роли

# Lint проверка
make role lint

# Тестирование в Docker
make role test minimal

# Тестирование с custom preset
make role test my-custom-preset

🚀 Развертывание на продакшн

1. Настройка инвентори

inventory/hosts.ini:

# Продакшн серверы
[web_servers]
web1.example.com ansible_host=192.168.1.10
web2.example.com ansible_host=192.168.1.11

[db_servers]
db1.example.com ansible_host=192.168.1.20
db2.example.com ansible_host=192.168.1.21

[all:vars]
ansible_user=devops
ansible_ssh_private_key_file=~/.ssh/id_rsa
ansible_ssh_common_args='-o StrictHostKeyChecking=no'

2. Настройка SSH ключей

# Генерация SSH ключа
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

# Копирование ключа на серверы
ssh-copy-id devops@web1.example.com
ssh-copy-id devops@web2.example.com

3. Тестирование подключения

# Проверка подключения
ansible all -i inventory/hosts.ini -m ping

# Dry-run развертывания
make role deploy

4. Развертывание

# Развертывание на продакшн
make role deploy
# Подтвердить развертывание: y

🔐 Управление секретами

1. Инициализация vault

# Создание файла пароля
make vault init

# Создание файла секретов
make vault create

2. Работа с секретами

# Редактирование секретов
make vault edit

# Просмотр секретов
make vault show

# Шифрование файла
make vault encrypt

🏗️ CI/CD интеграция

1. GitHub Actions

# .github/workflows/ansible-test.yml
name: Ansible Testing
on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run tests
        run: make role test

2. Azure DevOps

# azure-pipelines.yml
trigger:
- main
pool:
  vmImage: 'ubuntu-latest'
stages:
- stage: Test
  jobs:
  - job: TestJob
    steps:
    - script: make role test

📊 Мониторинг и диагностика

1. Диагностика Docker

# Диагностика buildx проблем
make docker diagnose

# Проверка builder'а
make docker setup-builder

# Сброс builder'а при проблемах
make docker reset-builder

2. Логи и отчеты

# Просмотр логов контейнера
docker logs ansible-controller

# Вход в контейнер для отладки
docker exec -it ansible-controller bash

🎯 Следующие шаги

  1. Изучите документацию по созданию ролей
  2. Настройте CI/CD по инструкции
  3. Изучите Docker образы в dockerfiles/README.md
  4. Настройте мониторинг по руководству

Автор: Сергей Антропов
Сайт: https://devops.org.ru