Sdílet prostřednictvím


Zakázání nebo odebrání agenta Linuxu 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 pochopit, jaký virtuální počítač nebude moct dělat po odebrání agenta Linuxu.

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

Platforma Azure hostuje mnoho rozšíření, která se liší od konfigurace virtuálního počítače, monitorování, zabezpečení a utilitních aplikací. Existuje velký výběr rozšíření první a třetí strany, příklady klíčových scénářů, pro které se rozšíření používají:

  • Podpora služeb Azure první strany, jako je Azure Backup, Monitorování, Šifrování disků, Zabezpečení, Replikace lokality a další.
  • Resetování hesla s protokolem SSH
  • 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čů, nástroje pro monitorování virtuálních počítačů a 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í, konfigurací aplikací na zřizování virtuálních počítačů nebo spuštěním v jakémkoli podporovaném systému provozovaném rozšířením po nasazení.

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

V závislosti na vašich potřebách můžete zakázat zpracování rozšíření několika způsoby, 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ázání v řídicí rovině

Pokud si nejste jistí, jestli budete v budoucnu potřebovat rozšíření, můžete nechat agenta Linuxu nainstalovaného na virtuálním počítači a pak zakázat funkci zpracování rozšíření z platformy. Tato možnost je dostupná 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

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

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

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

Krok 1: Odebrání agenta Azure Linux

Pokud jenom odeberete agenta Linuxu a ne přidružené artefakty konfigurace, můžete je později znovu nainstalovat. Pokud chcete odebrat agenta Azure Linux, spusťte jeden z následujících příkazů jako root:

Pro Ubuntu 18.04+

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 Linux

Důležité

Můžete odebrat všechny přidružené artefakty agenta pro Linux, ale to bude znamenat, že ho nebudete moct později přeinstalovat. Proto důrazně doporučujeme nejprve zakázat linuxového agenta a odebrat agenta pro Linux pouze pomocí výše uvedeného.

Pokud víte, že znovu nenainstalujete linuxového agenta, můžete spustit následující příkaz:

Pro 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

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řídit pomocí cloud-init, spusťte kroky v kroku 2 (a volitelně krok 3) jako kořen pro odebrání agenta Azure Linux a pak následující kroky odeberou konfiguraci cloud-init a data uložená 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á z existujících metadat imagí a krok waagent -deprovision+user, ale po jeho odebrání budete muset provést akce, jako je následující, a odebrat z něj všechna ostatní 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 Linuxu

Při vytváření virtuálního počítače z image bez agenta pro Linux je potřeba zajistit, aby konfigurace nasazení virtuálního počítače indikuje, že na tomto virtuálním počítači nejsou podporovaná 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.

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

Případně to můžete udělat pomocí šablon Azure Resource Manageru (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.