Skip to content
Cloud Codger edited this page Sep 4, 2026 · 1 revision

Welcome to the showcase wiki!

This repository contains a set of showcase items based on Ansible playbooks used to configure a PVE node or cluster and guest machines inside it.

Originally created to show how to use the cloudcodger proxmox_openssh Ansible Collection. It quickly expanded to a larger set of Ansible Collections and roles. Below is a description of the directory layout for the repository.

Where to start

Start by making sure that all prerequisites have been met and then continue to the PVE Basic page to create a basic PVE node.

A good next step would be following the Builder page to create custom Cloud-Init images. After that, go ahead and explore the other pages to see examples of creating and configuring infrastructure for various purposes.

Prerequisites

  • A working Ansible Control Node with the required Python modules and Ansible collections installed.
  • A LAN or VLAN for showcase use. This repository uses the following values:
    • Network CIDR block 192.168.6.0/24 (netmask 255.255.255.0).
    • Default route of 192.168.6.1.
    • Has DNS name resolution configured.
  • One (1), three (3) or four (4) system(s) capable of running the PVE software.
  • A clone of this repository.

A different network CIDR block can be used but will require you to find and change it where set.

Directory Layout

This showcase is not intended to be a full tutorial on how to setup and use Ansible, but there are some things to consider in how the directories and files are layed out when using Ansible to configure and manage PVE nodes and resources.

The basic directory

This is an Ansible Inventory directory used with -i basic when running playbooks. See Ansible Inventory for additional details.

This is similar to lab in setting want_facts: to true, but differs in the basic/pve.yml file, which contains only one host in the proxmox_hosts group and is used to Launch a basic PVE Node.

The bin directory

This directory contains shell scripts and scripts copied from the Rook repository for use in the Grafana Microservices Stack.

The files directory

This directory contains large files like ISO images, LXC templates and QCOW2 images that different roles either copy to hosts or are provided to Proxmox as disk images for VM creation. This directory is not checked into the git repository and the acquire.yml playbook will create and populate this directory.

The lab directory

This is an Ansible Inventory directory used with -i lab when running playbooks. See Ansible Inventory for additional details.

This differs from lab-minimal in the configuration of the inventory plugin file inventory.proxmox.yml by setting want_facts: to true and the keyed_groups: and compose: variables that cause the plugin to gather additional facts for the hosts in the inventory.

The lab-minimal directory

This is an Ansible Inventory directory used with -i lab-minimal when running playbooks. See Ansible Inventory for additional details.

This differs from lab in the configuration of the inventory plugin file inventory.proxmox.yml by not gather any additional facts for the hosts in the inventory. This can result in a significant increase in how fast the inventory is built, especially as the number of guest machines within the PVE cluster increases.

The manifests directory

This contains Kubernetes manifest files used by kubectl or helm commands.

The templates directory

This is the typical location for the Ansible ansible.builtin.template module for playbooks at the root level of the directory structure.

Clone this wiki locally