Merge pull request #9 from RunOnFlux/feature/pdns-deploy-and-5.0 #3
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: Deploy PowerDNS configuration | |
| on: | |
| push: | |
| branches: | |
| - master | |
| release: | |
| types: | |
| - created | |
| jobs: | |
| deploy: | |
| runs-on: runonflux | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| - name: Install Ansible | |
| run: pip install ansible | |
| - name: Set up SSH key | |
| env: | |
| SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} | |
| run: | | |
| mkdir -p ~/.ssh | |
| echo "$SSH_PRIVATE_KEY" > private_key | |
| chmod 600 private_key | |
| echo "Host *" >> ~/.ssh/config | |
| echo " IdentityFile $(pwd)/private_key" >> ~/.ssh/config | |
| echo " StrictHostKeyChecking no" >> ~/.ssh/config | |
| echo " UserKnownHostsFile /dev/null" >> ~/.ssh/config | |
| - name: Run Deployment on all selected hosts | |
| env: | |
| DEPLOY_ENV: ${{ github.event_name == 'release' && 'production' || 'staging' }} | |
| MAXMIND_ACCOUNT_ID: ${{ secrets.MAXMIND_ACCOUNT_ID }} | |
| MAXMIND_LICENSE_KEY: ${{ secrets.MAXMIND_LICENSE_KEY }} | |
| TSIG_STAGING_ZONE_TRANSFER_KEY: ${{ secrets.TSIG_STAGING_ZONE_TRANSFER_KEY }} | |
| TSIG_PRODUCTION_ZONE_TRANSFER_KEY: ${{ secrets.TSIG_PRODUCTION_ZONE_TRANSFER_KEY }} | |
| PDNS_API_STAGING_KEY: ${{ secrets.PDNS_API_STAGING_KEY }} | |
| PDNS_API_PRODUCTION_KEY: ${{ secrets.PDNS_API_PRODUCTION_KEY }} | |
| run: | | |
| ansible-playbook -i hosts.yaml \ | |
| -e "DEPLOY_ENV=$DEPLOY_ENV" \ | |
| -e "maxmind_account_id=$MAXMIND_ACCOUNT_ID" \ | |
| -e "maxmind_license_key=$MAXMIND_LICENSE_KEY" \ | |
| -e "tsig_staging_zone_transfer_key=$TSIG_STAGING_ZONE_TRANSFER_KEY" \ | |
| -e "tsig_production_zone_transfer_key=$TSIG_PRODUCTION_ZONE_TRANSFER_KEY" \ | |
| -e "pdns_api_staging_key=$PDNS_API_STAGING_KEY" \ | |
| -e "pdns_api_production_key=$PDNS_API_PRODUCTION_KEY" \ | |
| powerdns_setup.yaml |