# Incus

# [Incus] Installation

## Introduction

Incus est un gestionnaire de conteneur LXC et de machines virtuelles. Il est très rapide et s'accompagne d'une interface graphique qui aide grandement à la gestion des instances.

[![9a2865f528f7b846cda54335dec298dda6109bb3.png](https://wiki.neopipe.fr/uploads/images/gallery/2024-12/scaled-1680-/9a2865f528f7b846cda54335dec298dda6109bb3.png)](https://wiki.neopipe.fr/uploads/images/gallery/2024-12/9a2865f528f7b846cda54335dec298dda6109bb3.png)

## Sources

- [https://github.com/zabbly/incus](https://github.com/zabbly/incus)

## Installation

#### Debian

Pour installer **incus** et **qemu-system** (pour la virtualisation) :

```bash
apt install -y curl gpg && curl -fsSL https://pkgs.zabbly.com/key.asc | gpg --show-keys --fingerprint && mkdir -p /etc/apt/keyrings/ && curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc && sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-stable.sources
Enabled: yes
Types: deb
URIs: https://pkgs.zabbly.com/incus/stable
Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/zabbly.asc

EOF' && apt update && apt install -y incus qemu-system
```

Pour installer **incus-ui** mettez le contenu suivant dans le fichier **/etc/apt/sources.list.d/osamuaoki.sources** :

```bash
Types: deb
URIs: https://osamuaoki.github.io/debian/
Suites: sid
Components: main
Signed-By:
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 .
 mDMEZZpSFhYJKwYBBAHaRw8BAQdA9T6mXRx7Zc64kQC+dKB2RgxNHK0+KFlCT8b/
 JtFAWRu0HU9zYW11IEFva2kgPG9zYW11QGRlYmlhbi5vcmc+iJIEExYIADsCGwMF
 CwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQTYnmsJtCCYzq8IGrFtbTgJIV9yDQUC
 ZZpXMAIZAQAKCRBtbTgJIV9yDc+YAQDhuq/q76qobfHKi8C2MT83u1qZkg2eCpEF
 UkyvrE59fwD4+d+IbCls19F3MCRuEmyvYQr+sghC82lnUiFOxUq/DbQhT3NhbXUg
 QW9raSA8b3NhbXUuYW9raUBnbWFpbC5jb20+iJAEExYIADgWIQTYnmsJtCCYzq8I
 GrFtbTgJIV9yDQUCZZpVVQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRBt
 bTgJIV9yDehWAP9lG8DUBwUPl0kCTezQItOxQfDXgJ0Lyhv8dv4B1iWxjgEA8YBv
 gCgDGby+pQmRX/STM7fu5LG62785oIj17HuMaQG4OARlmlIWEgorBgEEAZdVAQUB
 AQdA+q2tgbmHC7MQv5bTHyawYrITRw7Gdg7M0p0+oSRtzS8DAQgHiHgEGBYIACAC
 GwwWIQTYnmsJtCCYzq8IGrFtbTgJIV9yDQUCZZpU3QAKCRBtbTgJIV9yDdz6AQC8
 yC8mQnwkj9D2x84oSdEpAckJ/e47kLDN3y/HIOwXbAD/ZCv2Ek1Exh/7SrxNL65J
 ipPuCsH1vTsxbEE14mEs2Ag=
 =IDSM
 -----END PGP PUBLIC KEY BLOCK-----
# This is written in DEB822-STYLE FORMAT as described in sources.list (5)
```

Puis faite :

```bash
apt update && apt install incus-ui-canonical
```

Configurez incus :

```bash
incus admin init [--minimal]
```

<p class="callout success">Rendez-vous sur **https://&lt;IP&gt;:8443** pour accéder à l'interface graphique.</p>

Vous devez ensuite télécharger le certificat au format **.crt** sur le serveur et exécuter la commande suivante :

```bash
incus config trust add-certificate incus-ui.crt
```

Puis importez le certificat également dans votre navigateur, pour **Firefox** :

```
about:preferences#privacy
```

Puis descendez jusqu'à trouver **Afficher les certificats** et rendez vous dans **Vos Certificats** puis cliquez sur **Importer** et sélectionnez le fichier au format **.pfx** .

# [Incus] Manuel

## Introduction

Incus est un gestionnaire de conteneur LXC et de machines virtuelles. Il est très rapide et s'accompagne d'une interface graphique qui aide grandement à la gestion des instances.

[![9a2865f528f7b846cda54335dec298dda6109bb3.png](https://wiki.neopipe.fr/uploads/images/gallery/2024-12/scaled-1680-/9a2865f528f7b846cda54335dec298dda6109bb3.png)](https://wiki.neopipe.fr/uploads/images/gallery/2024-12/9a2865f528f7b846cda54335dec298dda6109bb3.png)

## Manuel

#### Créer un pool de stockage BTRFS

```bash
incus storage create pool-01 btrfs
```

<p class="callout success">Ici le pool s'appellera **pool-01** .</p>

#### Créer un réseau NAT

```bash
incus network create incusbr0 --type=bridge
```

#### Attacher un réseau NAT à une VM

```bash
incus network attach incusbr0 ct-almalinux eth0
```

#### Connecter le réseau Host à une interface

```bash
incus network attach-profile enp1s0 default eth0
```

<p class="callout success">Ici l'interface virtuelle **eth0** (à remplacer par le nom de l'interface de votre VM) sera connectée sur l'interface physique **enp1s0** de l'hôte. </p>

#### Créer un conteneur

```bash
incus launch images:almalinux/9 ct-almalinux --storage pool-01 --network incusbr0
```

<p class="callout info">Dans le cas où vous souhaitez vous connecter au réseau hôte, ne mettez pas l'option **--network** et connectez le réseau host comme vu ci-dessus.</p>

#### Créer une VM

```bash
incus launch images:debian/12 vm-debian-01 --vm --storage pool-01
```

#### Lister les VMs

```
incus list
```

#### Lister les réseaux

```bash
incus network list
```

#### Lister les pools de stockage

```bash
incus storage list
```

#### Afficher des infos sur une VMs

```bash
incus info <VM_NAME>
```

#### Ouvrir un shell dans une VM

```bash
incus exec <VM_NAME> -- /bin/bash
```

<p class="callout info">**/bin/bash** peut être remplacé pour exécuter un autre programme (ou commande).</p>

#### Créer une backup d'une VM/conteneur

```bash
incus export <VM_NAME> vm_backup.tar.gz
```

#### Restaurer une backup d'une VM/conteneur

```bash
incus import <BACKUP_NAME>
```

#### Créer un snapshot d'une VM/conteneur

```bash
incus export <VM_NAME> vm_backup.tar.gz
```

#### Restaurer une snapshot d'une VM/conteneur

```bash
incus snapshot restore <VM_NAME> <SNAPSHOT_NAME>
```

#### Cloner une VM/conteneur

```bash
incus copy <VM_NAME> <NEW_VM_NAME>
```