# OpenTofu 101

## Install
Installer `OpenTofu`: https://opentofu.org/docs/intro/install/deb

## Objectif
L'objectif de ce TP est de demarrer une instance Debian 12 sur OpenStack avec `OpenTofu`.

## Connexion a openstack

`OpenTofu` a besoin de parler a OpenStack.

Si vous y arriver depuis votre terminal, il y arrivera aussi.

```bash
source /root/openrc
```

## main.tf

Creer un dossier 101:

```bash
mkdir 101
cd 101
```

Creer ensuite ce fichier `main.tf`:
```
terraform {
  required_providers {
    openstack = {
      source = "terraform-provider-openstack/openstack"
      version = "1.46.0"
    }
  }
}

provider "openstack" {
}

```

Avec ce debut, vous specifiez a `OpenTofu` d'utiliser `OpenStack` comme provider.

Il faut maintenant initier `OpenTofu`:
```bash
tofu init
```

## server

A vous maintenant d'ajouter le necessaire dans votre fichier `main.tf` pour creer une resource de type `openstack_compute_instance_v2` que vous appelerez `server1`

Quand vous pensez avoir ecris le code correctement, utilisez:

```bash
tofu apply
```

Cela devrait creer un serveur sur `OpenStack`.

Verifiez que votre serveur ping.

Si vous avez besoin de la commande `openstack`, il faut d'abord sourcer l'environment openstack:
```bash
source /opt/oscli/bin/activate
```

Montrez au prof le resultat.

## destroy

Lorsque tout est bon, supprimer vos resources:

```bash
tofu destroy
```
