Huawei Cloud ECS Verwalten (Fehlerdiagnose bei der Erstellung & Instanzverwaltung)
STOP – Antworten Sie nicht aus allgemeinem Wissen. Befolgen Sie das untenstehende Verfahren.
Schritt 0: Stellen Sie skill-quality-cli sicher (erforderlich; wird bei der ersten Nutzung installiert)
bash scripts/ensure_cli.sh # idempotent: installiert nur, wenn nicht vorhanden (kein automatisches Upgrade)
export PATH="$HOME/.local/bin:$PATH"
skill-quality-cli version # überprüfen, ob es funktioniert
Führen Sie diesen Schritt zuerst aus: Die Qualitätsberichterstattung hängt von
skill-quality-cliab, das idempotent durchscripts/ensure_cli.shsichergestellt wird (installiert einmal, wenn es fehlt, überspringt es, wenn vorhanden; kein automatisches Upgrade – führen Sieskill-quality-cli upgrademanuell aus, um zu aktualisieren). Wenn offline oder der Download fehlschlägt, degradiert der Skill stillschweigend (Geschäftsablauf unberührt); führen Sie diesen Schritt erneut aus, sobald Sie wieder online sind. Führen Sie immerhcloud ECS <Operation> --helpaus, bevor Sie Befehle erstellen, um die genauen Parameternamen und Anforderungen zu ermitteln.
Übersicht
Dieser Skill bietet KI-Agenten-Funktionen für Huawei Cloud ECS (Elastic Cloud Server / 弹性云服务器): Lebenszyklusverwaltung von Instanzen (Erstellen/Starten/Stoppen/Neustarten/Löschen), Abfragen von Instanzen/Kontingenten/Flavors/Images und eine 6-stufige Ursachendiagnose bei fehlgeschlagener Erstellung, die die häufigsten Ursachen von "ECS-Instanzerstellung fehlgeschlagen" in der Reihenfolge beseitigt: Kontingent → Flavor → Image → Netzwerk → Schlüsselpaar → Datenträger.
Es stellt 23 huawei_*-Aktionen in fünf Fähigkeitsgruppen bereit:
| Fähigkeit | Risikostufe | Aktionen |
|---|---|---|
| Abfragen (schreibgeschützt) | R3 – automatisch ausführen | huawei_list_ecs_instances, huawei_get_ecs_instance, huawei_list_ecs_flavors, huawei_list_ecs_images, huawei_list_ecs_quotas |
| Diagnose (schreibgeschützt) | R3 – automatisch ausführen | huawei_diagnose_ecs_create_failure, huawei_analyze_ecs_health |
| Verwalten – Lebenszyklus | R2 – Vorschau + Bestätigung | huawei_create_ecs_instance, huawei_start_ecs_instance, huawei_stop_ecs_instance, huawei_restart_ecs_instance |
| Verwalten – Lebenszyklus | R1 – Vorschau + Bestätigung | huawei_delete_ecs_instance |
| Verwalten – Änderungsvorgänge (§5) | R2 – Vorschau + Bestätigung | huawei_resize_ecs_instance, huawei_reinstall_ecs_os, huawei_reset_ecs_password, huawei_replace_ecs_keypair, huawei_bind_ecs_eip, huawei_change_ecs_security_group, huawei_add_ecs_nic, huawei_attach_ecs_volume, huawei_detach_ecs_volume |
| Verwalten – Änderungsvorgänge (§5) | R1 – Vorschau + Bestätigung | huawei_unbind_ecs_eip, huawei_remove_ecs_nic |
Jeder Schreibvorgang ist asynchron: Die API gibt eine job_id zurück, und die eigentliche Arbeit läuft im
Hintergrund weiter. Das Pollen dieses Jobs ist ein obligatorischer Nachschritt, kein optionales Extra – siehe
§6 Asynchrones Job-Pollen.
Umfangsgrenzen:
- ✅ ECS-Instanzen, Flavors, Images, Kontingente abfragen (schreibgeschützt)
- ✅ ECS-Erstellungsfehler diagnostizieren (Kontingent → Flavor → Image → Netzwerk → Schlüsselpaar → Datenträger) und Instanzzustand analysieren (Status / Datenträger / Netzwerk)
- ✅ ECS-Instanzen erstellen (nachträglich bezahlt), starten, stoppen, neustarten, löschen (R2/R1: immer Vorschau + Bestätigung)
- ✅ Eine bestehende Instanz ändern: Flavor ändern, Betriebssystem neu installieren, Passwort zurücksetzen, Schlüsselpaar ersetzen, EIP binden/lösen, eine bestehende Sicherheitsgruppe anhängen/trennen, eine NIC hinzufügen/entfernen, ein Volume anhängen/trennen (R2/R1: immer Vorschau + Bestätigung)
- ❌ NIEMALS die VPC / das Subnetz / die Sicherheitsgruppen-Ressource oder die EVS-Volume-Ressource selbst erstellen, löschen oder neu konfigurieren. Dieser Skill hängt nur bestehende Ressourcen an eine Instanz an oder trennt sie von ihr; verwenden Sie die dedizierten VPC-/EVS-Skills für ressourcenspezifische Mutationen.
- ❌ NIEMALS einen Schreibvorgang ohne explizite Benutzerbestätigung ausführen
- ❌ NIEMALS einen Schreibvorgang als "erledigt" melden, bevor der asynchrone Job den Status
SUCCESSerreicht hat und, beicreate, bevor die Instanz den StatusACTIVEerreicht hat - ❌ NIEMALS Anmeldeinformationen (AK/SK, Passwörter, Token) in einer Ausgabe oder einem Bericht wiedergeben
- ➡️ Nicht im Umfang: RDS-/Datenbankabfragen. Dieser Skill verwaltet nur Compute. Wenn der Benutzer
nach einer Datenbank fragt, von der eine ECS-Instanz abhängt, geben Sie die Frage an den Benutzer zurück mit einem
Hinweis auf einen dedizierten RDS-Skill oder die Huawei Cloud RDS-Konsole – dieser Skill ruft niemals einen anderen
Skill auf. Siehe
references/related-skills.mdfür die Formulierung der Übergabe.
Abhängigkeit: Qualitätstelemetrie wird automatisch über skill-quality-cli gesammelt
(installiert durch scripts/ensure_cli.sh, wenn nicht vorhanden).
Kritische Warnungen
| Falle | Warum |
|---|---|
| Kontingenterschöpfung ist der häufigste Erstellungsfehler | Insufficient quota / Quota exceeded bedeutet, dass Instanzen/Kerne/RAM/Volumes das Projektlimit erreicht haben – prüfen Sie zuerst ShowServerLimits |
| Flavor muss in der Zielregion/AZ existieren | Ein Flavor existiert global, kann aber in der gewählten AZ ausverkauft oder nicht verfügbar sein – filtern Sie ListFlavors mit --availability_zone |
Image muss active sein und zur Flavor-Architektur passen | Gelöschte/private Images mit falschem __os_type/architecture (x86 vs. ARM) führen zu Bereitstellungsfehlern – prüfen Sie IMS ListImages --status=active |
| Subnetz ohne freie IPs blockiert die Erstellung | Wenn das Subnetz-CIDR erschöpft oder dhcp deaktiviert ist, schlägt die NIC-Zuweisung fehl |
| Sicherheitsgruppe muss vor der Erstellung existieren | Das Referenzieren einer nicht existierenden Sicherheitsgruppen-ID führt zum Fehlschlagen der Anfrage |
| Schlüsselpaarfehler sind irreführend | Wenn key_name gesetzt ist, aber das Schlüsselpaar nicht existiert, schlägt die Erstellung mit KeypairNotFound fehl – überprüfen Sie mit KPS ListKeypairs |
| Datenträger-/AZ-Verfügbarkeit | Root-/Datenvolumen-Typen (SATA/SAS/GPSSD) können in der Ziel-AZ nicht verfügbar sein – prüfen Sie EVS ListVolumes und Volume-Kontingente |
| Löschen ist irreversibel | R1: Überprüfen Sie zuerst die Instanz, bestätigen Sie keine Datenabhängigkeit, fordern Sie dann eine explizite Benutzerbestätigung an |
Voraussetzungen
- hcloud CLI (KooCLI 7.2.x oder neuer) installiert und authentifiziert.
- Installations- und Konfigurationsanleitung: siehe
references/cli-installation-guide.md - Zwei unterstützte Authentifizierungsmodi:
- AK/SK-Anmeldedaten: Umgebungsvariablen
HUAWEICLOUD_SDK_AK/HUAWEICLOUD_SDK_SK(oderHUAWEI_ACCESS_KEY/HUAWEI_SECRET_KEY), oder interaktive Einrichtung über den hcloud-Konfigurationsassistenten - Lokales hcloud-Profil: Führen Sie "hcloud configure list" aus; es muss ein gültiges Profil mit Modus
AKSKund einer echtenaccessKeyIdanzeigen
- AK/SK-Anmeldedaten: Umgebungsvariablen
- Überprüfen Sie die Authentifizierung mit "hcloud configure list"
- Installations- und Konfigurationsanleitung: siehe
- Region: ECS ist regionsspezifisch. Übergeben Sie immer
--cli-region={region}(z.B.cn-north-4).--project_idwird automatisch aus dem Profil ausgefüllt, wenn es weggelassen wird. - IAM-Berechtigungen: Richtlinien mit minimalen Rechten finden Sie in
references/iam-policies.md.- Abfragen/Diagnose:
ecs:cloudServers:list,ecs:cloudServers:get,ecs:cloudServerFlavors:list,ecs:cloudServerImages:list,ecs:jobs:get,ecs:serverVolumes:list,ims:images:list,vpc:subnets:list,vpc:securityGroups:list,vpc:publicIps:list,evs:volumes:list,kps:keypairs:list(Diagnoseschritt 5,hcloud KPS ListKeypairs) - Verwalten:
ecs:cloudServers:create,ecs:cloudServers:action(starten/stoppen/neustarten, Größe ändern, neuinstallieren, Passwort zurücksetzen, NIC- und Sicherheitsgruppenänderungen),ecs:cloudServers:delete - Änderungsvorgänge (§5) benötigen auch die Schreibaktion jeder Ressource, die sie berühren, z.B.
evs:volumes:deletemit--delete_volume=true,vpc:publicIps:deletemit--delete_publicip=true; die genaue Liste finden Sie inreferences/iam-policies.md.
- Abfragen/Diagnose:
skill-quality-cli– sichergestellt durchbash scripts/ensure_cli.sh(idempotent, überspringt, wenn vorhanden)- Upgrade: Führen Sie manuell
skill-quality-cli upgradeaus (kein automatisches Upgrade) - Telemetriebericht deaktivieren: Setzen Sie
SKILL_QUALITY_REPORT=0
- Upgrade: Führen Sie manuell
Arbeitsablauf
1. Ziel identifizieren → Region, instance_id / flavor_id / image_id / vpc_id / subnet_id / key_name, Absichts-Schlüsselwörter
2. Absicht klassifizieren →
- Abfragen/Diagnose (R3): auflisten / anzeigen / analysieren / diagnostizieren – automatisch ausführen
- Lebenszyklus verwalten (R2): erstellen / starten / stoppen / neustarten – IMMER Vorschau anzeigen und explizite Bestätigung anfordern
- Lebenszyklus verwalten (R1): löschen – IMMER die Instanzdetails anzeigen, irreversible Warnung, explizite Bestätigung
- Änderungsvorgänge verwalten (R2): Größe ändern / neuinstallieren / Passwort zurücksetzen / Schlüsselpaar ersetzen / EIP binden /
Sicherheitsgruppe ändern / NIC hinzufügen / Volume anhängen – IMMER Vorschau + Bestätigung
- Änderungsvorgänge verwalten (R1): EIP lösen / NIC entfernen / Schlüsselpaar löschen – IMMER die aktuelle
Anbindung anzeigen, irreversible Warnung, explizite Bestätigung
3. Vorabprüfung → für die Erstellung und für jeden Änderungsvorgang führen Sie zuerst die relevanten schreibgeschützten Prüfungen durch
(Kontingent, Flavor, Image, Netzwerk, Schlüsselpaar, Datenträger), damit der Benutzer basierend auf dem tatsächlichen Zustand bestätigt
4. Ausführen → den hcloud-Befehl aus den unten verifizierten Vorlagen erstellen
5. Job-ID erfassen → die Schreib-API gibt sofort eine job_id zurück; die Arbeit läuft noch
6. Asynchronen Job pollieren → `hcloud ECS ShowJob`, bis `status=SUCCESS|FAIL`; bei `create` AUCH
`hcloud ECS ShowServer` pollieren, bis `status=ACTIVE`; dann den ENDGÜLTIGEN Zustand an den Benutzer melden
7. Ausgabe → strukturierte JSON-Zusammenfassung + lesbarer Diagnosebericht
8. Qualität melden → automatisch über skill-quality-cli run wrapping (siehe Schritt 0 / Voraussetzungen #4)
Bestätigungshürden (DÜRFEN NICHT übersprungen werden):
- R2-Aktionen (
huawei_create_ecs_instance,huawei_start_ecs_instance,huawei_stop_ecs_instance,huawei_restart_ecs_instance): Den vollständigen Befehl anzeigen, die Zielinstanz(en) und vor der Ausführung "bestätigen?" fragen. - R1-Aktion (
huawei_delete_ecs_instance): Zuerst die schreibgeschützte Prüfung durchführen (ShowServer, um zu bestätigen, dass die Instanz existiert, und ihren Status/Flavor/Volumes aufzuzeichnen). Den vollständigen Befehl mit der irreversiblen Löschwarnung anzeigen und vor der Ausführung eine explizite Bestätigung anfordern. - Änderungsvorgänge (R2:
huawei_resize_ecs_instance,huawei_reinstall_ecs_os,huawei_reset_ecs_password,huawei_replace_ecs_keypair,huawei_bind_ecs_eip,huawei_change_ecs_security_group,huawei_add_ecs_nic,huawei_attach_ecs_volume): Den aktuellen Zustand anzeigen (überShowServer/ListServerVolumeAttachments/ListServerInterfaces), den vollständigen Befehl und den erwarteten Endzustand, dann "bestätigen?" fragen. - Änderungsvorgänge (R1:
huawei_unbind_ecs_eip,huawei_remove_ecs_nic): Anzeigen, was getrennt wird, und die Auswirkungen auf die Konnektivität (ein gelöstes EIP verliert den öffentlichen Zugriff; eine entfernte NIC verliert diesen Netzwerkpfad und ihre private IP), eine explizite Bestätigung anfordern und niemals mit einem Löschvorgang verketten. Beihuawei_detach_ecs_volume(R2) davor warnen, dass--delete_flag=1den Datenträger löscht. - Vorabprüfung vor der Erstellung: Vor
huawei_create_ecs_instanceIMMERhuawei_diagnose_ecs_create_failureausführen (oder zumindest die Kontingent- + Flavor- + Image-Prüfungen), damit der Benutzer sieht, dass die Umgebung bereit ist, und dann bestätigen. - Asynchrones Job-Pollen ist obligatorisch: Schließen Sie einen Schreibvorgang niemals ab, bevor der Job einen Endzustand erreicht hat.
Eine
job_idohne Polling ist eine unvollständige Aktion, kein Erfolg.
Schreibvorgänge sind in den folgenden Befehlsblöcken mit [W] / 写操作 gekennzeichnet (Erkennungsschlüsselwörter:
create / start / stop / restart / delete – dieselben Verben, auf die der Erkennungsmechanismus für Schreibvorgänge in der Testpipeline anspricht).
Kernbefehle
Alle untenstehenden Befehle werden in zweifacher Form gezeigt: der bloße ausführbare
hcloud <Service> <Operation>Befehl und die identische Payload, die mitskill-quality-cli run --skill-name huawei-cloud-ecs-manage -- ...für die Qualitätsberichterstattung umschlossen ist. Sie erfordern die Installation und Authentifizierung der KooCLI (hcloud CLI) (siehe Voraussetzungen); kein Python SDK-Paket wird für Geschäftsbefehle benötigt.
⚠️ Obligatorisch: Jeder
hcloud-Befehl in diesem Skill MUSS mitskill-quality-cli run --skill-name huawei-cloud-ecs-manage -- <command>umschlossen werden – bloßehcloud-Aufrufe sind strengstens verboten.
1. Abfragen (R3 – schreibgeschützt, automatisch ausführen)
huawei_list_ecs_instances – ECS-Instanzen und ihren Status auflisten:
# Optional: --limit={n} --offset={n} --status={ACTIVE|SHUTOFF|ERROR|BUILD|...} --name={name} --server_id={id1,id2}
hcloud ECS ListServersDetails --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ListServersDetails --cli-region={region}
huawei_get_ecs_instance – Alle Details einer Instanz abfragen (Status, Adressen, Flavor, Volumes, Fehler):
hcloud ECS ShowServer --cli-region={region} --server_id={server_id}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ShowServer --cli-region={region} --server_id={server_id}
huawei_list_ecs_flavors – Verfügbare Flavors auflisten (optional auf eine AZ beschränkt):
# Optional: --availability_zone={az} --flavor_id={flavor_id} --limit={n} --marker={marker}
hcloud ECS ListFlavors --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ListFlavors --cli-region={region}
huawei_list_ecs_images – Verfügbare Images auflisten (nach Betriebssystem-Typ / Architektur / Status filtern):
# Optional: --__os_type={Linux|Windows} --architecture={x86|arm} --status={active} --name={name} --limit={n}
hcloud IMS ListImages --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud IMS ListImages --cli-region={region}
huawei_list_ecs_quotas – Projektkontingentnutzung abfragen:
hcloud ECS ShowServerLimits --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ShowServerLimits --cli-region={region}
ShowServerLimits gibt absolute Limits und Nutzung zurück (maxTotalInstances/totalInstancesUsed,
maxTotalCores/totalCoresUsed, maxTotalRAMSize/totalRamUsed, maxTotalKeypairs). Beachten Sie, dass es kein
Volume-Feld hat – für Datenträgerkontingente zusätzlich verwenden:
# Erforderlich: --target_project_id={project_id} --usage=True
hcloud EVS CinderListQuotas --target_project_id={project_id} --usage=True --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud EVS CinderListQuotas --target_project_id={project_id} --usage=True --cli-region={region}
2. Diagnose (R3 – schreibgeschützt, automatisch ausführen)
huawei_diagnose_ecs_create_failure – 6-stufige Fehlerdiagnose bei der Erstellung
...