Azure'da Linux VM'sinde paketleri güncelleştirmek ve yüklemek için cloud-init kullanma

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Bu makalede, Azure'da sağlama zamanında bir Linux sanal makinesinde (VM) veya sanal makine ölçek kümelerindeki paketleri güncelleştirmek için cloud-init'in nasıl kullanılacağı gösterilmektedir. Bu cloud-init komut dosyaları, kaynaklar Azure tarafından sağlandıktan sonra ilk önyükleme sırasında çalıştırılır. Cloud-init'in Azure'da yerel olarak nasıl çalıştığı ve desteklenen Linux dağıtımları hakkında daha fazla bilgi için bkz. cloud-init'e genel bakış

Vm'leri cloud-init ile güncelleştirme

Güvenlik amacıyla, vm'yi ilk önyüklemede en son güncelleştirmeleri uygulayacak şekilde yapılandırmak isteyebilirsiniz. Cloud-init farklı Linux dağıtımlarında çalıştığından, paket yöneticisi için apt, zypper veya yum belirtmenize gerek yoktur. Bunun yerine, package_upgrade tanımlayıp cloud-init işleminin kullanımdaki dağıtım için uygun mekanizmayı belirlemesine izin verirsiniz.

Bu örnekte Azure Cloud Shell'i kullanıyoruz. Yükseltme işleminin nasıl çalıştığını görmek için cloud_init_upgrade.txt adlı bir dosya oluşturun ve aşağıdaki yapılandırmayı yapıştırın. İstediğiniz düzenleyiciyi kullanabilirsiniz. Cloud-init dosyasının tamamının, özellikle de ilk satırın doğru kopyalandığından emin olun.

Aşağıdaki metni kopyalayın ve dosyaya yapıştırın cloud_init_upgrade.txt . Cloud-init dosyasının tamamının, özellikle de ilk satırın doğru kopyalandığından emin olun.

#cloud-config
package_upgrade: true
packages:
- httpd

Dağıtmadan önce az group create komutuyla bir kaynak grubu oluşturmanız gerekir. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur.

az group create --name myResourceGroup --location eastus

Şimdi, az vm create komutuyla bir VM oluşturun ve --custom-data parametresi ile cloud-init dosyasını aşağıdaki gibi belirtin:

az vm create \
  --resource-group myResourceGroup \
  --name vmName \
  --image imageCIURN \
  --custom-data cloud_init_upgrade.txt \
  --admin-username azureuser \
  --generate-ssh-keys

Uyarı

myResourceGroup, vmName ve imageCIURN değerlerini uygun şekilde değiştirin. Cloud-init içeren bir görüntünün seçildiğinden emin olun.

Önceki komutun çıkışında gösterilen VM'nizin genel IP adresine SSH. Kendi kullanıcınızı ve publicIpAddress'inizi aşağıdaki gibi girin:

ssh <user>@<publicIpAddress>

Paket yönetim aracını çalıştırın ve güncelleştirmeleri denetleyin:

  • Bekleyen güncelleştirme olmadığını onaylamak için aşağıdaki komutu yürütür
sudo yum check-update

Cloud-init, önyükleme sırasında güncellemeleri kontrol edip yüklediği için, uygulanacak ek güncelleştirmeler olmamalıdır.

  • Aşağıdaki komutu çalıştırarak güncelleştirme işlemini, değiştirilen paketlerin sayısını ve yüklemesini httpd görebilir ve çıkışı gözden geçirebilirsiniz.
sudo yum history
ID     | Command line                                | Date and time    | Action(s)      | Altered
--------------------------------------------------------------------------------------------------
     3 | -y install httpd                            | 2022-02-18 18:30 | Install        |    7
     2 | -y upgrade                                  | 2022-02-18 18:23 | I, O, U        |  321 EE
     1 |                                             | 2021-02-04 19:20 | Install        |  496 EE

Sonraki adımlar

Yapılandırma değişikliklerine ilişkin ek cloud-init örnekleri için aşağıdakilere bakın: