From c918e5761cc5297caced4feceb1d720f9d121051 Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Mon, 28 Aug 2023 23:59:57 +0100 Subject: [PATCH] initial --- .github/workflows/infra.yaml | 45 +++++++++++++++++++++++++++++ infra/test-vm/proxmox-playbook.yaml | 24 +++++++++++++++ inventory/proxmox.yaml | 12 ++++++++ 3 files changed, 81 insertions(+) create mode 100644 .github/workflows/infra.yaml create mode 100644 infra/test-vm/proxmox-playbook.yaml create mode 100644 inventory/proxmox.yaml diff --git a/.github/workflows/infra.yaml b/.github/workflows/infra.yaml new file mode 100644 index 0000000..52c9251 --- /dev/null +++ b/.github/workflows/infra.yaml @@ -0,0 +1,45 @@ +name: Infrastructure +on: + pull_request: + branches: + - main + push: + branches: + - main + tags: + - infra/** + paths: + - infra/**-playbook.yaml + - .github/workflows/infra.yaml + +jobs: + check: + name: Check infrastructure definitions + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: "3.11" + + - name: Install dependencies + run: -| + python3 -m venv venv + source venv/bin/activate + pip3 install -r requirements.txt + ansible-galaxy collection install community.general + + - name: Get changed playbooks + id: changed-playbooks + uses: tj-actions/changed-files@v38 + with: + files: infra/**-playbook.yaml + + - name: Check modified playbooks + run: -| + for file in ${{ steps.changed-playbooks.outputs.all_changed_files }}; do + ansible --inventory ./inventory --check "$file" + done diff --git a/infra/test-vm/proxmox-playbook.yaml b/infra/test-vm/proxmox-playbook.yaml new file mode 100644 index 0000000..e8c20bf --- /dev/null +++ b/infra/test-vm/proxmox-playbook.yaml @@ -0,0 +1,24 @@ +- name: Proxmox test-vm + hosts: localhost + module_defaults: + community.general.proxmox_kvm: + api_user: "{{ lookup('ansible.builtin.env', 'PROXMOX_TOKEN_ID') | regex_replace('!.*') }}" + api_host: "{{ lookup('ansible.builtin.env', 'PROXMOX_HOST' ) }}" + api_token_id: "{{ lookup('ansible.builtin.env', 'PROXMOX_TOKEN_ID') | regex_replace('.*!') }}" + api_token_secret: "{{ lookup('ansible.builtin.env', 'PROXMOX_TOKEN_SECRET') }}" + name: test-vm + node: pve + tasks: + - name: Create test-vm + community.general.proxmox_kvm: + name: test-vm + node: pve + - name: Update test-vm + community.general.proxmox_kvm: + cpu: x86-64-v3 + memory: 2048 + cores: 3 + update: true + - name: Start test-vm + community.general.proxmox_kvm: + state: started diff --git a/inventory/proxmox.yaml b/inventory/proxmox.yaml new file mode 100644 index 0000000..6b4033d --- /dev/null +++ b/inventory/proxmox.yaml @@ -0,0 +1,12 @@ +proxmox: + children: + kovalhome: + children: + nodes: + hosts: + pve.mgmt.home.local.koval.net: + pve2.mgmt.home.local.koval.net: + managed: + hosts: + unmanaged: + hosts: