name: Homelab Deployment Pipeline on: push: branches: - main jobs: deploy-dns: runs-on: self-hosted steps: - name: Checkout code uses: actions/checkout@v3 - name: Install ansible run: | apt-get update apt-get install -y python3-pip python3-setuptools pip3 install ansible - name: Set up SSH private key run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" | base64 -d > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 echo -e "Host *\n\tStrictHostKeyChecking no\n" > ~/.ssh/config - name: Verify SSH Key Format run: | echo "File size: $(wc -c < ~/.ssh/id_ed25519) bytes" echo "First line: $(head -n 1 ~/.ssh/id_ed25519)" echo "Last line: $(tail -n 1 ~/.ssh/id_ed25519)" - name: Set up vault password run: | echo "${{ secrets.VAULT_PASSWORD }}" > ansible/vault_pass chmod 600 ansible/vault_pass - name: Execute DNS playbook run: | cd ansible ansible-playbook deploy_monitor.yml -i inventory.ini --vault-password-file vault_pass