Pour l'exemple simple suivant basé sur des plug-ins dans Automation Assembler, les aides de calcul et d'image contrôlent le placement et le système d'exploitation invité d'une machine virtuelle.
1. Ajouter une infrastructure de compte et de zone
L'utilisateur ajoute un compte de cloud AWS avec des zones de cloud us-east-1 et us-west-2. L'utilisateur marque respectivement les zones region-east
et region-west
, respectivement.
2. Ajouter une infrastructure de mappage d'images
L'utilisateur ajoute une carte d'image ubuntu
qui pointe vers des images portant des identifiants différents, en fonction de la zone.
3. Ajouter le projet
L'utilisateur crée un projet. Dans le projet, sous Provisionnement, l'utilisateur ajoute les deux zones.
4. Démarrer une conception
Dans Automation Assembler, sous l'onglet Conception, l'utilisateur démarre une nouvelle conception à partir d'un canevas vide.
5. Ajouter des aides au canevas
L'utilisateur fait glisser une aide pour le calcul et une aide pour l'image vers le canevas.
6. Configurer les aides
Dans le code des aides, l'utilisateur ajoute l'image ubuntu
et une balise de contrainte correspondante pour region-west
. Dans le workflow classique, ces propriétés auraient été ajoutées directement à la ressource elle-même.
Allocations_Image_1: type: Allocations.Image properties: image: ubuntu Allocations_Compute_1: type: Allocations.Compute properties: constraints: - tag: region-west
7. Ajouter la ressource de machine virtuelle au canevas
L'utilisateur fait glisser une ressource d'AWS EC2 vers le canevas. Notez qu'il ne s'agit pas de la ressource (Classic)
. Les ressources les plus récentes ont un préfixe spécial lorsqu'elles s'affichent dans le code.
8. Lier la ressource aux aides
Dans le code pour EC2, l'utilisateur ajoute des liaisons qui font référence à l'infrastructure antérieure telle que définie par les aides. Le terme selected
fait partie de la liaison, car l'aide effectue la sélection.
Idem_AWS_EC2_INSTANCE_1: type: Idem.AWS.EC2.INSTANCE properties: name: bnixInstance account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} region: ${resource.Allocations_Compute_1.selectedRegion.name} image_id: ${resource.Allocations_Image_1.selectedImageId} instance_type: t1.micro
Sur le canevas de conception, des lignes pointillées connectent la ressource à ses aides une fois que l'utilisateur a ajouté les liaisons.
9. Modèle terminé
L'exemple terminé utilise le code suivant. Notez que l'utilisateur a pu configurer l'infrastructure de mappage de type et utiliser également une aide de type, plutôt que d'ajouter instance_type: t1.micro
directement à la ressource EC2.
formatVersion: 1 inputs: {} resources: Allocations_Image_1: type: Allocations.Image properties: image: ubuntu Allocations_Compute_1: type: Allocations.Compute properties: constraints: - tag: region-west Idem_AWS_EC2_INSTANCE_1: type: Idem.AWS.EC2.INSTANCE properties: name: bnixInstance account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} region: ${resource.Allocations_Compute_1.selectedRegion.name} image_id: ${resource.Allocations_Image_1.selectedImageId} instance_type: t1.micro
Les propriétés natives EC2 d'AWS peuvent être configurées davantage à partir d'ici. Sinon, le modèle terminé est prêt à être testé et déployé.