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:
103
scripts/setup-cicd.sh
Executable file
103
scripts/setup-cicd.sh
Executable file
@@ -0,0 +1,103 @@
|
||||
#!/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 настроен"
|
||||
Reference in New Issue
Block a user