- Переписан главный 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 с новыми командами автоматизации - Улучшена навигация по документации
104 lines
2.3 KiB
Bash
Executable File
104 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Автоматическая настройка CI/CD для AnsibleTemplate
|
|
# Автор: Сергей Антропов
|
|
# Сайт: https://devops.org.ru
|
|
|
|
set -euo pipefail
|
|
|
|
echo "🔧 Настройка CI/CD для AnsibleTemplate..."
|
|
|
|
# Создание директории .github/workflows
|
|
mkdir -p .github/workflows
|
|
|
|
# Создание базового workflow для GitHub Actions
|
|
echo "📝 Создание GitHub Actions workflow..."
|
|
cat > .github/workflows/ansible-test.yml << 'EOF'
|
|
name: Ansible Testing
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install ansible ansible-lint
|
|
ansible-galaxy collection install -r requirements.yml
|
|
- name: Run lint
|
|
run: make role lint
|
|
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
needs: lint
|
|
strategy:
|
|
matrix:
|
|
preset: [minimal, default, performance]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Docker
|
|
run: |
|
|
sudo systemctl start docker
|
|
sudo usermod -aG docker $USER
|
|
- name: Run tests
|
|
run: make role test ${{ matrix.preset }}
|
|
|
|
deploy-check:
|
|
runs-on: ubuntu-latest
|
|
needs: [lint, test]
|
|
if: github.ref == 'refs/heads/main'
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Check deployment
|
|
run: make role deploy
|
|
env:
|
|
ANSIBLE_HOST_KEY_CHECKING: false
|
|
EOF
|
|
|
|
# Создание Azure DevOps pipeline
|
|
echo "📝 Создание Azure DevOps pipeline..."
|
|
cat > azure-pipelines.yml << 'EOF'
|
|
trigger:
|
|
- main
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
stages:
|
|
- stage: Test
|
|
jobs:
|
|
- job: TestJob
|
|
steps:
|
|
- script: make role test
|
|
EOF
|
|
|
|
# Создание Jenkinsfile
|
|
echo "📝 Создание Jenkinsfile..."
|
|
cat > Jenkinsfile << 'EOF'
|
|
pipeline {
|
|
agent any
|
|
stages {
|
|
stage('Test') {
|
|
steps {
|
|
sh 'make role test'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# Создание GitLab CI
|
|
echo "📝 Создание GitLab CI..."
|
|
cat > .gitlab-ci.yml << 'EOF'
|
|
stages:
|
|
- test
|
|
test:
|
|
stage: test
|
|
script:
|
|
- make role test
|
|
EOF
|
|
|
|
echo "✅ CI/CD настроен"
|