Installare il payload dell'estensione in un nodo gestito
Si applica a: Windows Admin Center, Anteprima Windows Admin Center
Impostazione
Nota
Per seguire questa guida, è necessaria la build 1.2.1904.02001 o successiva. Per controllare il numero di build aprire Windows Admin Center e fare clic sul punto interrogativo in alto a destra.
Se non è già stato fatto, creare un'estensione dello strumento per Windows Admin Center. Dopo aver completato questa operazione, prendere nota dei valori usati durante la creazione di un'estensione:
Valore | Spiegazione | Esempio |
---|---|---|
{!Company Name} |
Nome aziendale (con spazi) | Contoso |
{!Tool Name} |
Nome dello strumento (con spazi) | InstallOnNode |
All'interno della cartella dell'estensione dello strumento creare una cartella Node
({!Tool Name}\Node
). Qualsiasi elemento inserito in questa cartella verrà copiato nel nodo gestito quando si usa questa API. Aggiungere tutti i file necessari per il caso d'uso.
Creare anche uno script {!Tool Name}\Node\installNode.ps1
. Questo script verrà eseguito nel nodo gestito una volta che tutti i file vengono copiati dalla cartella {!Tool Name}\Node
al nodo gestito. Aggiungere qualsiasi logica aggiuntiva per il caso d'uso. Esempio di file {!Tool Name}\Node\installNode.ps1
:
# Add logic for installing payload on managed node
echo 'Success'
Nota
{!Tool Name}\Node\installNode.ps1
ha un nome specifico che l'API cercherà. La modifica del nome del file genererà un errore.
Integrazione con l'interfaccia utente
Aggiornare \src\app\default.component.ts
agli elementi seguenti:
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`);
}
}
Aggiornare i segnaposto ai valori usati durante la creazione dell'estensione:
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;
}
);
Aggiornare anche \src\app\default.component.html
a:
<button (click)="installOnNode()">Click to install</button>
<sme-loading-wheel *ngIf="loading" size="large"></sme-loading-wheel>
<p *ngIf="response">{{response}}</p>
E infine \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 { }
Creazione e installazione di un pacchetto NuGet
L'ultimo passaggio consiste nel creare un pacchetto NuGet con i file aggiunti e quindi installare il pacchetto in Windows Admin Center.
Seguire la guidapubblicazione estensioni se non è stato creato un pacchetto di estensione in precedenza.
Importante
Nel file con estensione nuspec per questa estensione è importante che il valore <id>
corrisponda al nome nel manifest.json
del progetto e che il <version>
corrisponda a quello aggiunto a \src\app\default.component.ts
. Aggiungere anche una voce in <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>
Dopo aver creato questo pacchetto, aggiungere un percorso a tale feed. In Windows Admin Center passare a Impostazioni >Estensioni> Feed e aggiungere il percorso alla posizione in cui è presente il pacchetto. Al termine dell'installazione dell'estensione, dovrebbe essere possibile fare clic sul pulsante install
e verrà richiamata l'API.