Lorsque vous créez un modèle de cloud dans Cloud Assembly, la palette des types de ressource comporte des types de ressource pour le compte de cloud et les points de terminaison d'intégration pris en charge. Vous pouvez avoir des cas d'utilisation dans lesquels vous souhaitez créer des modèles de cloud selon une liste développée de types de ressource. Vous pouvez créer des types de ressources personnalisés, les ajouter au canevas de conception, et créer des modèles de cloud qui prennent en charge vos besoins en matière de conception et de déploiement.

Nom de ressource personnalisée et type de ressource

Le nom de la ressource personnalisée identifie votre ressource personnalisée dans la palette des types de ressource de modèle de cloud.

Le type de ressource d'une ressource personnalisée doit commencer par Custom. et chaque type de ressource doit être unique. Par exemple, vous pouvez définir Custom.ADUser comme type de ressource pour une ressource personnalisée qui ajoute des utilisateurs Active Directory. Bien que l'ajout de Custom. ne soit pas validé dans le champ, la chaîne est automatiquement ajoutée si vous la supprimez.

Ressources personnalisées d'action d'extensibilité

Avec les types de ressources personnalisés, vous pouvez utiliser des actions d'extensibilité dans les modèles de cloud pour créer des applications complexes. Par exemple, vous pouvez utiliser l'intégration native d'actions d'extensibilité avec Amazon Web Services et Microsoft Azure pour facilement les intégrer à leurs services respectifs. Vous pouvez créer des ressources personnalisées d'action d'extensibilité en cliquant sur l'option Basé sur dans l'éditeur de ressources personnalisées et en sélectionnant Schéma ABX défini par l'utilisateur.

Actions de cycle de vie pour les ressources personnalisées d'actions d'extensibilité

Lorsque vous utilisez une action d'extensibilité pour votre ressource personnalisée, vous pouvez définir les actions de cycle de vie suivantes :

  • Créer : cette action d'extensibilité est appelée lors du démarrage d'un déploiement.
  • Lire : cette action d'extensibilité est utilisée pour récupérer le dernier état de la ressource déployée.
  • Mettre à jour : cette action d'extensibilité est appelée lorsqu'une propriété de modèle de cloud est mise à jour. Cette action est déclenchée uniquement lorsqu'une propriété n'est pas marquée avec recreateOnUpdate.
  • Détruire : cette action d'extensibilité est appelée lorsqu'un déploiement est supprimé.

Ces actions de cycle de vie peuvent être sélectionnées manuellement à partir de vos actions d'extensibilité existantes ou générées automatiquement en sélectionnant l'option Générer des actions. Lorsque vous sélectionnez l'option Générer des actions, vous devez spécifier le projet dans lequel la nouvelle action d'extensibilité sera générée.

Note : Vous pouvez modifier les actions d'extensibilité associées à vos actions de cycle de vie en cliquant sur l'option Ouvrir en regard de l'action spécifique.

Ressources personnalisées de vRealize Orchestrator

Chaque ressource personnalisée de vRealize Orchestrator est basée sur un type d'inventaire SDK et est créée par un workflow vRealize Orchestrator dont la sortie est une instance de votre type de SDK souhaité. Les types primitifs, tels que Properties, Date, string et number ne sont pas pris en charge pour la création de types de ressources personnalisées.
Note : Les types d'objets SDK peuvent être différenciés des autres types de propriétés au moyen des deux-points (« : ») utilisés pour séparer le nom du plug-in et le nom du type. Par exemple, AD:UserGroup est un type d'objet SDK utilisé pour gérer les groupes d'utilisateurs Active Directory.
Vous pouvez utiliser les workflows intégrés dans vRealize Orchestrator ou créer les vôtres. L'utilisation de vRealize Orchestrator pour créer des workflows XaaS (anything-as-a-service) signifie que vous pouvez créer un modèle de cloud qui ajoute un utilisateur Active Directory aux machines au moment du déploiement ou que vous pouvez ajouter un équilibrage de charge F5 personnalisé à un déploiement. Vous pouvez créer des ressources personnalisées vRealize Orchestrator en cliquant sur l'option Basé sur dans l'éditeur de ressources personnalisées et en sélectionnant Inventaire vRO.

Type externe de ressource personnalisée vRealize Orchestrator.

La propriété Type externe définit le type de votre ressource personnalisée vRealize Orchestrator. Lorsque vous sélectionnez un workflow de création dans votre type de ressource personnalisée dans Cloud Assembly, le menu déroulant Type externe s'affiche en dessous. Le menu déroulant inclut des propriétés de type externe, qui sont sélectionnées dans les paramètres de sortie du workflow vRealize Orchestrator. Les propriétés de sortie de workflow sélectionnées incluses dans le menu déroulant doivent être des types d'objets SDK autres que de tableau, tels que VC:VirtualMachine ou AD:UserGroup.

Note : Lors de la création de workflows personnalisés qui utilisent le plug-in de type dynamique, vérifiez que leurs variables sont créées à l'aide de la méthode DynamicTypesManager.getObject().

Lorsque vous définissez vos types de ressources personnalisés, vous définissez également l'étendue de la disponibilité du type externe sélectionné. Le type externe sélectionné peut être :

  • Partagé entre projets.
  • Disponible uniquement pour le projet sélectionné.

Vous ne pouvez avoir qu'un seul type de ressource personnalisée avec une valeur de type externe spécifique par étendue définie. Par exemple, si vous créez une ressource personnalisée dans votre projet qui utilise VC:VirtualMachine comme type externe, vous ne pouvez pas créer une autre ressource personnalisée pour le même projet qui utilise le même type externe. Vous ne pouvez pas non plus créer deux ressources personnalisées partagées qui utilisent le même type externe.

Validation de l'action du cycle de vie de vRealize Orchestrator

Lorsque vous ajoutez des workflows Créer, Supprimer et Mettre à jour en tant qu'actions de cycle de vie à vos ressources personnalisées, Cloud Assembly vérifie que les workflows sélectionnés ont des définitions de propriétés d'entrée et de sortie correctes.

  • Le workflow de création doit avoir un paramètre de sortie qui est un type d'objet SDK, tel que SSH:Host ou SQL:Database. Si le workflow sélectionné ne réussit pas la validation, vous ne pouvez pas ajouter de workflows Mettre à jour ou Supprimer, ni enregistrer vos modifications dans la ressource personnalisée.
  • Le workflow Supprimer doit avoir un paramètre d'entrée qui est un type d'objet SDK qui correspond au type externe de la ressource personnalisée.
  • Le workflow Mettre à jour doit avoir un paramètre d'entrée et de sortie qui est un type d'objet SDK qui correspond au type externe de la ressource personnalisée.

Schéma de propriété de ressource personnalisée

Vous pouvez afficher le schéma des propriétés de ressources personnalisées en sélectionnant l'onglet Propriétés. Le schéma inclut le nom, le type de données, le type de propriété et, si elle est disponible, la description d'une propriété donnée. Le schéma définit également si une propriété spécifique est obligatoire ou facultative dans le modèle de cloud.
Note : Pour le schéma de propriétés des ressources personnalisées d'action d'extensibilité, toutes les propriétés sont requises dans le modèle de cloud.
Lorsque vous ajoutez des workflows vRealize Orchestrator à votre ressource personnalisée, leurs paramètres d'entrée et de sortie sont ajoutés en tant que propriétés.

Pour les ressources personnalisées d'action d'extensibilité, vous devez créer manuellement le schéma de propriété de ces ressources dans l'onglet Propriétés. Vous pouvez créer le schéma de propriétés à l'aide de l'onglet Code ou Formulaire.

  • Code : créez le schéma de propriété à l'aide du contenu YAML.
  • Formulaire : en cliquant sur Nouvelle propriété, vous créez une propriété en configurant son nom, son nom complet, sa description, son type de propriété et sa valeur par défaut.

Formulaires de demande personnalisés pour les opérations de jour 2

Vous pouvez rationaliser le formulaire de demande des opérations du jour 2 incluses dans votre ressource personnalisée en ajoutant et en modifiant différents types de propriétés de ressources.

Par exemple, vous pouvez lier la valeur d'un paramètre d'entrée dans votre formulaire de demande à une source externe, comme une action de vRealize Orchestrator qui récupère un nom de déploiement ou un nom de projet. Vous pouvez également lier la valeur d'un paramètre d'entrée spécifique à la valeur calculée de deux autres zones de texte incluses dans le même formulaire de demande.

Note : Cette fonctionnalité est disponible pour les ressources personnalisées et les actions sur les ressources. Vous pouvez personnaliser la valeur des propriétés d'entrée de votre formulaire de demande depuis l'onglet Valeurs de la page Paramètres de la demande de l'éditeur d'actions sur les ressources personnalisées ou les ressources.

Validation du formulaire de demande d'opération de jour 2

Vous pouvez valider le formulaire de demande de vos opérations de jour 2 en ajoutant une validation externe. À l'aide d'une validation externe, vous empêchez l'utilisateur d'envoyer le formulaire de demande tant que les paramètres de validation ne sont pas satisfaits. Vous pouvez ajouter une validation externe à partir de l'onglet Validations de la page Paramètres de demande de l'éditeur d'actions sur les ressources personnalisées ou sur les ressources. Après avoir sélectionné l'onglet, vous pouvez faire glisser un élément Validation d'Orchestrator sur le canevas et ajouter une action vRealize Orchestrator que vous souhaitez utiliser pour la validation.

Par exemple, vous pouvez créer une ressource personnalisée qui inclut une opération de jour 2 pour modifier un mot de passe d’utilisateur. Pour ce cas d'utilisation, vous pouvez ajouter une action vRealize Orchestrator avec des paramètres d'entrée newPassword et confirmPassword qui utilisent le type SecureString.

Note : Il s’agit d’un exemple de script pour la validation d’un mot de passe utilisateur. Pour votre propre cas d'utilisation, vous pouvez décider d'utiliser un autre script.
if (newPassword != confirmPassword) {
    return 'passwords are different';
}
if (newPassword.lenght < 7) {
    return 'password must be at least 10 symbols';
}
return null;