Vous pouvez configurer le nom d'interface d'un contrôleur d'interface réseau (NIC) à l'aide d'appels d'API IaaS appliqués via des actions d'extensibilité.
Pour configurer le nom d'interface d'une carte réseau, vous devez effectuer des appels GET
et PATCH
à vRealize Automation IaaS API. En effectuant un appel GET
à https://your_vRA_fqdn/iaas/api/machines/{id}, vous pouvez récupérer le lien de la carte réseau pour la ressource de calcul que vous souhaitez modifier. Ensuite, vous pouvez effectuer un appel PATCH
à l'adresse https://your_vRA_fqdn/iaas/api/machines/{id}/network-interfaces/{nicld}, qui inclut le nom de l'interface de la carte réseau en tant que charge utile, pour ajouter le nouveau nom de votre carte réseau.
Le scénario suivant utilise un exemple de script Python qui peut être utilisé pour la configuration du nom de l'interface de la carte réseau. Pour vos propres cas d'utilisation, vous pouvez utiliser un script et un langage de script différents, tels que Node.js.
Conditions préalables
- Vous pouvez uniquement configurer le nom de l'interface de carte réseau avant de provisionner une ressource de calcul. Par conséquent, seule la rubrique d'événement Provisionnement de calcul peut être sélectionnée pour les abonnements d'extensibilité pertinents.
- Vous pouvez uniquement configurer des noms d'interface de carte réseau pour les cartes réseau qui utilisent Microsoft Azure comme fournisseur.
Procédure
- Créez l'action d'extensibilité.
- Accédez à .
- Cliquez sur Nouvelle action.
- Entrez un nom et un projet pour l'action d'extensibilité, puis appuyez sur Suivant.
- Ajoutez le script de configuration de la carte réseau.
Voici un exemple de fichier Python :
import json def handler(context, inputs): # Get the machine info, which contains machine nic link response = context.request('/iaas/api/machines/'+inputs["resourceIds"][0], "GET", {}) # Build PATCH machine nic payload here name = "customized-nic-02"; data = {'name':name}; # Convert machine data string to json object response_json = json.loads(response["content"]) # Patch machine nic response_patch = context.request(response_json["_links"]["network-interfaces"]["hrefs"][0] + "?apiVersion=2021-07-15", 'PATCH', data) # return value is empty since we are not changing any compute provisioning parameters outputs = {} return outputs
L'exemple de script précédent effectue deux opérations principales via l'API IaaS. Tout d'abord, le script utilise un appelGET
pour récupérer le lien de la carte réseau, puis un appelPATCH
pour appliquer le nom de l'interface. Dans cet exemple, le nom de l'interface de la carte réseau est codé en dur dans le script sous la forme"customized-nic-02"
. - Pour terminer la modification de l'action d'extensibilité, cliquez sur Enregistrer.
- Créez un abonnement d'extensibilité.
- Accédez à .
- Cliquez sur Nouvel abonnement.
- Entrez un nom pour l'abonnement d'extensibilité.
- Sous Rubrique d'événement, sélectionnez Provision de calcul comme rubrique d'événement pour l'abonnement d'extensibilité.
- Sous Action/Workflow, sélectionnez l'action d'extensibilité que vous avez créée pour la configuration de la carte réseau.
- Activez le blocage des événements.
En activant le blocage, vous vous assurez que le processus de provisionnement est bloqué jusqu'à ce que l'action d'extensibilité termine son exécution.
- Pour terminer la modification de l'abonnement d'extensibilité, cliquez sur Enregistrer.
Résultats
Le nouvel abonnement d'extensibilité s'exécute lorsqu'un événement de provisionnement de calcul est déclenché et configure le nom de l'interface de carte réseau pour les ressources de calcul à provisionner.