> ## Documentation Index
> Fetch the complete documentation index at: https://help.onetsolutions.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Gérer votre infrastructure avec Terraform

> Décrivez vos instances, réseaux, DNS, domaines et hébergements web sous forme de code avec le provider OnetSolutions pour Terraform et OpenTofu

Le provider OnetSolutions vous permet de décrire votre infrastructure dans des fichiers de configuration, puis de la créer, la modifier ou la supprimer avec `terraform apply`. La même configuration fonctionne avec [Terraform](https://developer.hashicorp.com/terraform/install) et [OpenTofu](https://opentofu.org/docs/intro/install/) : chacun installe le provider depuis son propre registre.

> [!NOTE]
>
> **Prérequis**
>
> * Un compte OnetSolutions
> * Une [clé d'API](https://help.onetsolutions.net/fr/console/api-keys.md)
> * Terraform 1.5 ou plus récent, ou OpenTofu 1.6 ou plus récent

## Démarrer

**1. Créer une clé d'API**

Créez une [clé d'API](https://help.onetsolutions.net/fr/console/api-keys.md) dans la console. Elle agit avec vos droits, dans toutes les organisations et tous les projets auxquels vous avez accès.

**2. L'exporter**

Gardez la clé hors de vos fichiers de configuration en la passant dans une variable d'environnement :

```bash theme={null}
export ONETSOLUTIONS_API_KEY="sk-onetsolutions-…"
```

**3. Déclarer le provider**

```hcl theme={null}
terraform {
  required_providers {
    onetsolutions = {
      source  = "onetsolutions-net/onetsolutions"
      version = "~> 0.2"
    }
  }
}

provider "onetsolutions" {}

resource "onetsolutions_ssh_key" "laptop" {
  name       = "laptop"
  public_key = file("~/.ssh/id_ed25519.pub")
}

resource "onetsolutions_vpc" "private" {
  name       = "private"
  cidr_block = "10.0.0.0/16"
}
```

**4. Appliquer**

```bash theme={null}
terraform init && terraform apply     # ou : tofu init && tofu apply
```

Si votre compte a plusieurs organisations ou projets, renseignez `organization_id` et `project_id` sur le provider, ou sur chaque ressource.

## Ce que vous pouvez gérer

| Domaine | Ce que vous décrivez |
| - | - |
| Calcul | Instances (avec une adresse IPv6 publique si vous le souhaitez), snapshots, sauvegardes, GPU |
| Réseau | VPC, pare-feu des instances, DNS inverse de vos adresses IP |
| Accès | Clés SSH |
| DNS et domaines | Enregistrement et réglages des domaines, zones et enregistrements DNS, DNSSEC |
| Hébergement web | Hébergements web, version de PHP, WordPress, bases de données et leurs utilisateurs, boîtes mail, comptes FTP, tâches cron, sous-domaines, domaines additionnels, redirections |

Des actions permettent aussi de redémarrer une instance, de la réinstaller depuis une image ou de restaurer l'une de ses sauvegardes, directement depuis votre configuration. Chaque ressource a sa page, avec des exemples, dans la [documentation du provider](https://registry.terraform.io/providers/onetsolutions-net/onetsolutions/latest/docs) (en anglais).

> [!NOTE]
>
> Créer une instance, un hébergement web ou un domaine passe une commande, facturée comme une commande passée depuis la console. Le plan vous prévient avant toute commande ou résiliation.

## Reprendre des ressources existantes

Tout ce que vous avez créé dans la console peut être importé, avec un bloc `import` ou `terraform import`. Chaque page de ressource donne son identifiant d'import :

```hcl theme={null}
import {
  to = onetsolutions_ssh_key.laptop
  id = "<organization_id>/<project_id>/<ssh_key_id>"
}
```

## Obtenir de l'aide

Pour votre compte, la facturation ou l'API, ouvrez un ticket depuis la [console](https://help.onetsolutions.net/fr/console/support.md). Pour signaler un bug ou proposer une fonctionnalité du provider, [ouvrez une issue](https://github.com/onetsolutions-net/terraform-provider-onetsolutions/issues/new/choose) sur son dépôt.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.