Zakázání nebo odebrání agenta pro Linux z virtuálních počítačů a imagí

Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s ✔️ Linuxem

Před odebráním agenta pro Linux musíte vědět, co virtuální počítač po odebrání agenta pro Linux nepůjde udělat.

Rozšíření virtuálních počítačů Azure jsou malé aplikace, které poskytují úlohy konfigurace a automatizace po nasazení na virtuálních počítačích Azure. Rozšíření se instalují a spravují řídicí rovinou Azure. Je úlohou agenta Azure pro Linux zpracovat příkazy rozšíření platformy a zajistit správný stav rozšíření uvnitř virtuálního počítače.

Platforma Azure hostuje řadu rozšíření, která sahají od konfigurace virtuálních počítačů, monitorování, zabezpečení a aplikací nástrojů. K dispozici je velký výběr rozšíření od třetích stran, příklady klíčových scénářů, pro které se rozšíření používají:

  • Podpora služeb Azure první strany, jako jsou Azure Backup, monitorování, šifrování disků, zabezpečení, replikace lokality a další.
  • SSH / resetování hesla
  • Konfigurace virtuálního počítače – spouštění vlastních skriptů, instalace Chefu, agentů Puppet atd.
  • Produkty třetích stran, jako jsou produkty AV, nástroje pro ohrožení zabezpečení virtuálních počítačů, virtuální počítače a nástroje pro monitorování aplikací.
  • Rozšíření je možné sbalit s novým nasazením virtuálního počítače. Můžou být například součástí většího nasazení, konfigurace aplikací na zřizování virtuálních počítačů nebo spouštět v podporovaných systémech provozovaných rozšířením po nasazení.

Zakázání zpracování rozšíření

V závislosti na vašich potřebách existuje několik způsobů, jak zakázat zpracování rozšíření, ale než budete pokračovat, musíte odebrat všechna rozšíření nasazená na virtuální počítač, například pomocí Azure CLI, můžete vypsat a odstranit:

az vm extension delete -g MyResourceGroup --vm-name MyVm -n extension_name

Poznámka

Pokud výše uvedené kroky neuděláte, platforma se pokusí odeslat konfiguraci rozšíření a vypršení časového limitu po 40 minutách.

Zakázat v řídicí rovině

Pokud si nejste jistí, jestli budete v budoucnu potřebovat rozšíření, můžete na virtuálním počítači nechat nainstalovaného agenta pro Linux a pak zakázat funkci zpracování rozšíření na platformě. Tato možnost je k dispozici ve Microsoft.Compute verzi 2018-06-01 rozhraní API nebo vyšší a nemá závislost na nainstalované verzi agenta pro Linux.

az vm update -g <resourceGroup> -n <vmName> --set osProfile.allowExtensionOperations=false

Zpracování tohoto rozšíření můžete snadno znovu povolit z platformy pomocí výše uvedeného příkazu, ale nastavit ho na true.

Odebrání agenta pro Linux ze spuštěného virtuálního počítače

Ujistěte se, že jste dříve odebrali všechna existující rozšíření z virtuálního počítače, jak je uvedeno výše.

Krok 1: Odebrání agenta Azure pro Linux

Pokud jenom odeberete agenta pro Linux, a ne přidružené artefakty konfigurace, můžete později přeinstalovat. Spuštěním jednoho z následujících kroků jako kořenového agenta odeberte agenta Azure pro Linux:

Pro Ubuntu 18.04 nebo novější

sudo apt -y remove walinuxagent

Pro Redhat 7.X, 8.X a 9.X

sudo yum -y remove WALinuxAgent

Pro SUSE 12.x, 15.x

sudo zypper --non-interactive remove python-azure-agent

Krok 2: (Volitelné) Odebrání artefaktů agenta Azure pro Linux

Důležité

Můžete odebrat všechny přidružené artefakty agenta pro Linux, ale to znamená, že ho nebudete moct později znovu nainstalovat. Proto důrazně doporučujeme nejprve zvážit zakázání agenta pro Linux a odebrání agenta pro Linux pouze pomocí výše uvedených.

Pokud víte, že už nikdy nebudete znovu instalovat agenta pro Linux, můžete spustit následující příkaz:

Pro Ubuntu 18.04 nebo novější

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

Pro 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

Pro 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

Příprava image bez agenta pro Linux

Pokud máte image, která už obsahuje cloud-init, a chcete odebrat agenta pro Linux, ale přesto zřizovat pomocí cloud-init, spusťte kroky v kroku 2 (a volitelně krok 3) jako kořenového agenta Azure pro Linux a pak následující příkaz odebere konfiguraci cloud-init a data v mezipaměti a připraví virtuální počítač k vytvoření vlastní image.

sudo cloud-init clean --logs --seed

Zrušení zřízení a vytvoření image

Agent pro Linux má možnost vyčistit některá existující metadata image pomocí kroku "waagent -deprovision+user", ale po odebrání budete muset provést akce, jako je následující, a odebrat z něj všechna další citlivá data.

  • Odebrání všech existujících klíčů hostitele SSH

    sudo rm /etc/ssh/ssh_host_*key*
    
  • Odstranění účtu správce

    sudo touch /var/run/utmp
    sudo userdel -f -r <admin_user_account>
    
  • Odstranění kořenového hesla

    sudo passwd -d root
    

Po dokončení výše uvedeného postupu můžete vytvořit vlastní image pomocí Azure CLI.

Vytvoření běžné spravované image

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>
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

Vytvoření virtuálního počítače z image, která neobsahuje agenta pro Linux

Když vytváříte virtuální počítač z image bez agenta pro Linux, musíte zajistit, aby konfigurace nasazení virtuálního počítače značí, že se na tomto virtuálním počítači nepodporují rozšíření.

Poznámka

Pokud výše uvedené kroky neuděláte, platforma se pokusí odeslat konfiguraci rozšíření a vypršení časového limitu po 40 minutách.

K nasazení virtuálního počítače se zakázanými rozšířeními můžete použít Azure CLI s --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

Případně to můžete udělat pomocí šablon Azure Resource Manager (ARM) nastavením "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')]"

Další kroky

Další informace najdete v tématu Zřizování Linuxu.