kafka connect #8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Ansible Kafka API | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - 'kafka_connect/**' | |
| jobs: | |
| ansible: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| - name: Run Ansible in Docker | |
| run: | | |
| docker run --rm \ | |
| -v ${{ github.workspace }}:/workspace \ | |
| -w /workspace \ | |
| -e AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }} \ | |
| -e AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }} \ | |
| -e SSH_PRIVATE_KEY="${{ secrets.EC2 }}" \ | |
| -e KAFKA_SECURITY_PROTOCOL="${{ secrets.KAFKA_SECURITY_PROTOCOL }}" \ | |
| -e KAFKA_SASL_MECHANISM="${{ secrets.KAFKA_SASL_MECHANISM }}" \ | |
| -e KAFKA_SASL_USERNAME="${{ secrets.KAFKA_SASL_USERNAME }}" \ | |
| -e ADMIN_PASSWORD="${{ secrets.ADMIN_PASSWORD }}" \ | |
| -e SSL_KEYSTORE_PASSWORD="${{ secrets.SSL_KEYSTORE_PASSWORD }}" \ | |
| -e SSL_TRUSTSTORE_PASSWORD="${{ secrets.SSL_TRUSTSTORE_PASSWORD }}" \ | |
| -e JWT_TOKEN="${{ secrets.JWT_TOKEN }}" \ | |
| python:3.11-slim bash -c " | |
| set -e | |
| # Sistem paketlerini kur | |
| apt-get update && apt-get install -y awscli jq ssh git python3-pip rsync | |
| pip3 install ansible==9.2.0 | |
| # SSH key oluştur ve izinleri ayarla | |
| mkdir -p ~/.ssh | |
| echo \"\$SSH_PRIVATE_KEY\" > ~/.ssh/trendyol-kafka-key.pem | |
| chmod 600 ~/.ssh/trendyol-kafka-key.pem | |
| # Inventory ve .env oluştur (S3'ten çeker, env var'larla merge eder) | |
| bash kafka_connect/generate-inventory.sh | |
| # Test ping | |
| ansible all -i kafka_connect/inventory.yml -m ping | |
| cat kafka_connect/inventory.yml | |
| # Playbook çalıştır | |
| ansible-playbook -i kafka_connect/inventory.yml kafka_connect/ansible_kafka_connect.yml | |
| " |