Comment travailler avec DigitalOcean Block Storage à l’aide de Doctl

introduction

Stockage en bloc vous permet de gérer un stockage supplémentaire pour vos droplets DigitalOcean d'une manière similaire à l'utilisation de disques durs. L'ajout de blocs de stockage à nos droplets peut être effectué en quelques clics à partir de l'interface graphique simplifiée ou de l'interface utilisateur graphique de DigitalOcean. Cependant, comme ce n'est pas une façon pratique de fonctionner dans des environnements plus grands et plus complexes, DigitalOcean propose une API pour travailler à grande échelle. Nous pouvons interagir directement avec l'API viadoctl, l'outil de ligne de commande officiel de DigitalOcean.

Dans ce didacticiel, nous allons apprendre à utiliserdoctl pour créer, répertorier, attacher, détacher et supprimer des volumes de stockage en bloc de nos Droplets.

Conditions préalables

Avant de commencer ce didacticiel, vous devez vous familiariser avecdoctl et le stockage par blocs de DigitalOcean. Les articles suivants seront utiles:

Vous devez vous assurer que la dernière version dedoctl (au moment de la rédaction de cet article est la 1.7.1) installée et authentifiée avant de continuer. Vérifiez la version de votredoctl en exécutantdoctl version. Vous aurez également besoin d'unSSH key added to your DigitalOcean account.

Enfin, pour suivre ce didacticiel, vous aurez besoin d'un Droplet créé sur l'une des régions permettant l'utilisation du stockage en bloc (au moment de la rédaction de cet article, les régions suivantes offrent un stockage en bloc:BLR1,FRA1,LON1,NYC1,NYC3,SFO2,SGP1 etTOR1).

[.note] #Note: Bien que les régions mentionnées ci-dessus prennent en charge le stockage par blocs, cette fonctionnalité n'est actuellement pas disponible pour toutes les gouttelettes dans les régions indiquées. Pour vous assurer que le Droplet sur lequel vous travaillez prend en charge le stockage par blocs, vous devrez lui attacher un volume au moment de la création.
#

Créer des volumes

Pour créer un volume avecdoctl, vous devez fournir les paramètres suivants à la commande:

  • volume name: dans notre exemple ce serafirstvolume

  • region: pour notre tutoriel, nous allons créer le volume enNYC3

  • size (par défaut à 4 To): dans cet exemple, nous le définirons sur100 GiB

Vous pouvez également fournir une description avec l'indicateurdesc, mais c'est entièrement facultatif. La commande complète ressemblera à ceci:

doctl compute volume create firstvolume --region nyc3 --size 100GiB

Vous devriez voir une sortie semblable à ceci:

OutputID                                      Name           Size      Region    Droplet IDs
______your_volume_ID1_______            firstvolume    100 GiB    nyc3

À ce stade, vous connaissez la commandedoctl et les informations requises pour créer un nouveau volume. Vous apprendrez ensuite comment imprimer une liste complète des volumes existants.

Liste des volumes

doctl nous offre la possibilité d'afficher les volumes existants dans une liste formatée. Il existe plusieurs raisons pour lesquelles vous souhaitez répertorier vos volumes. Les deux plus courants sont d’afficher l’ID de chaque volume à utiliser dans les commandes ultérieures et d’indiquer quels droplets sont dotés de volumes.

Pour répertorier tous les volumes de stockage de bloc actuels, vous pouvez exécuter la commande suivante.

doctl compute volume list

Il s'agit de la sortie de la commandelist exécutée dans notre exemple:

OutputID                                      Name              Size        Region    Droplet IDs
______your_volume_ID1______             firstvolume       100 GiB     nyc3
______your_volume_ID1______             secondvolume      4096 GiB    nyc3
______your_volume_ID1_______            thirdvolume       100 GiB      nyc3      [ID]

Dans cette section, vous avez appris la commandedoctl pour voir une liste des volumes que vous avez créés. Dans la section suivante, nous verrons comment attacher un volume à un droplet.

Joindre des volumes

Parfois, votre Droplet peut nécessiter un espace supplémentaire pour gérer des actifs tels que des données d'application et des fichiers de configuration. L'ajout d'un volume est un excellent moyen d'ajouter cet espace sans perturber le service.

Pour joindre des volumes, vous aurez besoin de deux informations:

  • l'ID de volume

  • l'ID de gouttelette

Dans la section précédente, nous avons vu comment obtenir lesvolume ID en utilisant la commandedoctl compute volume list.

Nous pouvons obtenir nosDroplet ID en exécutant la commande suivante pour afficher des informations sur les Droplets de notre compte:

doctl compute droplet list

Une fois que nous avons les identifiants de volume et de droplet, nous pouvons exécuter la commande suivante pour attacher un volume à un droplet:

doctl compute volume-action attach your_volume_ID your_droplet_ID

Cela produira une sortie similaire à celle-ci:

OutputID           Status         Type             Started At                       Completed At    Resource ID    Resource Type    Region
346253669    in-progress    attach_volume    2017-12-28 19:53:28 +0000 UTC               0              backend          nyc3

Plus tôt dans ce didacticiel, il était recommandé de joindre un volume au Droplet au moment de la création, afin de s'assurer qu'il utilise une infrastructure prenant en charge le stockage en mode bloc. Si vous avez créé un Droplet sans attacher de volume à ce moment-là, le message d'erreur suivant peut s'afficher lorsque vous essayez d'y attacher un volume:

OutputError: POST https://api.digitalocean.com/v2/volumes/your_volume_ID/actions: 422 Droplet can't attach volumes due to a region restriction

Si vous rencontrez cette erreur, vous ne pourrez pas associer le volume à la droplet spécifiée et vous devrez réessayer.

Une fois qu'un volume est correctement connecté à un droplet qui l'accepte, vous pouvez passer à la section suivante pour savoir comment détacher le volume au cas où vous n'auriez plus besoin de cet espace supplémentaire.

Détachement de volumes

Il peut arriver que vous n'ayez besoin d'associer temporairement un volume à une Droplet, par exemple en déboguant un problème nécessitant une grande quantité de journaux ou en créant une sauvegarde de certaines données limitées dans le temps. Dans ce cas, nous devrons être en mesure de détacher un volume une fois l’utilisation terminée.

Détacher un volume revient à attacher un volume et utilise les mêmes informations. La commande et la sortie varient légèrement.

doctl compute volume-action detach your_volume_ID your_droplet_ID
OutputID           Status         Type             Started At                       Completed At    Resource ID    Resource Type    Region
346254931    in-progress    detach_volume    2017-12-28 19:57:51 +0000 UTC               0              backend          nyc3

À ce stade, vous savez comment détacher un volume avecdoctl. Dans la section suivante, vous apprendrez à supprimer un volume dont vous n’avez plus besoin.

Suppression de volumes

Lorsque vous n’avez plus besoin d’un certain volume de stockage de bloc, vous pouvez le détacher, puis le supprimer de votre compte par suppression. Une fois que vous avez détaché un volume, vous aurez besoin de son identifiant pour le supprimer.

doctl compute volume delete your_volume_id

L'exécution de cette commande demandera une confirmation:

OutputWarning: Are you sure you want to delete volume (y/N) ?

Si vous êtes satisfait de vouloir supprimer le volume, appuyez sury pour confirmer.

Une fois le volume supprimé, vous serez renvoyé à l'invite de commande. Vous pouvez vérifier que le volume a été supprimé à l'aide de la commandelist.

Obtenir des informations sur un volume

Si vous avez besoin d'informations sur un volume spécifique, vous pouvez le demander en appelant la commande suivante.

doctl compute volume get your_volume_id

Vous trouverez la sortie de cette commande familière car elle est automatiquement exécutée lors de la création d'un volume.

OutputID                                      Name           Size      Region    Droplet IDs
______your_volume_ID1_______      firstvolume    100 GiB    nyc3

Dans cette section, vous avez appris comment supprimer un volume devenu inutile.

Vous disposez maintenant de toutes les informations dont vous avez besoin pour utiliser avec succèsdoctl afin de travailler avec des volumes de stockage en bloc DigitalOcean.

Conclusion

Dans ce didacticiel, nous avons appris à utiliserdoctl pour ajouter, attacher, détacher, répertorier et supprimer des volumes de nos Droplets.

Maintenant que vous savez comment faire cela, vous voudrez peut-être explorer la création de scripts et l'ajout de ces scripts à votre outil d'automatisation préféré, tel queJenkins ouDrone.

Related