# Role: lxc_guest This role creates a debian LXC container on an host previously with LXC and network in bridged mode, connecting the container to the interface `br0` on the host. The ip address and gateway of the container are automatically discovered from the ansible inventory. The `vm_gateway` entry IP is used as gateway while the entry associated with `vm_name` IP is used as static IP address. ## Configuration variables | Name | Description | |--------------|-----------------------------------------| | `vm_name`* | Name of the LXC container. | | `vm_size` | Size of the VM logical volume. [`'5G'`] | | `distro` | Debian release name. [`'buster'`] | | `auto_start` | Auto-start container. [`true`] | | `domain`* | The VM domain is set to dmz.$domain | | `vg_name`** | LVM volume group name on the host. | **Note: If `vg_name` is not provided it will be derived from the `ansible_lxc_host` variable in the inventory entry of the guest. If the entry pointed by `ansible_lxc_host` doesn't set has an alterntive `vg_name` set, it will default to `ansible_lxc_host`+'-vg'. ## Minimal example group_vars/all.yaml: --- domain: 'example.com' hosts: vm_gateway ansible_host=10.0.2.1 ansible_user=root physical1 ansible_host=10.0.1.1 ansible_user=root vm_name=test-vg vm1 ansible_host=10.0.2.10 ansible_user=root ansible_lxc_host=physical1 vm1.yaml: --- - hosts: vm1 gather_facts: false # host may not exist yet tasks: - import_role: name='lxc_guest' vars: vm_name: '{{ inventory_hostname }}' vm_size: '1G' delegate_to: '{{ ansible_lxc_host }}' Command line: ansible-playbook -i hosts vm1.yaml ## Requirements On Ansible controller: - connection_plugins/ssh_lxc.py On LXC host: - python3-lxc module. ## See also The playbook `prepare_host.yaml` provides a working configuration for the physical machine running LXC.