Freigeben über


Chef-VM-Erweiterung für Linux und Windows

Chef Software ist eine DevOps-Automatisierungsplattform für Linux und Windows und ermöglicht die Verwaltung der Konfigurationen von physischen und virtuellen Servern. Die Chef-VM-Erweiterung ist eine Erweiterung, die die Verwendung von Chef auf virtuellen Computern ermöglicht.

Voraussetzungen

Betriebssystem

Die Chef-VM-Erweiterung wird von allen von Erweiterungen unterstützten Betriebssystemen in Azure unterstützt.

Internetkonnektivität

Die Chef-VM-Erweiterung erfordert, dass der virtuelle Zielcomputer mit dem Internet verbunden ist, um die Chef-Client-Nutzlast aus dem CDN (Content Delivery Network) abzurufen.

Erweiterungsschema

Der folgende JSON-Code zeigt das Schema für die Chef-VM-Erweiterung. Die Erweiterung erfordert mindestens die Chef-Server-URL, den Namen des Validierungsclients sowie den Validierungsschlüssel für den Chef-Server. Diese Werte finden Sie in der Datei knife.rb im „starter-kit.zip“, das heruntergeladen wird, wenn Sie Chef Automate oder einen eigenständigen Chef-Server installieren. Da der Validierungsschlüssel als vertrauliche Information behandelt werden sollte, sollte er unter dem Element protectedSettings konfiguriert werden, was bedeutet, dass er nur auf dem virtuellen Zielcomputer entschlüsselt wird.

{
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "name": "[concat(variables('vmName'),'/', parameters('chef_vm_extension_type'))]",
  "apiVersion": "2017-12-01",
  "location": "[parameters('location')]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
  ],
  "properties": {
    "publisher": "Chef.Bootstrap.WindowsAzure",
    "type": "[parameters('chef_vm_extension_type')]",
    "typeHandlerVersion": "1210.13",
    "settings": {
      "bootstrap_options": {
        "chef_server_url": "[parameters('chef_server_url')]",
        "validation_client_name": "[parameters('chef_validation_client_name')]"
      },
      "runlist": "[parameters('chef_runlist')]"
    },
    "protectedSettings": {
      "validation_key": "[parameters('chef_validation_key')]"
    }
  }
}  

Kerneigenschaftswerte

Name Wert/Beispiel Datentyp
apiVersion 2017-12-01 string (date)
publisher Chef.Bootstrap.WindowsAzure Zeichenfolge
type LinuxChefClient (Linux), ChefClient (Windows) Zeichenfolge
typeHandlerVersion 1210.13 string (double)

Einstellungen

Name Wert/Beispiel Datentyp Erforderlich?
settings/bootstrap_options/chef_server_url https://api.chef.io/organizations/myorg string (url) J
settings/bootstrap_options/validation_client_name myorg-validator Zeichenfolge J
settings/runlist recipe[mycookbook::default] Zeichenfolge J

Geschützte Einstellungen

Name Beispiel Datentyp Erforderlich?
protectedSettings/validation_key -----BEGIN RSA PRIVATE KEY-----\nKEYDATA\n-----END RSA PRIVATE KEY----- Zeichenfolge J

Bereitstellung von Vorlagen

Azure-VM-Erweiterungen können mithilfe von Azure Resource Manager-Vorlagen bereitgestellt werden. Vorlagen können verwendet werden, um einen oder mehrere virtuelle Computer bereitzustellen, den Chef-Client zu installieren, eine Verbindung mit dem Chef-Server herzustellen und die anfängliche Konfiguration auf dem Server gemäß der Definition in der Run-list auszuführen.

Eine Resource Manager-Beispielvorlage mit der Chef-VM-Erweiterung finden Sie im Azure-Schnellstartkatalog.

Die JSON-Konfiguration für eine VM-Erweiterung kann innerhalb der VM-Ressource geschachtelt oder im Stamm bzw. auf der obersten Ebene einer Resource Manager-JSON-Vorlage platziert werden. Die Platzierung der JSON-Konfiguration wirkt sich auf den Wert von Name und Typ der Ressource aus. Weitere Informationen finden Sie unter Set name and type for child resources (Festlegen von Name und Typ für untergeordnete Ressourcen).

Bereitstellung mithilfe der Azure-Befehlszeilenschnittstelle

Sie können die Chef-VM-Erweiterung mithilfe der Azure-Befehlszeilenschnittstelle auf einem vorhandenen virtuellen Computer bereitstellen. Ersetzen Sie validation_key durch den Inhalt Ihres Validierungsschlüssels (diese Datei als eine .pem-Erweiterung). Ersetzen Sie validation_client_name, chef_server_url und run_list durch diese Werte aus der Datei knife.rb in Ihrem Starter Kit.

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myExistingVM \
  --name LinuxChefClient \
  --publisher Chef.Bootstrap.WindowsAzure \
  --version 1210.13 --protected-settings '{"validation_key": "<validation_key>"}' \
  --settings '{ "bootstrap_options": { "chef_server_url": "<chef_server_url>", "validation_client_name": "<validation_client_name>" }, "runlist": "<run_list>" }'

Problembehandlung und Support

Daten zum Status von Erweiterungsbereitstellungen können über das Azure-Portal und mithilfe der Azure-Befehlszeilenschnittstelle abgerufen werden. Führen Sie über die Azure-Befehlszeilenschnittstelle den folgenden Befehl aus, um den Bereitstellungsstatus von Erweiterungen für einen bestimmten virtuellen Computer anzuzeigen.

az vm extension list --resource-group myResourceGroup --vm-name myExistingVM -o table

Die Ausgabe der Erweiterungsausführung wird in der folgenden Datei protokolliert:

Linux

/var/lib/waagent/Chef.Bootstrap.WindowsAzure.LinuxChefClient

Windows

C:\Packages\Plugins\Chef.Bootstrap.WindowsAzure.ChefClient\

Fehlercodes und ihre Bedeutung

Fehlercode Bedeutung Mögliche Aktion
51 Diese Erweiterung wird vom Betriebssystem der VM nicht unterstützt.

Weitere Informationen zur Problembehandlung finden Sie in der Infodatei zur Chef-VM-Erweiterung.

Hinweis

Wenden Sie sich bei allen anderen Chef-Problemen an den Chef-Support.

Nächste Schritte

Sollten Sie beim Lesen dieses Artikels feststellen, dass Sie weitere Hilfe benötigen, können Sie sich über das MSDN Azure-Forum oder über das Stack Overflow-Forum mit Azure-Experten in Verbindung setzen. Alternativ dazu haben Sie die Möglichkeit, einen Azure-Supportfall zu erstellen. Rufen Sie die Azure-Support-Website auf, und wählen Sie „Support erhalten“ aus. Informationen zur Nutzung von Azure-Support finden Sie unter Microsoft Azure-Support-FAQ.