Wyłączanie lub usuwanie agenta systemu Linux z maszyn wirtualnych i obrazów
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️
Przed usunięciem agenta systemu Linux należy zrozumieć, jaka maszyna wirtualna nie będzie mogła wykonać po usunięciu agenta systemu Linux.
Rozszerzenia maszyn wirtualnych platformy Azure to małe aplikacje, które zapewniają zadania konfiguracji po wdrożeniu i automatyzacji na maszynach wirtualnych platformy Azure, rozszerzenia są instalowane i zarządzane przez płaszczyznę sterowania platformy Azure. Jest to zadanie agenta systemu Linux platformy Azure do przetwarzania poleceń rozszerzenia platformy i zapewnienia prawidłowego stanu rozszerzenia wewnątrz maszyny wirtualnej.
Platforma Azure hostuje wiele rozszerzeń, które wahają się od konfiguracji maszyny wirtualnej, monitorowania, zabezpieczeń i aplikacji narzędziowych. Istnieje duży wybór rozszerzeń pierwszej i innej firmy, przykłady kluczowych scenariuszy używanych przez rozszerzenia:
- Obsługa usług platformy Azure innych firm, takich jak Azure Backup, monitorowanie, szyfrowanie dysków, zabezpieczenia, replikacja lokacji i inne.
- Resetowanie hasła/SSH
- Konfiguracja maszyny wirtualnej — uruchamianie skryptów niestandardowych, instalowanie programu Chef, agentów Puppet itp.
- Produkty innych firm, takie jak produkty AV, narzędzia do luk w zabezpieczeniach maszyn wirtualnych, narzędzia do monitorowania maszyn wirtualnych i aplikacji.
- Rozszerzenia można połączyć z nowym wdrożeniem maszyny wirtualnej. Mogą one być na przykład częścią większego wdrożenia, konfigurowania aplikacji w ramach aprowizacji maszyny wirtualnej lub uruchamiania względem wszystkich obsługiwanych systemów obsługiwanych przez rozszerzenia po wdrożeniu.
Wyłączanie przetwarzania rozszerzeń
Istnieje kilka sposobów wyłączenia przetwarzania rozszerzeń, w zależności od potrzeb, ale przed kontynuowaniem musisz usunąć wszystkie rozszerzenia wdrożone na maszynie wirtualnej, na przykład przy użyciu interfejsu wiersza polecenia platformy Azure, można wyświetlić listę i usunąć:
az vm extension delete -g MyResourceGroup --vm-name MyVm -n extension_name
Uwaga
Jeśli nie wykonasz powyższych czynności, platforma spróbuje wysłać konfigurację rozszerzenia i przekroczenie limitu czasu po 40 minutach.
Wyłącz na płaszczyźnie sterowania
Jeśli nie masz pewności, czy będziesz potrzebować rozszerzeń w przyszłości, możesz pozostawić agenta systemu Linux zainstalowanego na maszynie wirtualnej, a następnie wyłączyć możliwość przetwarzania rozszerzeń z platformy. Ta opcja jest dostępna w Microsoft.Compute
wersji 2018-06-01
interfejsu API lub nowszej i nie ma zależności od zainstalowanej wersji agenta systemu Linux.
az vm update -g <resourceGroup> -n <vmName> --set osProfile.allowExtensionOperations=false
Można łatwo ponownie włączyć to przetwarzanie rozszerzeń z platformy za pomocą powyższego polecenia, ale ustaw je na wartość "true".
Usuwanie agenta systemu Linux z uruchomionej maszyny wirtualnej
Upewnij się, że wszystkie istniejące rozszerzenia z maszyny wirtualnej zostały wcześniej usunięte zgodnie z powyższymi wersjami.
Krok 1. Usuwanie agenta systemu Linux platformy Azure
Jeśli po prostu usuniesz agenta systemu Linux, a nie skojarzone artefakty konfiguracji, możesz ponownie zainstalować go później. Uruchom jedną z następujących czynności, jako katalog główny, aby usunąć agenta systemu Linux platformy Azure:
Dla systemu Ubuntu 18.04+
sudo apt -y remove walinuxagent
W przypadku oprogramowania Redhat 7.X, 8.X i 9.X
sudo yum -y remove WALinuxAgent
W przypadku systemu SUSE 12.X, 15.X
sudo zypper --non-interactive remove python-azure-agent
Krok 2. (Opcjonalnie) Usuwanie artefaktów agenta systemu Linux platformy Azure
Ważne
Możesz usunąć wszystkie skojarzone artefakty agenta systemu Linux, ale oznacza to, że nie będzie można zainstalować go ponownie w późniejszym terminie. Dlatego zdecydowanie zaleca się, aby najpierw rozważyć wyłączenie agenta systemu Linux, usunięcie agenta systemu Linux przy użyciu powyższego.
Jeśli wiesz, że nigdy nie zainstalujesz ponownie agenta systemu Linux, możesz uruchomić następujące polecenie:
Dla systemu Ubuntu 18.04+
sudo pt -y purge walinuxagent
sudo cp -rp /var/lib/waagent /var/lib/waagent.bkp
sudo rm -rf /var/lib/waagent
sudo rm -f /var/log/waagent.log
Dla oprogramowania Redhat 7.X, 8.X, 9.X
sudo yum -y remove WALinuxAgent
sudo rm -f /etc/waagent.conf.rpmsave
sudo rm -rf /var/lib/waagent
sudo rm -f /var/log/waagent.log
W przypadku systemu SUSE 12.X, 15.X
sudo zypper --non-interactive remove python-azure-agent
sudo rm -f /etc/waagent.conf.rpmsave
sudo rm -rf /var/lib/waagent
sudo rm -f /var/log/waagent.log
Przygotowywanie obrazu bez agenta systemu Linux
Jeśli masz już obraz zawierający skrypt cloud-init i chcesz usunąć agenta systemu Linux, ale nadal aprowizować go przy użyciu narzędzia cloud-init, uruchom kroki opisane w kroku 2 (i opcjonalnie krok 3) jako główny, aby usunąć agenta systemu Linux platformy Azure, a następnie następujące polecenie usunie konfigurację pakietu cloud-init i buforowane dane, a następnie przygotuj maszynę wirtualną do utworzenia obrazu niestandardowego.
sudo cloud-init clean --logs --seed
Anulowanie aprowizacji i tworzenie obrazu
Agent systemu Linux ma możliwość oczyszczenia niektórych istniejących metadanych obrazu z krokiem "waagent -deprovision+user", jednak po jego usunięciu konieczne będzie wykonanie akcji, takich jak poniższe, i usunięcie z niego innych poufnych danych.
Usuń wszystkie istniejące klucze hosta SSH
sudo rm /etc/ssh/ssh_host_*key*
Usuwanie konta administratora
sudo touch /var/run/utmp sudo userdel -f -r <admin_user_account>
Usuwanie hasła głównego
sudo passwd -d root
Po wykonaniu powyższych czynności możesz utworzyć obraz niestandardowy przy użyciu interfejsu wiersza polecenia platformy Azure.
Tworzenie zwykłego obrazu zarządzanego
az vm deallocate -g <resource_group> -n <vm_name>
az vm generalize -g <resource_group> -n <vm_name>
az image create -g <resource_group> -n <image_name> --source <vm_name>
Tworzenie wersji obrazu w galerii obliczeń platformy Azure
az sig image-version create \
-g $sigResourceGroup
--gallery-name $sigName
--gallery-image-definition $imageDefName
--gallery-image-version 1.0.0
--managed-image /subscriptions/00000000-0000-0000-0000-00000000xxxx/resourceGroups/imageGroups/providers/images/MyManagedImage
Tworzenie maszyny wirtualnej na podstawie obrazu, który nie zawiera agenta systemu Linux
Podczas tworzenia maszyny wirtualnej na podstawie obrazu bez agenta systemu Linux należy upewnić się, że konfiguracja wdrożenia maszyny wirtualnej wskazuje, że rozszerzenia nie są obsługiwane na tej maszynie wirtualnej.
Uwaga
Jeśli nie wykonasz powyższych czynności, platforma spróbuje wysłać konfigurację rozszerzenia i przekroczenie limitu czasu po 40 minutach.
Aby wdrożyć maszynę wirtualną z wyłączonymi rozszerzeniami, możesz użyć interfejsu wiersza polecenia platformy Azure z agentem --enable-agent.
az vm create \
--resource-group $resourceGroup \
--name $prodVmName \
--image RedHat:RHEL:8.1-ci:latest \
--admin-username azadmin \
--ssh-key-value "$sshPubkeyPath" \
--enable-agent false
Alternatywnie możesz to zrobić przy użyciu szablonów usługi Azure Resource Manager (ARM), ustawiając wartość "provisionVMAgent": false,
.
"osProfile": {
"computerName": "[parameters('virtualMachineName')]",
"adminUsername": "[parameters('adminUsername')]",
"linuxConfiguration": {
"disablePasswordAuthentication": "true",
"provisionVMAgent": false,
"ssh": {
"publicKeys": [
{
"path": "[concat('/home/', parameters('adminUsername'), '/.ssh/authorized_keys')]",
"keyData": "[parameters('adminPublicKey')]"
Następne kroki
Aby uzyskać więcej informacji, zobacz Provisioning Linux (Aprowizowanie systemu Linux).