Udostępnij za pośrednictwem


Rozszerzenie maszyny wirtualnej Chef dla systemów Linux i Windows

Program Chef Software udostępnia platformę automatyzacji DevOps dla systemów Linux i Windows, która umożliwia zarządzanie konfiguracjami zarówno serwerów fizycznych, jak i wirtualnych. Rozszerzenie Chef VM to rozszerzenie, które umożliwia oprogramowaniu Chef działanie na maszynach wirtualnych.

Wymagania wstępne

System operacyjny

Rozszerzenie Chef VM jest obsługiwane na wszystkich obsługiwanych systemach operacyjnych na platformie Azure.

Łączność z Internetem

Rozszerzenie maszyny wirtualnej Chef wymaga, aby docelowa maszyna wirtualna była połączona z Internetem, aby pobrać pakiet klienta Chef z sieci CDN.

Schemat rozszerzenia

Poniższy kod JSON przedstawia schemat rozszerzenia maszyny wirtualnej Chef. Rozszerzenie wymaga co najmniej adresu URL serwera Chef Server, nazwy klienta weryfikacji i klucza weryfikacji serwera Chef Server; te wartości można znaleźć w knife.rb pliku w starter-kit.zip pobranym podczas instalowania programu Chef Automate lub autonomicznego serwera Chef Server. Ponieważ klucz weryfikacji powinien być traktowany jako dane poufne, należy go skonfigurować w ramach elementu protectedSettings , co oznacza, że zostanie on odszyfrowany tylko na docelowej maszynie wirtualnej.

{
  "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')]"
    }
  }
}  

Podstawowe wartości właściwości

Nazwa Wartość / przykład Typ danych
apiVersion 2017-12-01 łańcuch (data)
wydawca Chef.Bootstrap.WindowsAzure sznurek
typ LinuxChefClient (Linux), ChefClient (Windows) sznurek
typeHandlerVersion 1210.13 ciąg (podwójny)

Ustawienia

Nazwa Wartość / przykład Typ danych Wymagane?
settings/bootstrap_options/chef_server_url https://api.chef.io/organizations/myorg ciąg (adres URL) Y
ustawienia/bootstrap_options/walidacja_nazwa_klienta myorg-validator sznurek Y
ustawienia/runlist recipe[mycookbook::default] sznurek Y

Ustawienia chronione

Nazwa Przykład Typ danych Wymagane?
ustawieniaChronione/kluczWeryfikacji -----BEGIN RSA PRIVATE KEY-----\nKEYDATA\n-----END RSA PRIVATE KEY----- sznurek Y

Wdrażanie szablonu

Rozszerzenia maszyn wirtualnych platformy Azure można wdrażać za pomocą szablonów usługi Azure Resource Manager. Szablony mogą służyć do wdrażania co najmniej jednej maszyny wirtualnej, instalowania klienta Chef, nawiązywania połączenia z serwerem Chef i wykonywania początkowej konfiguracji na serwerze zgodnie z definicją na liście Uruchom

Przykładowy szablon Resource Manager zawierający rozszerzenie Chef dla maszyny wirtualnej jest dostępny w galerii szybkiego startu platformy Azure.

Konfiguracja JSON rozszerzenia maszyny wirtualnej może być zagnieżdżona wewnątrz zasobu maszyny wirtualnej lub umieszczona na poziomie głównym lub najwyższym szablonu JSON usługi Resource Manager. Umieszczanie konfiguracji JSON wpływa na wartość nazwy i typu zasobu. Aby uzyskać więcej informacji, zobacz Ustaw nazwę i typ dla zasobów podrzędnych.

Wdrażanie za pomocą CLI Azure

Azure CLI można użyć do wdrożenia rozszerzenia Chef VM na istniejącej maszynie wirtualnej. Zastąp validation_key zawartością klucza weryfikacji (ten plik jako .pem rozszerzenie). Zastąp validation_client_name, chef_server_url i run_list tymi wartościami z knife.rb pliku w zestawie startowym.

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>" }'

Rozwiązywanie problemów i pomoc techniczna

Dane dotyczące stanu wdrożeń rozszerzeń można pobrać z witryny Azure Portal i przy użyciu interfejsu wiersza polecenia platformy Azure. Aby wyświetlić stan wdrożenia rozszerzeń dla danej maszyny wirtualnej, uruchom następujące polecenie przy użyciu interfejsu wiersza polecenia platformy Azure.

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

Dane wyjściowe wykonywania rozszerzenia są rejestrowane w następującym pliku:

Linux

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

Windows

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

Kody błędów i ich znaczenie

Kod błędu Znaczenie Możliwe działanie
51 To rozszerzenie nie jest obsługiwane w systemie operacyjnym maszyny wirtualnej

Dodatkowe informacje dotyczące rozwiązywania problemów można znaleźć w pliku readme rozszerzenia maszyny wirtualnej Chef.

Uwaga

Aby uzyskać informacje bezpośrednio związane z programem Chef, skontaktuj się z pomocą techniczną programu Chef.

Następne kroki

Jeśli potrzebujesz więcej pomocy w dowolnym momencie tego artykułu, możesz skontaktować się z ekspertami platformy Azure na forach MSDN Azure i Stack Overflow. Alternatywnie, możesz zgłosić zgłoszenie do pomocy technicznej dla platformy Azure. Przejdź do witryny pomoc techniczna platformy Azure i wybierz pozycję Uzyskaj pomoc techniczną. Aby uzyskać informacje na temat korzystania z pomocy technicznej platformy Azure, zapoznaj się z często zadawanymi pytaniami dotyczącymi usługi Microsoft pomoc techniczna platformy Azure.