Créer un workflow SSH

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 2 minutes de lecture
  • Créez le workflow SSH nécessaire pour éteindre l'ordinateur virtuel. Utilisez l'activité personnalisée SSH que vous avez déjà créée.

    Avant de commencer

    • Avoir déjà créé une activité personnalisée SSH
    • Rôle requis : concepteur de workflow ou admin

    Pourquoi et quand exécuter cette tâche

    Lorsque vous créez un workflow, vous devez l'associer à une table et à une activité.
    • Vous pouvez créer le workflow sur une table au niveau global ou une table au niveau de l'application. Utilisez la table globale pour rendre le workflow disponible à l'utilisation avec toutes les applications ServiceNow. Ici, nous utilisons une table pour Cloud Provisioning and Governance, de sorte que ce workflow ne sera disponible qu'à l'utilisation avec cette application.
    • Vous pouvez créer le workflow à partir de l'éditeur de workflow ou du concepteur d'activité. Ici, le concepteur d'activité est utilisé.

    Procédure

    1. Dans le concepteur d'activité, sélectionnez l'onglet Workflows à droite, puis cliquez sur + (le signe plus) pour ajouter un nouveau workflow.
    2. Dans la fenêtre Nouveau workflow, procédez comme suit :
      1. Saisissez un nom unique pour le calendrier.
      2. Dans la liste déroulante Table, sélectionnez la table à utiliser.
        Recherchez et utilisez le cmdb_ci_vm_instance d’instance d’ordinateur virtuel , car nous avons l’intention d’utiliser le workflow pour mettre hors tension un ordinateur virtuel.
      3. Cliquez sur Envoyer.
    3. Lorsque le workflow s'affiche dans le canevas, procédez comme suit :
      1. Supprimez la ligne de connexion entre le point de début et le point de terminaison du workflow.
      2. Cliquez-droit sur le canevas Plus d'informations et sélectionnez Modifier les entrées.
      3. Créez les entrées suivantes :
        Remarque :
        Récupérez les noms d'entrée depuis le champ Colonne, et non depuis le champ Étiquette. Si le workflow est associé à une table de niveau global, le nom de l'entrée dans le champ Colonne est précédé de u_, par exemple, u_ipaddress. Ici, la table est au niveau de l'application, elle n'a donc pas besoin de préfixe.
        Tableau 1. Entrées de workflow
        Type Étiquette Colonne (ajoutée automatiquement) Longueur max.
        Chaîne IPAddress ipaddress 100
        Chaîne CredentialTag credentialtag 100
      4. Cliquez sur Envoyer.
    4. Cliquez-droit sur le canevas et sélectionnez Ajouter une activité personnalisée.
    5. Dans la fenêtre Versions, recherchez et sélectionnez l'activité que vous avez créée plus tôt dans Créer l'activité personnalisée SSH.
    6. Dans la fenêtre Nouvelle activité pour cette activité (nouvel enregistrement d'activité du workflow [vue Générateur de diagramme]), effectuez les étapes suivantes :
      1. Entrez un nom pour l'activité.
      2. Dans le champ Hôte, tapez le mappage d'entrée auquel l'activité s'attend.

        C’est-à-dire l’adresse IP de l’hôte : ${workflow.inputs.u_ipaddress}.

        Utilisez cette expression pour l’adresse IP :

        $(Script:CMPVMUtils.getReachableIp[arg=$(Stack.items[Virtual Server].attributes[sys_id])])

      3. Dans le champ Commande, tapez shutdown -h now
      4. Dans le champ Balise d'informations d'identification, tapez ${workflow.inputs.u_credentialtag}

        Utilisez cette expression pour obtenir la balise d'informations d'identification :

        $(Script:CMPVMUtils.getCredentialAlias[arg=${Stack.items[Virtual Server].attributes[sys_id]}])

      5. Cliquez sur Envoyer.
        L'activité s'affiche dans le canevas du workflow.
    7. Cliquez avec le bouton droit sur le canevas, puis sélectionnez Ajouter une activité principale pour ajouter une activité de script d'exécution.
    8. Dans la fenêtre Définitions d'activité du workflow, recherchez et sélectionnez Exécuter le script.
    9. Dans la fenêtre Nouvelle activité, procédez comme suit :
      1. Saisissez un nom pour l'activité.
      2. Coupez et collez un script (approprié pour votre environnement) dans le champ Script.

        Ce script met à jour l'état de l'ordinateur virtuel après son arrêt.

        Exemple de script :
        if ( gs.nil(data.get(3).error)) {
                            current.state = 'off';
                            current.setWorkflow(false);
                            current.update();
        }
        
      3. Cliquez sur Envoyer.
    10. Dans le canevas, connectez les connecteurs entre le point de début, l'activité, le script d'exécution et le point de terminaison.
    11. Cliquez sur Publier pour rendre le workflow disponible.
    12. Validez le workflow à l'aide de la validation du workflow.
      Remarque :
      Le système ne recommande pas l'utilisation de current.update(). Cela peut être ignoré.