Skip to content

Merge pull request #9 from RunOnFlux/feature/pdns-deploy-and-5.0 #3

Merge pull request #9 from RunOnFlux/feature/pdns-deploy-and-5.0

Merge pull request #9 from RunOnFlux/feature/pdns-deploy-and-5.0 #3

Workflow file for this run

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