Provisioning sur OCI : Utiliser Resource Manager (1/2)
Introduction
Resource Manager est un service OCI facilitant l'automatisation du process de provisioning de toutes vos ressources OCI.
Se basant sur Terraform, Resource Manager permet donc l'installation, la configuration et la gestion de vos ressources via des templates. Ce provisioning peut s'effectuer, soit en passant par l'interface d'OCI, soit en ligne de commande avec un client OCI (OCI CLI, REST API...).
Je vous propose, dans cet article, de découvrir le fonctionnement de Resource Manager et d'installer le "Oracle Cloud Development Kit" fourni par Oracle avec cet outil.
Que permet Resource Manager sur OCI ?
Voici les principales fonctionnalités de Resource Manager sur OCI :
Le déploiement de ressources : Resource Manager permet de déployer n'importe quel type de ressources OCI (Network, Compute, Security, ...). Les déploiements peuvent s'effectuer de manière répétitive depuis un template (pour créer un ensemble de ressources de même type par exemple).
L'organisation des ressources à déployer : Il est possible de gérer le provisioning de différentes ressources dans un même job. Ainsi, vous pouvez déployer une "application" avec son réseau, ses règles de sécurité, ces instances de compute, ... avec une seule action (pratique pour monter un environnement de A à Z).
La création de templates : Resource Manager permet de définir des templates pour chaque besoin. Cela facilite l'industrialisation de vos déploiements.
L'intégration avec Terraform : Resource Manager bénéficie de la puissance et les fonctionnalités du langage HashiCorp Configuration Language (HCL).
Pas de facturation : Resource Manager n'est pas payant. Il est également disponible pour des comptes "Free-Tier". Bien évidemment, la facturation des ressources déployées ne change pas.
Service entièrement managé : Pas besoin de mettre en place une configuration particulière (installer des providers), Resource Manager s'intègre aux services déjà existant sur OCI (Tagging, IAM).
Quelques notions importantes
Voici des notions très importantes qu'il est nécessaire d'aborder dans le cadre de l'utilisation de Resource Manager :
Configuration : Une configuration Terraform codifie votre infrastructure et stocke la configuration sous la forme de fichiers au format HCL ou JSON.
Configuration source provider : Il s'agit du point d'entrée pour interagir avec l'infrastructure (accès à OCI).
Stack : Un stack est une collection de ressources OCI qui sont créées dans un compartiment. Chaque stack a sa propre configuration (sous formes de fichiers Terraform).
Drift : C'est la différence entre l'état actuel de l'infrastructure et la dernière exécution du stack.
Job : C'est un ensemble d'instruction jouées pour appliquer une configuration Terraform. Il ne peut y avoir qu'un seul job s'exécutant à la fois pour un stack. Il existe différents types de jobs :
Plan : Ce job analyse le fichier de configuration Terraform d'un stack et crée un plan d'exécution avec les instructions pour provisionner les ressources sur OCI.
Apply : Ce job applique le plan d'exécution pour créer les ressources sur OCI.
Destroy : Libère les ressources associées à un stack.
Import State : C'est un job utilisé pour migrer des environnements locaux Terraform vers Resource Manager.
Les jobs peuvent prendre également les états suivants (Accepted, In Progress, Failed, Succeeded, Canceling, Canceled).
Module : Il s'agit d'un groupe de ressources.
Package : C'est un fichier Zip contenant une configuration Terraform.
Resource discovery : C'est une fonctionnalité permettant la récupération des ressources déployées sous forme de configuration Terraform.
Sample solution : Ce sont des configurations Terraform déjà prédéfinies dans Resource Manager pour certains types de déploiements.
Workflow
Voici le workflow général d'un déploiement sous Resource Manager (source : Oracle) :
Installation du Oracle Cloud Development Kit
L'Oracle Cloud Development Kit est un kit de développement déjà préinstallé dans une instance et configuré pour votre tenant OCI.
Cette instance est fournie avec les outils ci-dessous :
OCI Command line interface (OCI CLI)
Terraform provider
Ansible & OCI modules
Go, Java, Python SDKs
Git
Dans cette instance, il y aura donc tout le matériel nécessaire pour créer, gérer, déployer des configurations Terraform.
Voyons comment installer cet kit via Resource Manager :
Connectez-vous sur l'interface OCI, ouvrez le menu "Resource Manager > Stacks" et cliquez sur "Create Stack"
Sur la page "Stack Information", choisissez l'option "SAMPLE SOLUTION"
Dans la fenêtre "Stack Configuration", cliquez sur "Select Solution"
Dans l'onglet "Architecture", choisissez "Oracle Cloud Development Kit"
Renseignez le compartiment où vous souhaitez créer le stack, puis cliquez Sur "Next".
Dans la fenêtre "Configure Variables", choisissez le shape pour votre instance et générez les clefs SSH. Puis cliquez sur "Next".
Dans la page "Review", vérifiez les informations affichées puis cliquez sur "Create".
Retournez sur la page "Stacks" pour vérifier que votre Stack a bien été créé.
Sur la page "Stack Details", cliquez sur "Terraform Actions" puis sur "Apply" afin de lancer la création de l'instance.
Dans le détail du job associé à votre stack, vous pouvez vérifier qu'il va bien passer à l'état "Succeeded".
Dans l'onglet "Application Information", relevez bien l'adresse IP publique et la clef SSH privée qui servira à la connexion à l'instance.
Dans cette première partie, nous venons donc de réaliser l'installation du Oracle Cloud Development Kit via le Resource Manager dont nous avons pu voir le fonctionnement depuis l'interface OCI.
La prochaine fois, nous utiliserons le kit de développement de cette instance pour créer une nouvelle configuration Terraform et provisionner des ressources sur OCI.
Partage
Gardez un oeil sur tout
Recevez des notifications dès la publication d’un nouvel article et restez informé de l’actualité Cloud !
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
L’accès ou le stockage technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’utilisateur, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
L’accès ou le stockage technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’internaute.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
L’accès ou le stockage technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’utilisateur sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.