iac/.forgejo/workflows/ansible-playbooks.yml

95 lines
3.7 KiB
YAML
Raw Normal View History

2025-01-12 17:46:35 -05:00
name: Run Ansible Playbook
on:
workflow_dispatch:
inputs:
playbook:
description: "Choose the Ansible playbook to run"
required: true
type: choice
options:
- apt.yml
- docker-count.yml
- docker-login.yml
- docker-prune.yml
- git-pull-reset.yml
- main-reboot-required.yml
- ntp.yml
- zsh.yml
jobs:
run-playbook:
runs-on: docker
container:
image: mafyuh/ansible-bws:v1.0.8
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Get Secrets from Bitwarden
id: bitwarden-secrets
uses: https://github.com/bitwarden/sm-action@v2
with:
access_token: ${{ secrets.BW_ACCESS_TOKEN }}
base_url: https://vault.bitwarden.com
secrets: |
267abc49-f755-4c88-a2a8-b23d00503e31 > arrs_host
e74d1f67-c909-4a2e-b6fc-b23e001dfa4a > ai_host
6f9cef86-eb39-4e05-8c5b-b23e001e6170 > arm_host
52512c15-b474-42c3-9835-b23e001edf35 > auth_host
903364d9-1b29-4b7f-aa66-b23e001f7327 > jf_host
e4c5d8be-b91f-41ab-8071-b23e00203340 > kasm_host
566329f5-5af3-4bcd-b187-b23e00216134 > netboot_host
fb62a8d1-6dd5-4fab-aff4-b23e0021e215 > npm_host
fe0a2fa5-8e2b-4b4f-ac68-b26100315b20 > plex_host
90a16954-45df-49ad-9f45-b23e002273c5 > runner_host
a5b6fa4b-4643-4f85-988b-b23e00245e2f > ubu_host
26b06759-9791-42d7-a076-b23e0063c4dd > ssh_private_key
- name: Create hosts.ini file
run: |
cat <<EOF > ansible/hosts.ini
[iac]
arrs.lan ansible_host=${{ steps.bitwarden-secrets.outputs.arrs_host }} ansible_user=mafyuh
ai.lan ansible_host=${{ steps.bitwarden-secrets.outputs.ai_host }} ansible_user=mafyuh ansible_port=2424
arm.lan ansible_host=${{ steps.bitwarden-secrets.outputs.arm_host }} ansible_user=ubuntu ansible_port=2424
auth.lan ansible_host=${{ steps.bitwarden-secrets.outputs.auth_host }} ansible_user=mafyuh
jf.lan ansible_host=${{ steps.bitwarden-secrets.outputs.jf_host }} ansible_user=mafyuh
kasm.lan ansible_host=${{ steps.bitwarden-secrets.outputs.kasm_host }} ansible_user=mafyuh
netboot.lan ansible_host=${{ steps.bitwarden-secrets.outputs.netboot_host }} ansible_user=mafyuh
npm.lan ansible_host=${{ steps.bitwarden-secrets.outputs.npm_host }} ansible_user=mafyuh
plex.lan ansible_host=${{ steps.bitwarden-secrets.outputs.plex_host }} ansible_user=mafyuh ansible_port=2009
runner.lan ansible_host=${{ steps.bitwarden-secrets.outputs.runner_host }} ansible_user=mafyuh
ubu.lan ansible_host=${{ steps.bitwarden-secrets.outputs.ubu_host }} ansible_user=mafyuh
EOF
- name: Ensure SSH directory exists
run: |
mkdir -p /root/.ssh
chmod 700 /root/.ssh
- name: Create Private key
run: |
cat <<EOF > /root/.ssh/id_rsa
${{ steps.bitwarden-secrets.outputs.ssh_private_key }}
EOF
- name: Set permissions for private key
run: |
chmod 700 /root/.ssh/id_rsa
- name: Set up SSH agent
run: |
eval $(ssh-agent -s)
ssh-add /root/.ssh/id_rsa
- name: Run the selected playbook
2025-01-12 17:51:07 -05:00
env:
BWS_ACCESS_TOKEN: ${{ secrets.BWS_ACCESS_TOKEN }}
ANSIBLE_CONFIG: ansible/ansible.cfg
2025-01-12 17:46:35 -05:00
run: |
2025-01-12 17:48:19 -05:00
ansible-playbook -i ansible/hosts.ini ./ansible/playbooks/${{ github.event.inputs.playbook }} \
2025-01-12 17:46:35 -05:00
--extra-vars "bw_access_token=${{ secrets.BW_ACCESS_TOKEN }}"