Gestion du Stockage avec Incus storage bucket
6. Gestion du Stockage avec Incus
- incus_storage_volume_copy : Copier des volumes pour redondance ou migration
- incus_storage_bucket et incus_storage_bucket_key : Gérer des buckets de stockage et leurs accès
incus_storage_volume_copy : Copier des volumes pour redondance ou migration
La ressource incus_storage_volume_copy permet de créer une copie d'un volume existant. Cela peut être utile pour des raisons de redondance, de migration vers un nouveau pool de stockage ou simplement pour créer des sauvegardes de données.
Exemple d'utilisation de la fonction de copie de volume :
resource "incus_storage_pool" "dev_pool" {
name = "dev-pool"
driver = "lvm"
config = {
"size": "55GiB"
}
}
resource "incus_storage_volume" "data_volume_lvm" {
name = "dev-data-volume-lvm"
pool = incus_storage_pool.dev_pool.name
config = {
size = "5GB"
}
}
resource "incus_storage_volume_copy" "data_volume_lvm_copy" {
name = "data-volume-copy"
pool = incus_storage_pool.dev_pool.name
source_pool = incus_storage_pool.dev_pool.name
source_name = incus_storage_volume.data_volume_lvm.name
}
resource "incus_instance" "prod_vm" {
name = "prod-srv-01"
image = "images:ubuntu/22.04"
type = "virtual-machine"
config = {
"boot.autostart" = true
}
limits = {
cpu = 2
memory = "2048MB"
}
device {
name = "data"
type = "disk"
properties = {
path = "/opt/data"
source = incus_storage_volume_copy.data_volume_lvm_copy.name
pool = incus_storage_pool.dev_pool.name
}
}
device {
name = "root"
type = "disk"
properties = {
pool = incus_storage_pool.dev_pool.name
path = "/"
size = "5GB"
}
}
}
- incus_storage_pool définit un pool de stockage LVM nommé dev-pool avec une capacité de 55 GiB.
- incus_storage_volume crée un volume nommé dev-volume-lvm de 5GiB dans le pool dev-pool.
- incus_storage_volume_copy pour copier le volume
- incus_instance crée une instance vm pour utliser le volume copié et le monter dans /opt/data
incus_storage_bucket et incus_storage_bucket_key : Gérer des buckets de stockage et leurs accès
Un bucket est une unité de stockage dans laquelle vous pouvez stocker des objets, tels que des fichiers ou des données. Dans Incus, la gestion des buckets permet de structurer et d’organiser les données de manière efficace.
La ressource incus_storage_bucket permet de créer et de gérer des buckets de stockage.
Configuration de l'adresse s3
incus config set core.storage_buckets_address :8555
Exemple de Configuration
resource "incus_storage_pool" "pool-bucket" {
name = "bucket-pool" # Nom du pool de stockage
driver = "lvm" # Type de pilote pour le pool
config = {
"size": "55GiB"
}
}
resource "incus_storage_bucket" "bucket-dev" {
name = "bucket-dev" # Nom du bucket de stockage
pool = incus_storage_pool.pool-bucket.name # Référence au pool de stockage
config = {
"size" = "50MiB"
}
}
- incus_storage_pool crée un pool dédié aux buckets
- incus_storage_bucket crée un bucket dans le pool dédié
Clés de Bucket : incus_storage_bucket_key
Une clé de bucket permet de gérer les accès à un bucket spécifique. Cela aide à contrôler qui peut interagir avec les objets stockés dans le bucket.
Voici comment créer une clé pour un bucket de stockage:
resource "incus_storage_pool" "pool-bucket" {
name = "bucket-pool" # Nom du pool de stockage
driver = "lvm" # Type de pilote pour le pool
config = {
"size": "55GiB"
}
}
resource "incus_storage_bucket" "bucket-dev" {
name = "bucket-dev" # Nom du bucket de stockage
pool = incus_storage_pool.pool-bucket.name # Référence au pool de stockage
config = {
"size" = "50MiB"
}
}
resource "incus_storage_bucket_key" "key_bucket_dev_admin" {
name = "bucket-dev-key-admin" # Nom de la clé d'accès
pool = incus_storage_bucket.bucket-dev.pool # Référence au pool de stockage
storage_bucket = incus_storage_bucket.bucket-dev.name # Référence au bucket
role = "admin"
}
resource "incus_storage_bucket_key" "key_bucket_dev_ro" {
name = "bucket-dev-key-ro" # Nom de la clé d'accès
pool = incus_storage_bucket.bucket-dev.pool # Référence au pool de stockage
storage_bucket = incus_storage_bucket.bucket-dev.name # Référence au bucket
role = "read-only"
}
# Output pour l'access_key et secret_key de la clé admin
output "admin_bucket_access_key" {
value = incus_storage_bucket_key.key_bucket_dev_admin.access_key
sensitive = true
}
output "admin_bucket_secret_key" {
value = incus_storage_bucket_key.key_bucket_dev_admin.secret_key
sensitive = true
}
# Output pour l'access_key et secret_key de la clé read-only
output "ro_bucket_access_key" {
value = incus_storage_bucket_key.key_bucket_dev_ro.access_key
sensitive = true
}
output "ro_bucket_secret_key" {
value = incus_storage_bucket_key.key_bucket_dev_ro.secret_key
sensitive = true
}
- incus_storage_bucket_key pour acceder au bucket
incus storage bucket list bucket-pool
incus storage bucket show bucket-pool bucket-dev

- Afficher les teraform outputs
terraform output admin_bucket_access_key
terraform output admin_bucket_secret_key
terraform output ro_bucket_access_key
terraform output ro_bucket_secret_key
Commentaires
Aucun commentaire pour le moment.