Loading search data...

HomeLab - Utiliser Terraform pour gérer les projets rundeck

On trouve des providers Terraform pour pas mal de produits, mais j’ai été surpris d’en trouver un pour gérer les projets Rundeck. Ce provider permet de gérer les acls, les projets, les jobs et les clés SSH.

Je vous propose de le tester sur le rundeck de mon home lab Devops.

Création du token sur Rundeck

La première chose a créé est le token autorisant terraform à se connecter à rundeck. Là on n’a pas d’autre choix que de le créer via l’interface d’administration de rundeck.

terraform rundeck token

Ça se passe dans le profil de l’utilisateur, cliquer en haut à droite de l’UI de rundeck sur l’icône en forme de personne puis profil. Maintenant cliquez sur le signe [+] à côté de [Jetons d’API Utilisateur]. Laissez tout par défaut et cliquer sur le bouton [Générer un nouveau jeton].

terraform rundeck token

Copiez le token et conservez-le quelque part au chaud.

Gestion d’un projet Rundeck avec Terraform

Création d’un job rundeck avec Terraform

Dans un dossier vide, créer un fichier main.tf avec ceci :

terraform {
  required_providers {
    rundeck = {
      source  = "rundeck/rundeck"
      version = "0.4.2"
    }
  }
}

provider "rundeck" {
  url         = "https://rundeck.robert.local/"
  api_version = "38"
  auth_token  = "NAhiP4ProOdzPE81F0oJWJwkwQc8eMUJ"
}

resource "rundeck_private_key" "terraform" {
  path         = "terraform/id_rsa"
  key_material = file("~/.ssh/id_rsa")
}

resource "rundeck_project" "terraform" {
  name        = "terraform"
  description = "Sample Project Created with Terraform"
  ssh_key_storage_path = "${rundeck_private_key.terraform.path}"
    resource_model_source {
    type = "local"
    config = {
      description = "Rundeck server node"

    }
  }
  extra_config = {
    "project.label" = "Terraform Project"
  }
}

On teste la connection :

terraform init

Initializing the backend...

Initializing provider plugins...
- Finding rundeck/rundeck versions matching "0.4.2"...
- Installing rundeck/rundeck v0.4.2...
- Installed rundeck/rundeck v0.4.2 (signed by a HashiCorp partner, key ID 685E39BEDBC13E42)

....

terraform apply -auto-approve                                          Py ansible2 3.9.7 vagrant@devbox 14:26:33

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # rundeck_private_key.terraform will be created

...

Plan: 2 to add, 0 to change, 0 to destroy.
rundeck_private_key.terraform: Creating...
rundeck_private_key.terraform: Creation complete after 1s [id=terraform/id_rsa]
rundeck_project.terraform: Creating...
rundeck_project.terraform: Creation complete after 2s [id=terraform]

Apply complete! Resources: 2 added, 0 changed, 0 destroyed.

Un petit tour dans l’interface de rundeck.

terraform rundeck project

On a bien un projet terraform créé.

Création d’un job rundeck avec Terraform

Maintenant essayons de créer un job dans ce projet. A la fin de votre fichier Terraform ajoutez-y ceci :

resource "rundeck_job" "testjob" {
  name              = "Job Test"
  project_name      = "${rundeck_project.terraform.name}"
  description       = "A simple commande"

  command {
    shell_command = "ls /etc"
  }
}

On applique :

terraform apply -auto-approve

rundeck_job.testjob: Creating...
rundeck_job.testjob: Creation complete after 4s [id=523bf123-914d-4fbd-b965-bab692592be5]

Petit tour dans l’interface de Rundeck. Le job a bien été créé. On teste, ça fonctionne.

terraform rundeck project

Je fais un petit tour dans la documentation et c’est plutôt succinct. Y a du travail pour découvrir toutes les possibilités offertes par ce provider.


Si vous avez apprécié cet article de blog, vous pouvez m'encourager à produire plus de contenu en m'offrant un café sur   Ko-Fi  . Vous pouvez aussi passer votre prochaine commande sur amazon, sans que cela ne nous coûte plus cher, via   ce lien  . Vous pouvez aussi partager le lien sur twitter ou linkedin via les boutons ci-dessous. Je vous remercie de votre soutien


Mots clés :

devops tutorials homelab

Autres Articles


Commentaires: