# Ansible Playbook for LXC/Incus Installation (Debian/Ubuntu) This playbook automates the installation and setup of the **stable** version of Incus on the **local machine** (Debian/Ubuntu). It is designed to be run directly on the server you wish to configure. ## Prerequisites 1. **Ansible & Git:** Must be installed on the machine where you are running the playbook. ```bash sudo apt update sudo apt install ansible git -y ``` 2. **Sudo Access:** Your user must have `sudo` privileges to run the playbook. ## How to Run 1. **Setup:** Clone the repository and go to the project directory ```bash git clone https://git.marmattheo.com/marmattheo/LXC-Incus-stable-playbook.git incus-stable-playbook && cd incus-stable-playbook ``` 2. **Execute the Playbook:** Run the following command from the same directory as the playbook file. It will prompt you for your `sudo` password to perform the administrative tasks. ```bash ansible-playbook playbook.yml -i inventory.ini --ask-become-pass ``` * `--ask-become-pass`: This flag tells Ansible to prompt for the password needed for privilege escalation (`sudo`). ## Post-Installation Instructions After the playbook completes successfully: 1. **Configure User Access:** Refresh group membership. ```bash newgrp incus-admin ``` 2. **Verify Setup:** You can test the installation by running. ```bash incus --version ``` 3. **Enable and Access the Incus Web UI:** Enable port 8443: ```bash incus config set core.https_address "[::]:8443" ``` Access the Web UI at: ```bash https://localhost:8443 ``` > https://vps-ip:8443 if you're running on remote server > Follow the self-signed certificate instructions when prompted for mLTS 4. **Incus Network - Access Containers by Name (Optional):** Configuring name-to-IP resolution so the host OS can reach Incus containers using their names. ```bash ansible-playbook incus-network.yml -i inventory.ini --ask-become-pass ``` > After this you should be able to reach your containers via their names or with the domain .incus > i.e., `sudo ping container_name`, `sudo ping container_name.incus` on terminal or `http://container_name.incus` inside an nginx config