Agence web » Actualités du digital » Comment créer une gouttelette DigitalOcean à l'aide de Terraform

Comment créer une gouttelette DigitalOcean à l'aide de Terraform

DigitalOcean est l'un des fournisseurs de machines virtuelles cloud les plus faciles à utiliser. Si vous avez besoin d'un environnement informatique rapidement provisionné, les machines virtuelles DigitalOcean deviennent généralement disponibles en moins de 60 secondes. Au lieu d'utiliser l'interface utilisateur (UI), il est souvent préférable d'automatiser.

Terraform est une infrastructure en tant que langage de code qui vous permet d'utiliser des fournisseurs, tels que DigitalOcean, pour provisionner des ressources sans utiliser l'interface utilisateur de DigitalOcen. Dans cet article, nous explorons comment utiliser Terraform pour provisionner un DigitalOcean Droplet (machine virtuelle).

Installation de Terraform

Terraform est disponible pour une multitude de plates-formes, Windows et Linux. La méthode la plus simple consiste à télécharger l'exécutable à partir du lien ci-dessous et à placer l'exécutable dans un chemin système pour permettre de le référencer de n'importe où.

https://www.terraform.io/downloads.html

Créer des clés API à partir de DigitalOcean

Pour que Terraform communique avec DigitalOcean, nous devons générer des clés API à utiliser avec le fournisseur DigitalOcean. Les étapes suivantes expliquent comment créer une nouvelle clé API spécifiquement à utiliser avec Terraform. Vous pouvez utiliser d'autres clés API, mais il est recommandé de ne pas réutiliser les clés, lorsque vous le pouvez, pour désactiver facilement l'accès si nécessaire.

  1. Connectez-vous au panneau de contrôle DigitalOcean.
  2. Accédez à la section API.
  3. Cliquez sur "Générer un nouveau jeton".
  4. Entrez un nom de jeton et accordez au jeton les privilèges de lecture et d'écriture.
  5. Copiez la clé API car elle ne vous sera plus affichée, nous l'utiliserons ensuite pour Terraform.

Commencer

La première étape de toute configuration Terraform consiste à initialiser une nouvelle configuration. Tout d'abord, créez un répertoire pour héberger notre configuration Terraform.

mkdir digitalocean-terraform
cd digitalocean-terraform

Ensuite, nous devons créer un digitalocean.tfvars fichier que nous utiliserons pour conserver notre clé API que nous avons précédemment générée. Il s'agit d'une meilleure pratique, afin de ne pas coder en dur les informations d'identification. Lorsque vous utilisez le contrôle de version, ce qui est recommandé, vous pouvez ignorer tout .tfvars fichiers, ou des fichiers spécifiques, pour vous assurer que ces informations d'identification ne sont pas stockées dans l'historique du contrôle de version.

touch digitalocean.tfvars

Dans le digitalocean.tfvars, nous allons créer une variable simple nommée api_token. Cela sera utilisé plus tard dans nos scripts Terraform.

api_token = 12345123213412425

Création du fichier de ressources Droplet

Maintenant que nous avons configuré la configuration Terraform et DigitalOcean, créons notre fichier de configuration Terraform. Créer le fichier digitalocean.tfet utilisez le code standard ci-dessous pour commencer. Pour permettre à notre configuration d'utiliser le fournisseur et les informations d'identification, nous devons lui indiquer où obtenir ces données.

variable "api_token" {
  default = ""
}

provider "digitalocean" {
  token = var.api_token
}

Maintenant que notre script est configuré, nous pouvons exécuter terraform init code, et il va maintenant créer nos métadonnées Terraform et installer les fournisseurs. Vous remarquerez que la sortie de la commande montre le fournisseur en cours de téléchargement pour utilisation. De plus, nous avons demandé à notre fournisseur d'utiliser les informations d'identification précédemment spécifiées dans le .tfvars fichier.

Remplir les commandes Droplet

Dans ce cas, nous souhaitons provisionner une ressource de gouttelettes simple. Nous allons utiliser quelques paramètres. Nous voulons utiliser leur plan disponible le moins cher, dans le NYC1 centre de données, et ajoutez quelques options qui rendront le Droplet plus flexible à l'avenir.

  • Image de gouttelettes: ubuntu-18.04-x64
  • Région: NYC1
  • Taille: s1-vcpu1-1gb

Maintenant que nous avons nos attributs de base, construisons une configuration Terraform pour ce droplet.

resource "digitalocean_droplet" "web" {
  image              = "ubuntu-18-04-x64"
  name               = "test-web-vm"
  region             = "nyc1"
  size               = "s-1vcpu-1gb"
  monitoring         = true
  ipv6               = true
  private_networking = true
}

Les commandes supplémentaires que nous ajoutons ici concernent la surveillance, l'ipv6 et le réseau privé. La surveillance signifie que vous disposerez de mesures, telles que le processeur et la mémoire, à partir de la console cloud DigitalOcean. Vous pouvez ensuite définir des alertes sur ces métriques, c'est donc très utile pour l'avenir. IPv6 signifie que votre droplet sera accessible à partir d'IPv6, ce qui contribue à pérenniser vos gouttelettes. Enfin, le réseautage privé signifie que votre gouttelette recevra un 10.x.x.x adresse accessible par d'autres gouttelettes mais pas par Internet public.

Il existe une autre capacité très utile, à savoir les données utilisateur. Pour Linux, cela vous permet d'exécuter certaines commandes sur l'approvisionnement de la VM, telles que la mise à jour des packages. Nous pouvons inclure ce droit dans la configuration Terraform, en ajoutant cet attribut sur.

resource "digitalocean_droplet" "web" {
  image              = "ubuntu-18-04-x64"
  name               = "test-web-vm"
  region             = "nyc1"
  size               = "s-1vcpu-1gb"
  monitoring         = true
  ipv6               = true
  private_networking = true
    user_data          = "#cloud-confignpackage_update: truenpackage_upgrade: true"
}

Si vous commencez à faire beaucoup avec user_data, vous pouvez stocker les données dans un fichier YAML, puis les inclure dans la déclaration de ressource.

file("user-data.yml")

Déployer le droplet

Maintenant que notre configuration Terraform est prête, déployons le droplet en exécutant le code suivant.

terraform apply -var-file="digitalocean.tfvars

Vous remarquerez peut-être également un nouveau .tfstate le fichier est créé. Cela capture l'état actuel que Terraform connaît pour votre environnement. Si vous tentez de déployer à nouveau cette configuration de droplet, Terraform ne le fera pas, car il sait déjà que le droplet a été créé. Si vous supprimez ce fichier, Terraform ne reconnaîtra pas que la ressource existe et tentera de la créer à nouveau.

Emballer

Comme vous pouvez le voir dans cet article, créer une ressource dans DigitalOcean via Terraform est simple et rapide. Il existe de nombreuses autres ressources que vous pouvez fournir à l'aide du fournisseur DigitalOcean.

En utilisant cette configuration comme code, vous pouvez provisionner des environnements entiers rapidement et facilement dans DigitalOcean à l'aide de Terraform. Par exemple, si vous avez besoin d'un tout nouvel environnement de développement et que vous l'avez déjà mappé dans une configuration Terraform à l'aide d'une simple commande de déploiement, vous pouvez avoir un tout nouvel environnement de développement prêt à l'emploi.

La combinaison de Terraform et de DigitalOcean permet une combinaison puissante qui non seulement protège votre infrastructure, permet le contrôle de version, mais renforce la cohérence et la sécurité.

★★★★★