Chapitre 2. Création d’un cluster ROSA à l’aide de Terraform
2.1. Création d’un cluster ROSA par défaut à l’aide de Terraform Copier lienLien copié sur presse-papiers!
Créez rapidement un cluster Red Hat OpenShift Service sur AWS (ROSA) en utilisant un modèle de cluster Terraform configuré avec les options de cluster par défaut.
Le processus de création de cluster décrit ci-dessous utilise une configuration Terraform qui prépare un ROSA avec le cluster HCP avec les ressources suivantes:
- Fournisseur OIDC avec une configuration oidc-config gérée
- Les rôles d’opérateur IAM avec les politiques associées à AWS Managed ROSA
- Les rôles de compte IAM avec AWS Managed ROSA Policys associés
- Les autres ressources AWS nécessaires pour créer un ROSA avec le cluster STS
2.1.1. Aperçu de Terraform Copier lienLien copié sur presse-papiers!
Le terraform est un outil d’infrastructure sous forme de code qui fournit un moyen de configurer vos ressources une fois et de les reproduire au besoin. Le terraform accomplit les tâches de création en utilisant un langage déclaratif. Indiquez ce que vous voulez que l’état final de la ressource d’infrastructure soit, et Terraform crée ces ressources selon vos spécifications.
Conditions préalables
Afin d’utiliser le fournisseur Red Hat Cloud Services dans votre configuration Terraform, vous devez répondre aux conditions préalables suivantes:
- L’outil d’interface de ligne de commande (CLI) de Red Hat OpenShift Service (ROSA) a été installé.
- Il y a votre jeton Red Hat OpenShift Cluster Manager hors ligne.
- La version 1.4.6 ou plus récente de Terraform est installée.
« vous avez créé vos rôles IAM à l’échelle du compte AWS.
Les rôles et politiques IAM spécifiques à l’ensemble du compte fournissent les autorisations STS requises pour le support ROSA, l’installation, le plan de contrôle et la fonctionnalité de calcul. Cela inclut les politiques de l’opérateur à l’échelle du compte. Consultez les ressources supplémentaires pour plus d’informations sur les rôles de compte AWS.
- Il existe un compte AWS et des informations d’identification associées qui vous permettent de créer des ressources. Les informations d’identification sont configurées pour le fournisseur AWS. Consultez la section Authentification et configuration dans la documentation du fournisseur AWS Terraform.
Au minimum, vous disposez des autorisations suivantes dans votre politique de rôle AWS IAM qui exploite Terraform. Consultez ces autorisations dans la console AWS.
Exemple 2.1. Autorisations AWS minimales pour Terraform
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Considérations lors de l’utilisation de Terraform
En général, utiliser Terraform pour gérer les ressources cloud devrait être fait avec l’espoir que tout changement devrait être effectué à l’aide de la méthodologie Terraform. Faites preuve de prudence lors de l’utilisation d’outils en dehors de Terraform, tels que la console AWS ou la console Red Hat, pour modifier les ressources cloud créées par Terraform. En utilisant des outils en dehors de Terraform pour gérer les ressources cloud qui sont déjà gérées par Terraform introduit la dérive de configuration de votre configuration Terraform déclarée.
Ainsi, si vous mettez à niveau votre cluster créé par Terraform en utilisant la console de cloud hybride Red Hat, vous devez réconcilier votre état Terraform avant d’appliquer les modifications de configuration à venir. Consultez Gérer les ressources dans l’état Terraform dans la documentation HashiCorp Developer.
2.1.2. Aperçu des spécifications du cluster par défaut Copier lienLien copié sur presse-papiers!
Composante | Caractéristiques par défaut |
---|---|
Comptes et rôles |
|
Configurations du cluster |
|
Chiffrement |
|
Configuration des nœuds de plan de contrôle |
|
Configuration des nœuds d’infrastructure |
|
Calculez la piscine de la machine de nœud |
|
Configuration du réseau |
|
Gammes de routage interdomain sans classe (CIDR) |
|
Les rôles et les politiques des clusters |
|
La stratégie de mise à jour des clusters |
|
2.1.3. Création d’un cluster ROSA par défaut à l’aide de Terraform Copier lienLien copié sur presse-papiers!
Le processus de création de cluster décrit ci-dessous montre comment utiliser Terraform pour créer vos rôles IAM à l’échelle du compte et un cluster ROSA avec une configuration OIDC gérée.
2.1.3.1. La préparation de votre environnement pour Terraform Copier lienLien copié sur presse-papiers!
Avant de pouvoir créer votre service Red Hat OpenShift sur AWS cluster en utilisant Terraform, vous devez exporter votre jeton Red Hat OpenShift Cluster Manager hors ligne.
Procédure
Facultatif: Parce que les fichiers Terraform sont créés dans votre répertoire actuel au cours de cette procédure, vous pouvez créer un nouveau répertoire pour stocker ces fichiers et y naviguer en exécutant la commande suivante:
mkdir terraform-cluster && cd terraform-cluster
$ mkdir terraform-cluster && cd terraform-cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Accordez des autorisations à votre compte en utilisant un jeton Red Hat OpenShift Cluster Manager hors ligne.
Copiez votre jeton hors ligne et définissez le jeton comme variable environnementale en exécutant la commande suivante:
export RHCS_TOKEN=<your_offline_token>
$ export RHCS_TOKEN=<your_offline_token>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteCette variable environnementale réinitialise à la fin de chaque session, comme le redémarrage de votre machine ou la fermeture du terminal.
La vérification
Après avoir exporté votre jeton, vérifiez la valeur en exécutant la commande suivante:
echo $RHCS_TOKEN
$ echo $RHCS_TOKEN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.3.2. Créer vos fichiers Terraform localement Copier lienLien copié sur presse-papiers!
Après avoir configuré votre jeton Red Hat OpenShift Cluster Manager hors ligne, vous devez créer les fichiers Terraform localement pour construire votre cluster. Il est possible de créer ces fichiers en utilisant les modèles de code suivants.
Procédure
Créez le fichier main.tf en exécutant la commande suivante:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ≪.> facultatif: Créez un utilisateur administrateur lors de la création de cluster en décommentant les paramètres appropriés et en modifiant leurs valeurs si nécessaire.
Créez le fichier variables.tf en exécutant la commande suivante:
NoteCopiez et modifiez ce fichier avant d’exécuter la commande pour construire votre cluster.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez le fichier vpc.tf en exécutant la commande suivante:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow « vous êtes prêt à initier Terraform.
2.1.3.3. En utilisant Terraform pour créer votre cluster ROSA Copier lienLien copié sur presse-papiers!
Après avoir créé les fichiers Terraform, vous devez initier Terraform pour fournir toutes les dépendances requises. Ensuite, appliquez le plan Terraform.
Il ne faut pas modifier les fichiers d’état Terraform. Consultez Considérations lors de l’utilisation de Terraform
Procédure
Configurez Terraform pour créer vos ressources en fonction de vos fichiers Terraform, exécutez la commande suivante:
terraform init
$ terraform init
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Facultatif : Vérifiez que le Terraform que vous avez copié est correct en exécutant la commande suivante:
terraform validate
$ terraform validate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Success! The configuration is valid.
Success! The configuration is valid.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez votre cluster avec Terraform en exécutant la commande suivante:
terraform apply
$ terraform apply
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L’interface Terraform pose deux questions pour créer votre cluster, similaire à ce qui suit:
Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Entrez oui pour procéder ou non pour annuler lorsque l’interface Terraform répertorie les ressources à créer ou à modifier et invite à la confirmation:
Exemple de sortie
Plan: 63 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve.
Plan: 63 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans l’affirmative, votre plan Terraform démarre, créant vos rôles de compte AWS, vos rôles d’opérateur et votre cluster ROSA Classic.
La vérification
Assurez-vous que votre cluster a été créé en exécutant la commande suivante:
rosa list clusters
$ rosa list clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie montrant l’ID, le nom et l’état d’un cluster
ID NAME STATE TOPOLOGY 27c3snjsupa9obua74ba8se5kcj11269 rosa-tf-demo ready Classic (STS)
ID NAME STATE TOPOLOGY 27c3snjsupa9obua74ba8se5kcj11269 rosa-tf-demo ready Classic (STS)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que vos rôles de compte ont été créés en exécutant la commande suivante:
rosa list account-roles
$ rosa list account-roles
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
I: Fetching account roles ROLE NAME ROLE TYPE ROLE ARN OPENSHIFT VERSION AWS Managed ROSA-demo-Installer-Role Installer arn:aws:iam::<ID>:role/ROSA-demo-Installer-Role 4.14 No ROSA-demo-Support-Role Support arn:aws:iam::<ID>:role/ROSA-demo-Support-Role 4.14 No ROSA-demo-Worker-Role Worker arn:aws:iam::<ID>:role/ROSA-demo-Worker-Role 4.14 No
I: Fetching account roles ROLE NAME ROLE TYPE ROLE ARN OPENSHIFT VERSION AWS Managed ROSA-demo-Installer-Role Installer arn:aws:iam::<ID>:role/ROSA-demo-Installer-Role 4.14 No ROSA-demo-Support-Role Support arn:aws:iam::<ID>:role/ROSA-demo-Support-Role 4.14 No ROSA-demo-Worker-Role Worker arn:aws:iam::<ID>:role/ROSA-demo-Worker-Role 4.14 No
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que vos rôles d’opérateur ont été créés en exécutant la commande suivante:
rosa list operator-roles
$ rosa list operator-roles
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie montrant les rôles d’opérateur créés par Terraform
I: Fetching operator roles ROLE PREFIX AMOUNT IN BUNDLE rosa-demo 8
I: Fetching operator roles ROLE PREFIX AMOUNT IN BUNDLE rosa-demo 8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.3.4. La suppression de votre cluster ROSA avec Terraform Copier lienLien copié sur presse-papiers!
La commande terraform destroy permet de supprimer toutes les ressources créées avec la commande terraform application.
Il ne faut pas modifier vos fichiers Terraform .tf avant de détruire vos ressources. Ces variables sont appariées aux ressources à supprimer.
Procédure
Dans le répertoire où vous avez exécuté la commande d’application terraform pour créer votre cluster, exécutez la commande suivante pour supprimer le cluster:
terraform destroy
$ terraform destroy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L’interface Terraform vous invite pour deux variables. Celles-ci doivent correspondre aux réponses que vous avez fournies lors de la création d’un cluster:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Entrez oui pour démarrer la suppression du rôle et du cluster:
Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
La vérification
Assurez-vous que votre cluster a été détruit en exécutant la commande suivante:
rosa list clusters
$ rosa list clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie montrant aucun cluster
I: No clusters available
I: No clusters available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que les rôles de compte ont été détruits en exécutant la commande suivante:
rosa list account-roles
$ rosa list account-roles
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie montrant aucun rôle de compte créé par Terraform
I: Fetching account roles I: No account roles available
I: Fetching account roles I: No account roles available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que les rôles de l’opérateur ont été détruits en exécutant la commande suivante:
rosa list operator-roles
$ rosa list operator-roles
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie montrant aucun rôle d’opérateur créé par Terraform
I: Fetching operator roles I: No operator roles available
I: Fetching operator roles I: No operator roles available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow