Příprava virtuálního počítače založeného na CentOS pro Azure
Upozornění
Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu ukončení životnosti (EOL). Zvažte použití a plán odpovídajícím způsobem. Další informace najdete v doprovodných materiálech k ukončení životnosti CentOS.
Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️
Zjistěte, jak vytvořit a nahrát virtuální pevný disk Azure (VHD), který obsahuje operační systém Linux založený na CentOS. Další informace naleznete v tématu:
- Příprava virtuálního počítače s CentOS 6.x pro Azure
- Příprava virtuálního počítače s CentOS 7.0 a novějším pro Azure
Požadavky
Tento článek předpokládá, že jste už na virtuální pevný disk nainstalovali operační systém CentOS (nebo podobný odvozený operační systém Linux). Existuje několik nástrojů pro vytvoření souborů .vhd. Příkladem je virtualizační řešení, jako je Hyper-V. Pokyny najdete v tématu Instalace role Hyper-V a konfigurace virtuálního počítače.
Poznámky k instalaci CentOS
- Další tipy k přípravě Linuxu pro Azure najdete v obecných poznámkách k instalaci Linuxu.
- Formát VHDX není v Azure podporovaný, pouze pevný virtuální pevný disk. Disk můžete převést na formát VHD pomocí Správce technologie Hyper-V nebo rutiny
convert-vhd
. Pokud používáte VirtualBox, vyberete pevnou velikost na rozdíl od výchozí hodnoty, která se při vytváření disku dynamicky přiděluje. - Modul jádra vfat musí být v jádru povolený.
- Při instalaci systému Linux doporučujeme používat standardní oddíly místo Správce logických svazků (LVM), což je často výchozí nastavení pro mnoho instalací. Použití oddílů zabraňuje konfliktům názvů LVM s klonovanými virtuálními počítači, zejména v případě, že by se disk s operačním systémem někdy potřeboval připojit k jinému identickému virtuálnímu počítači pro účely řešení potíží. LVM nebo RAID lze také použít na datových discích.
- Je nutná podpora jádra pro připojení uživatelem definovaných funkcí (UDF). Při prvním spuštění v Azure se konfigurace zřizování předá virtuálnímu počítači s Linuxem pomocí média formátovaného uživatelem definovaného uživatelem, které je připojené k hostovi. Agent Azure Linux nebo
cloud-init
musí připojit systém souborů UDF ke čtení konfigurace a zřízení virtuálního počítače. - Verze jádra Linuxu nižší než 2.6.37 nepodporují technologii NUMA v Hyper-V s většími velikostmi virtuálních počítačů. Tento problém primárně ovlivňuje starší distribuce používající upstreamové jádro Centos 2.6.32 a bylo opraveno v Centos 6.6 (jádro-2.6.32-504). Systémy, na kterých běží vlastní jádra starší než 2.6.37 nebo Red Hat Enterprise Linux (RHEL) starší než 2.6.32-504, musí nastavit spouštěcí parametr
numa=off
na příkazovém řádku jádra v grub.conf. Další informace najdete v článku Red Hat KB 436883. - Nenakonfigurujte prohození oddílu na disku s operačním systémem.
- Všechny virtuální pevné disky v Azure musí mít virtuální velikost zarovnanou na 1 MB. Při převodu z nezpracovaného disku na virtuální pevný disk je nutné před převodem zajistit, aby velikost nezpracovaného disku byla násobkem 1 MB. Další informace najdete v poznámkách k instalaci Linuxu.
Poznámka:
Cloud-init >= 21.2 odebere požadavek UDF. Bez povoleného modulu UDF se ale disk CD-ROM během zřizování nepřipevní, což zabrání použití vlastních dat. Alternativním řešením této situace je použití vlastních dat pomocí uživatelských dat. Na rozdíl od vlastních dat nejsou uživatelská data šifrovaná. Další informace naleznete v tématu Formáty uživatelských dat.
CentOS 6.x
Důležité
CentOS 6 dosáhl své EOL a už ji nepodporuje komunita CentOS. Pro tuto verzi nebudou vydány žádné další aktualizace ani opravy zabezpečení, které by mohly být ohroženy potenciálními bezpečnostními riziky. Důrazně doporučujeme upgradovat na novější verzi CentOS, abyste zajistili bezpečnost a stabilitu systému. Pokud potřebujete další pomoc, obraťte se na it oddělení nebo správce systému.
Ve Správci technologie Hyper-V vyberte virtuální počítač.
Výběrem možnosti Připojit otevřete okno konzoly pro virtuální počítač.
V CentOS 6
NetworkManager
může kolidovat s agentem Azure Linux. Odinstalujte tento balíček:sudo rpm -e --nodeps NetworkManager
Vytvořte nebo upravte soubor
/etc/sysconfig/network
a přidejte následující text:NETWORKING=yes HOSTNAME=localhost.localdomain
Vytvořte nebo upravte soubor
/etc/sysconfig/network-scripts/ifcfg-eth0
a přidejte následující text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Upravte pravidla udev, aby se zabránilo generování statických pravidel pro ethernetová rozhraní. Tato pravidla můžou způsobovat problémy při klonování virtuálního počítače v Azure nebo Hyper-V:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
Ujistěte se, že se síťová služba spouští při spuštění:
sudo chkconfig network on
Pokud chcete použít zrcadla OpenLogic hostovaná v datacentrech Azure, nahraďte
/etc/yum.repos.d/CentOS-Base.repo
soubor následujícími úložišti. Tato akce také přidá úložiště [openlogic], které obsahuje další balíčky, jako je agent Azure Linux:[openlogic] name=CentOS-$releasever - openlogic packages for $basearch baseurl=http://olcentgbl.trafficmanager.net/openlogic/$releasever/openlogic/$basearch/ enabled=1 gpgcheck=0 [base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #released updates [updates] name=CentOS-$releasever - Updates #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #additional packages that might be useful [extras] name=CentOS-$releasever - Extras #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Poznámka:
Zbytek tohoto článku předpokládá, že používáte aspoň
[openlogic]
úložiště, které se používá k instalaci agenta Azure Linux.Přidejte následující řádek:
/etc/yum.conf
http_caching=packages
Vymažte aktuální metadata yum a aktualizujte systém nejnovějšími balíčky:
sudo yum clean all
Pokud nevytvoříte image pro starší verzi CentOS, doporučujeme aktualizovat všechny balíčky na nejnovější verzi:
sudo yum -y update
Po spuštění tohoto příkazu může být vyžadováno restartování.
Volitelné: Nainstalujte ovladače pro linuxové integrační služby (LIS).
Důležité
Tento krok se vyžaduje pro CentOS 6.3 a starší a je volitelný pro pozdější verze.
sudo rpm -e hypervkvpd ## (might return an error if not installed, that's OK) sudo yum install microsoft-hyper-v
Případně můžete postupovat podle pokynů k ruční instalaci na stránce pro stažení LIS a nainstalovat rpm na virtuální počítač.
Nainstalujte agenta Azure s Linuxem a závislosti. Spusťte a povolte
waagent
službu:sudo yum install python-pyasn1 WALinuxAgent sudo service waagent start sudo chkconfig waagent on
Balíček WALinuxAgent odebere
NetworkManager
balíčky aNetworkManager-gnome
balíčky, pokud ještě nebyly odebrány, jak je popsáno v kroku 3.Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Pokud chcete tento krok provést, otevřete
/boot/grub/menu.lst
v textovém editoru a ujistěte se, že výchozí jádro obsahuje následující parametry:console=ttyS0 earlyprintk=ttyS0 rootdelay=300
Tato úprava také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port, který může pomoct podpora Azure s problémy s laděním.
Doporučujeme také odebrat následující parametry:
rhgb quiet crashkernel=auto
Grafické a tiché spouštění není užitečné v cloudovém prostředí, kde chcete, aby se všechny protokoly odesílaly na sériový port. Možnost
crashkernel
můžete nechat nakonfigurovanou, pokud chcete. Tento parametr ale snižuje množství dostupné paměti na virtuálním počítači o 128 MB nebo více, což může být problém u menších velikostí virtuálních počítačů.Důležité
CentOS 6.5 a starší musí také nastavit parametr
numa=off
jádra . Další informace najdete v článku Red Hat KB 436883.Ujistěte se, že je server Secure Shell nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění. Toto nastavení je obvykle výchozí.
Nevytvávejte místo prohození na disku s operačním systémem.
Agent Azure s Linuxem může automaticky nakonfigurovat místo prohození pomocí disku místního prostředku, který je připojený k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Místní disk prostředku je dočasný disk a může se vyprázdnit při zrušení zřízení virtuálního počítače. Po instalaci agenta Azure Linuxu (viz předchozí krok) odpovídajícím způsobem upravte následující parametry
/etc/waagent.conf
:ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
Zrušte zřízení virtuálního počítače a připravte ho na zřizování v Azure:
sudo waagent -force -deprovision+user sudo export HISTSIZE=0
Poznámka:
Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení.
Ve Správci technologie Hyper-V vyberte akci>vypnout. Váš virtuální pevný disk s Linuxem je teď připravený k nahrání do Azure.
CentOS 7.0+
Pokud používáte CentOS 7.0+, postupujte podle kroků v dalších částech.
Změny v CentOS 7 (a podobné deriváty)
Příprava virtuálního počítače s CentOS 7 pro Azure se podobá CentOS 6. Stojí za zmínku několik důležitých rozdílů:
Balíček
NetworkManager
už není v konfliktu s agentem Azure Linux. Tento balíček je ve výchozím nastavení nainstalovaný a doporučujeme ho neodebrat.GRUB2 se teď používá jako výchozí spouštěcí zavaděč, takže se změnil postup úprav parametrů jádra. (Viz část Kroky konfigurace.)
XFS je teď výchozím systémem souborů. Systém souborů ext4 je stále možné použít, pokud chcete.
Protože služba CentOS 8 Stream a novější už ve výchozím nastavení nezahrnují
network.service
, musíte ji nainstalovat ručně:sudo yum install network-scripts sudo systemctl enable network.service
Kroky konfigurace
Ve Správci technologie Hyper-V vyberte virtuální počítač.
Výběrem možnosti Připojit otevřete okno konzoly pro virtuální počítač.
Vytvořte nebo upravte soubor
/etc/sysconfig/network
a přidejte následující text:NETWORKING=yes HOSTNAME=localhost.localdomain
Vytvořte nebo upravte soubor
/etc/sysconfig/network-scripts/ifcfg-eth0
a přidejte následující text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no NM_CONTROLLED=no
Upravte pravidla udev, aby se zabránilo generování statických pravidel pro ethernetová rozhraní. Tato pravidla můžou způsobovat problémy při klonování virtuálního počítače v Azure nebo Hyper-V:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
Pokud chcete použít
OpenLogic
zrcadla hostovaná v datacentrech Azure, nahraďte soubor /etc/yum.repos.d/CentOS-Base.repo následujícím úložištěm. Tato akce také přidá úložiště [openlogic], které obsahuje balíčky pro agenta Azure Linux:[openlogic] name=CentOS-$releasever - openlogic packages for $basearch baseurl=http://olcentgbl.trafficmanager.net/openlogic/$releasever/openlogic/$basearch/ enabled=1 gpgcheck=0 [base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that might be useful [extras] name=CentOS-$releasever - Extras #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Poznámka:
Zbytek tohoto článku předpokládá, že používáte aspoň
[openlogic]
úložiště, které se používá k instalaci agenta Azure Linux.Vymažte aktuální metadata yum a nainstalujte všechny aktualizace:
sudo yum clean all
Pokud nevytvoříte image pro starší verzi CentOS, doporučujeme aktualizovat všechny balíčky na nejnovější verzi:
sudo yum -y update
Po spuštění tohoto příkazu může být vyžadováno restartování.
Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Pokud chcete tento krok provést, otevřete
/etc/default/grub
ho v textovém editoru a upravteGRUB_CMDLINE_LINUX
parametr. Příklad:GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Tato úprava také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port, který může pomoct podpora Azure s problémy s laděním. Vypne také nové zásady vytváření názvů CentOS 7 pro síťové karty. Doporučujeme také odebrat následující parametry:
rhgb quiet crashkernel=auto
Grafické a tiché spouštění není užitečné v cloudovém prostředí, kde chcete, aby se všechny protokoly odesílaly na sériový port. Možnost
crashkernel
můžete nechat nakonfigurovanou, pokud chcete. Tento parametr ale snižuje množství dostupné paměti na virtuálním počítači o 128 MB nebo více, což může být problém u menších velikostí virtuálních počítačů.Po dokončení úprav
/etc/default/grub
znovu sestavte konfiguraci grubu:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Poznámka:
Pokud nahráváte virtuální počítač s povoleným rozhraním UEFI, příkaz pro aktualizaci grubu je
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
. Modul jádra vfat musí být také v jádru povolený. V opačném případě se zřizování nezdaří.Ujistěte se, že je povolený modul udf. Odebrání nebo zakázání způsobí selhání zřizování nebo spuštění. (_Cloud-init >= 21.2 odebere požadavek udf. Další informace najdete v horní části dokumentu.)
Pokud vytváříte image z VMware, VirtualBoxu nebo KVM, ujistěte se, že jsou ovladače Hyper-V součástí initramfs:
Upravit
/etc/dracut.conf
a přidat obsah:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Znovu sestavte initramfs:
sudo dracut -f -v
Nainstalujte agenta Azure s Linuxem a závislosti pro rozšíření virtuálních počítačů Azure:
sudo yum install python-pyasn1 WALinuxAgent sudo systemctl enable waagent
Instalace
cloud-init
pro zpracování zřizování:sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
- Konfigurovat
waagent
procloud-init
:
sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=auto/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
sudo echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg
sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS" sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOF if [[ -f /mnt/swapfile ]]; then echo Removing swapfile - RHEL uses a swapfile by default swapoff /mnt/swapfile rm /mnt/swapfile -f fi echo "Add console log file" cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOF
- Konfigurovat
Konfigurace prohození:
Nevytvávejte místo prohození na disku s operačním systémem.
Dříve se agent Azure s Linuxem použil k automatické konfiguraci prohození místa pomocí místního disku prostředku připojeného k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Teď ale
cloud-init
tento krok zpracuje. K vytvoření prohození souboru nesmíte použít agenta Linuxu. Odpovídajícím způsobem upravte následující parametry/etc/waagent.conf
:sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
Pokud chcete připojit, formátovat a vytvořit prohození souboru, můžete:
Tento příkaz předejte jako
cloud-init
konfiguraci při každém vytvoření virtuálního počítače.K tomuto kroku při každém vytvoření virtuálního počítače použijte direktivu
cloud-init
upečenou do image:sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf sudo cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF #cloud-config # Generated by Azure cloud image build disk_setup: ephemeral0: table_type: mbr layout: [66, [33, 82]] overwrite: True fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
Spuštěním následujících příkazů virtuální počítač zrušte a připravte ho na zřízení v Azure.
Poznámka:
Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení.
sudo rm -f /var/log/waagent.log sudo cloud-init clean sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0
Ve Správci technologie Hyper-V vyberte akci>vypnout. Váš virtuální pevný disk s Linuxem je teď připravený k nahrání do Azure.
Související obsah
Teď jste připraveni použít virtuální pevný disk CentOS s Linuxem k vytvoření nových virtuálních počítačů v Azure. Pokud soubor .vhd nahráváte do Azure poprvé, přečtěte si téma Vytvoření virtuálního počítače s Linuxem z vlastního disku.