Partager via


Installer la charge utile d’extension sur un nœud managé

Programme d’installation

Notes

Pour suivre ce guide, vous avez besoin de la build 1.2.1904.02001 ou ultérieure. Pour vérifier votre numéro de build, ouvrez Windows Admin Center et cliquez sur le point d’interrogation en haut à droite.

Si ce n’est pas déjà fait, créez une extension d’outil pour Windows Admin Center. Une fois que vous avez terminé, notez les valeurs utilisées lors de la création d’une extension :

Valeur Explication Exemple
{!Company Name} Nom de votre entreprise (avec espaces) Contoso
{!Tool Name} Nom de votre outil (avec espaces) InstallOnNode

Dans votre dossier d’extension d’outil, créez un Node dossier ({!Tool Name}\Node). Tout ce qui est placé dans ce dossier est copié dans le nœud managé lors de l’utilisation de cette API. Ajoutez tous les fichiers nécessaires pour votre cas d’usage.

Créez également un script{!Tool Name}\Node\installNode.ps1. Ce script est exécuté sur le nœud managé une fois que tous les fichiers sont copiés du dossier {!Tool Name}\Node vers le nœud managé. Ajoutez une logique supplémentaire pour votre cas d’usage. Un exemple de fichier{!Tool Name}\Node\installNode.ps1 :

# Add logic for installing payload on managed node
echo 'Success'

Notes

{!Tool Name}\Node\installNode.ps1 a un nom spécifique que l’API recherchera. La modification du nom de ce fichier entraîne une erreur.

Intégration avec l’interface utilisateur

Effectuez la mise à jour \src\app\default.component.ts vers les éléments suivants :

import { Component } from '@angular/core';
import { AppContextService } from '@microsoft/windows-admin-center-sdk/angular';
import { Observable } from 'rxjs';

@Component({
  selector: 'default-component',
  templateUrl: './default.component.html',
  styleUrls: ['./default.component.css']
})

export class DefaultComponent {
  constructor(private appContextService: AppContextService) { }

  public response: any;
  public loading = false;

  public installOnNode() {
    this.loading = true;
    this.post('{!Company Name}.{!Tool Name}', '1.0.0',
      this.appContextService.activeConnection.nodeName).subscribe(
        (response: any) => {
          console.log(response);
          this.response = response;
          this.loading = false;
        },
        (error) => {
          console.log(error);
          this.response = error;
          this.loading = false;
        }
      );
  }

  public post(id: string, version: string, targetNode: string): Observable<any> {
    return this.appContextService.node.post(targetNode,
      `features/extensions/${id}/versions/${version}/install`);
  }

}

Mettez à jour les espaces réservés avec les valeurs utilisées lors de la création de l’extension :

this.post('contoso.install-on-node', '1.0.0',
      this.appContextService.activeConnection.nodeName).subscribe(
        (response: any) => {
          console.log(response);
          this.response = response;
          this.loading = false;
        },
        (error) => {
          console.log(error);
          this.response = error;
          this.loading = false;
        }
      );

Mettez également à jour \src\app\default.component.html vers :

<button (click)="installOnNode()">Click to install</button>
<sme-loading-wheel *ngIf="loading" size="large"></sme-loading-wheel>
<p *ngIf="response">{{response}}</p>

Et enfin \src\app\default.module.ts:

import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';

import { LoadingWheelModule } from '@microsoft/windows-admin-center-sdk/angular';
import { DefaultComponent } from './default.component';
import { Routing } from './default.routing';

@NgModule({
  imports: [
    CommonModule,
    LoadingWheelModule,
    Routing
  ],
  declarations: [DefaultComponent]
})
export class DefaultModule { }

Création et installation d’un package NuGet

La dernière étape consiste à créer un package NuGet avec les fichiers que nous avons ajoutés, puis à installer ce package dans Windows Admin Center.

Suivez le guide Extensions de publication si vous n’avez pas encore créé de package d’extension.

Important

Dans votre fichier .nuspec pour cette extension, il est important que la valeur <id> corresponde au nom de votre projet manifest.json et à <version> ce qui a été ajouté à \src\app\default.component.ts. Ajoutez également une entrée sous <files> :

<file src="Node\**\*.*" target="Node" />.

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="https://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>contoso.install-on-node</id>
    <version>1.0.0</version>
    <authors>Contoso</authors>
    <owners>Contoso</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <projectUrl>https://msft-sme.myget.org/feed/windows-admin-center-feed/package/nuget/contoso.sme.install-on-node-extension</projectUrl>
    <licenseUrl>http://YourLicenseLink</licenseUrl>
    <iconUrl>http://YourLogoLink</iconUrl>
    <description>Install on node extension by Contoso</description>
    <copyright>(c) Contoso. All rights reserved.</copyright>
  </metadata>
    <files>
    <file src="bundle\**\*.*" target="ux" />
    <file src="package\**\*.*" target="gateway" />
    <file src="Node\**\*.*" target="Node" />
  </files>
</package>

Une fois ce package créé, ajoutez un chemin d’accès à ce flux. Dans Windows Admin Center accédez à Paramètres > Extensions > Flux et ajoutez le chemin d’accès à l’emplacement où ce package existe. Une fois l’installation de votre extension terminée, vous devez être en mesure de cliquer sur le bouton install et l’API est appelée.