Global Variables ReferenceΒΆ
Complete reference for collection-wide variables that affect multiple roles or the overall behavior of the Qubinode KVM Host Setup Collection.
π Collection-Wide VariablesΒΆ
Core System VariablesΒΆ
admin_userΒΆ
Type: string
Required: Yes
Default:
""(must be set)Description: Primary administrative user for KVM host management
Used by: All roles
Example:
admin_user: "kvmadmin"
cicd_testΒΆ
Type: boolean
Required: No
Default:
falseDescription: Set to true when running in containers or CI/CD environments
Used by: All roles (affects hardware-specific tasks)
Example:
cicd_test: true
domainΒΆ
Type: string
Required: No
Default:
"example.com"Description: Default domain name for the environment
Used by: kvmhost_setup, kvmhost_libvirt, kvmhost_networking
Example:
domain: "lab.company.com"
Network Configuration VariablesΒΆ
kvm_host_ipaddr / kvm_host_ipΒΆ
Type: string
Required: Yes
Default:
ansible_default_ipv4.addressDescription: Primary IP address of the KVM host
Used by: kvmhost_setup, kvmhost_networking
Example:
kvm_host_ipaddr: "192.168.1.100"
kvm_host_interfaceΒΆ
Type: string
Required: Yes
Default:
ansible_default_ipv4.interfaceDescription: Primary network interface name
Used by: kvmhost_setup, kvmhost_networking
Example:
kvm_host_interface: "ens3"
kvm_host_gwΒΆ
Type: string
Required: Yes
Default:
ansible_default_ipv4.gatewayDescription: Network gateway IP address
Used by: kvmhost_setup, kvmhost_networking
Example:
kvm_host_gw: "192.168.1.1"
kvm_host_netmaskΒΆ
Type: string
Required: Yes
Default:
ansible_default_ipv4.netmaskDescription: Network subnet mask
Used by: kvmhost_setup, kvmhost_networking
Example:
kvm_host_netmask: "255.255.255.0"
kvm_host_mask_prefixΒΆ
Type: integer
Required: Yes
Default:
24Description: CIDR prefix length for network
Used by: kvmhost_setup, kvmhost_networking
Example:
kvm_host_mask_prefix: 24
qubinode_bridge_nameΒΆ
Type: string
Required: No
Default:
"qubibr0"Description: Name of the primary bridge interface
Used by: kvmhost_setup, kvmhost_networking, kvmhost_libvirt
Example:
qubinode_bridge_name: "kvmbr0"
Storage Configuration VariablesΒΆ
kvm_host_libvirt_dirΒΆ
Type: string
Required: No
Default:
"/var/lib/libvirt/images"Description: Directory for storing VM disk images
Used by: kvmhost_setup, kvmhost_libvirt, kvmhost_storage
Example:
kvm_host_libvirt_dir: "/data/vms"
libvirt_pool_nameΒΆ
Type: string
Required: No
Default:
"default"Description: Name of the default libvirt storage pool
Used by: kvmhost_setup, kvmhost_libvirt, kvmhost_storage
Example:
libvirt_pool_name: "vm-storage"
create_libvirt_storageΒΆ
Type: boolean
Required: No
Default:
trueDescription: Whether to configure libvirt storage pools
Used by: kvmhost_setup, kvmhost_storage
Example:
create_libvirt_storage: false
Feature Toggle VariablesΒΆ
lib_virt_setupΒΆ
Type: boolean
Required: No
Default:
trueDescription: Enable libvirt and KVM configuration
Used by: kvmhost_setup, kvmhost_libvirt
Example:
lib_virt_setup: false
enable_cockpitΒΆ
Type: boolean
Required: No
Default:
trueDescription: Enable Cockpit web interface installation
Used by: kvmhost_setup, kvmhost_cockpit
Example:
enable_cockpit: false
configure_shellΒΆ
Type: boolean
Required: No
Default:
trueDescription: Configure user shell environment and prompt
Used by: kvmhost_setup, kvmhost_user_config
Example:
configure_shell: false
configure_bridgeΒΆ
Type: boolean
Required: No
Default:
trueDescription: Create network bridge interface
Used by: kvmhost_setup, kvmhost_networking
Example:
configure_bridge: false
DNS Configuration VariablesΒΆ
kvm_host_dns_serverΒΆ
Type: string
Required: No
Default:
"1.1.1.1"Description: Primary DNS server for the KVM host
Used by: kvmhost_setup, kvmhost_networking
Example:
kvm_host_dns_server: "8.8.8.8"
dns_forwarderΒΆ
Type: string
Required: No
Default:
"1.1.1.1"Description: DNS forwarder for libvirt networks
Used by: kvmhost_setup, kvmhost_libvirt
Example:
dns_forwarder: "192.168.1.1"
search_domainsΒΆ
Type: list
Required: No
Default:
["{{ domain }}"]Description: DNS search domains
Used by: kvmhost_setup, kvmhost_libvirt
Example:
search_domains:
- "lab.company.com"
- "company.com"
π§ Complex Data StructuresΒΆ
libvirt_host_networksΒΆ
Complete network configuration for libvirt:
libvirt_host_networks:
- name: "{{ vm_libvirt_net | default('qubinet') }}"
create: true
mode: bridge # bridge, nat, isolated
bridge_device: "{{ kvm_host_bridge_name | default(qubinode_bridge_name) }}"
ifcfg_type: "{{ kvm_bridge_type }}"
ifcfg_bootproto: "{{ kvm_host_bootproto }}"
bridge_slave_dev: "{{ kvm_host_interface }}"
gateway: "{{ kvm_host_gw }}"
mask_prefix: "{{ kvm_host_mask_prefix }}"
ipaddress: "{{ kvm_host_ip }}"
mask: "{{ kvm_host_netmask }}"
mac: "{{ kvm_host_macaddr }}"
libvirt_host_storage_poolsΒΆ
Storage pool configuration:
libvirt_host_storage_pools:
- name: default
state: active
autostart: true
path: "{{ kvm_host_libvirt_dir }}"
type: dir # dir, lvm, nfs, iscsi
π― Variable ValidationΒΆ
Required Variable ValidationΒΆ
The collection validates that required variables are set:
required_variables:
- admin_user
- kvm_host_ipaddr
- kvm_host_interface
- kvm_host_gw
- kvm_host_netmask
- kvm_host_mask_prefix
Variable Type ValidationΒΆ
Variables are validated for correct types and formats:
validation_rules:
kvm_host_ipaddr:
type: ipv4_address
required: true
kvm_host_mask_prefix:
type: integer
min: 1
max: 32
admin_user:
type: string
min_length: 1
pattern: "^[a-zA-Z][a-zA-Z0-9_-]*$"
π Variable PrecedenceΒΆ
Variables are resolved in this order (highest to lowest precedence):
Extra vars (
-ecommand line)Task vars (in tasks)
Block vars (in blocks)
Role vars (
vars/main.yml)Play vars (in playbook)
Host vars (inventory host_vars)
Group vars (inventory group_vars)
Role defaults (
defaults/main.yml)
Example Variable OverrideΒΆ
# In inventory group_vars/all.yml
admin_user: "production-admin"
kvm_host_domain: "prod.company.com"
# In playbook
- hosts: kvm_hosts
vars:
enable_cockpit: false # Override default
roles:
- tosin2013.qubinode_kvmhost_setup_collection.kvmhost_setup
π Security-Sensitive VariablesΒΆ
Variables Requiring Secure HandlingΒΆ
xrdp_remote_user_passwordΒΆ
Type: string
Default:
"CHANGE_ME_IN_PRODUCTION"Security: Should be vaulted in production
Example:
# Use Ansible Vault
xrdp_remote_user_password: "{{ vault_xrdp_password }}"
SSH and Access VariablesΒΆ
Store SSH keys and passwords in Ansible Vault
Use separate vault files for different environments
Never commit sensitive values to version control
π Variable Categories by RoleΒΆ
kvmhost_base VariablesΒΆ
System configuration flags
Package management settings
EPEL repository configuration
Service management settings
kvmhost_networking VariablesΒΆ
Bridge configuration
Network interface settings
Firewall configuration
Validation settings
kvmhost_libvirt VariablesΒΆ
Libvirt service configuration
Storage pool settings
Network configuration
User access settings
kvmhost_storage VariablesΒΆ
Storage pool definitions
LVM configuration
Performance settings
Backup configuration
kvmhost_cockpit VariablesΒΆ
Web interface settings
SSL configuration
Module enablement
Authentication settings
kvmhost_user_config VariablesΒΆ
User account management
Shell configuration
SSH settings
Development tools