Azure 'da sanal makineler için Cloud-init desteği

Uygulama hedefi: : Heavy_check_mark: Linux VM 'leri: Heavy_check_mark: Esnek ölçek kümeleri

Bu makalede, Azure 'da sağlama sırasında bir sanal makineyi (VM) veya sanal makine ölçek kümelerini yapılandırmak üzere Cloud-init için mevcut destek açıklanmaktadır. Bu Cloud-init yapılandırması, kaynaklar Azure tarafından sağlandıktan sonra ilk önyüklemede çalıştırılır.

VM sağlama, Azure 'un konak adı, Kullanıcı adı, parola vb. gibi sanal makine oluşturma parametre değerlerini geçi, ve önyükleme yaptığı sürece VM için kullanılabilir hale getirme işlemidir. ' Sağlama Aracısı ' bu değerleri kullanır, VM 'yi yapılandırır ve tamamlandığında rapor gönderir.

Azure, bulut-initve Azure Linux Aracısı (wala)olmak üzere iki sağlama aracısını destekler.

Cloud-init genel bakış

Cloud-init , Linux VM 'yi ilk kez önyüklediğinde bir Linux sanal makinesini özelleştirmek için yaygın olarak kullanılan bir yaklaşımdır. cloud-init’i paket yükleme, dosyalara yazma ve kullanıcılar ile güvenliği yapılandırma işlemleri için kullanabilirsiniz. İlk önyükleme işlemi sırasında Cloud-init çağrıldığından, yapılandırmanızı uygulamak için başka bir adım veya gerekli aracı yoktur. Dosyalarınızı veya diğer girdileri doğru şekilde biçimlendirme hakkında daha fazla bilgi için #cloud-config bkz. Cloud-init belge sitesi. #cloud-config dosyalar, Base64 olarak kodlanmış metin dosyalarıdır.

Cloud-init Ayrıca dağıtımlar arasında da çalışmaktadır. Örneğin, bir paket yüklemek için apt-get install veya yum install kullanmazsınız. Bunun yerine, yüklenecek paketlerin listesini tanımlayabilirsiniz. Cloud-init, seçtiğiniz ayırıcı için yerel paket yönetim aracını otomatik olarak kullanır.

Azure Marketi 'nde Cloud-init özellikli görüntülerin kullanılabilmesini sağlamak için, onaylanan Linux olmayan iş ortaklarıyla etkin bir şekilde çalışıyoruz. Bu görüntüler, Cloud-init dağıtımlarınızın ve yapılandırmalarının VM 'Ler ve sanal makine ölçek kümeleri ile sorunsuz bir şekilde çalışmasını sağlayacak. Başlangıçta, Azure üzerinde işletim sistemi ile Cloud-init işlevlerini sağlamak için, onaylanan Linux 'taki iş ortakları ve yukarı akış ile işbirliği yaptık, paketler güncelleştirilir ve paket depolarında herkese açık hale getirilir.

Cloud-init ' i Azure 'da, desteklenen Linux 'un Azure 'da, paket desteğinin ve sonra görüntü desteğinin kullanılabilir hale getirmek için iki aşama vardır:

  • ' Azure 'da Cloud-init paket desteği ', Cloud-init paketlerinin hangi sürümlerinde desteklendiği veya önizlemede kullanıldığı, bu paketleri özel görüntüde IŞLETIM sistemiyle kullanabilirsiniz.
  • görüntü zaten Cloud-init kullanmak üzere yapılandırıldıysa ' Image Cloud-init Ready ' belgeleri.

Canonical

Publisher/sürüm Sunduğu SKU Sürüm görüntü bulutu-init Ready Azure 'da Cloud-init paketi desteği
Kurallı 20,04 UbuntuServer 20,04-LTS en son evet evet
Kurallı 18,04 UbuntuServer 18,04-LTS en son evet evet

RHEL

Publisher/sürüm Sunduğu SKU Sürüm görüntü bulutu-init Ready Azure 'da Cloud-init paketi desteği
RedHat 7 RHEL 7,7, 7,8, 7_9 en son evet evet
RedHat 8 RHEL 8,1, 8,2, 8_3, 8_4 en son evet evet
  • Gen1 ve Gen2 görüntülerini içeren RHEL 7 (sürüm 7,7) ve RHEL 8 (sürüm 8,1) ile başlayan tüm diğer RedHat SKU 'Ları, Cloud-init kullanılarak sağlanır. RHEL 6 görüntüleri Cloud-init desteklemez.

CentOS

Publisher/sürüm Sunduğu SKU Sürüm görüntü bulutu-init Ready Azure 'da Cloud-init paketi desteği
OpenLogic 7 CentOS 7,7, 7,8, 7,9 en son evet evet
OpenLogic 8 CentOS 8,1, 8,2, 8,3 en son evet evet
  • Gen1 ve Gen2 görüntülerini içeren CentOS 7 (sürüm 7,7) ve CentOS 8 (sürüm 8,1) ile başlayan diğer tüm CentOS SKU 'Ları Cloud-init kullanılarak sağlanır. CentOS 6,10, 7,4, 7,5 ve 7,6 görüntüleri Cloud-init desteklemez.

Not

OpenLogic artık standart dışı bir dalga yazılımıdır

Oracle

Publisher/sürüm Sunduğu SKU Sürüm görüntü bulutu-init Ready Azure 'da Cloud-init paketi desteği
Oracle 7 Oracle Linux 77, 78, ol79 en son evet evet
Oracle 8 Oracle Linux 81, ol82, ol83-lvm, ol84-lvm en son evet evet
  • Hem 1. Nesil hem de 2. Nesil görüntüleri dahil olmak üzere Oracle 7 (sürüm 7.7) ve Oracle 8 'den (sürüm 8.1) başlayan diğer tüm Oracle SKU'ları cloud-init kullanılarak sağlandı.

SUSE SLES

Publisher / Sürüm Sunduğu SKU Sürüm cloud-init ready görüntüsü Azure'da cloud-init paketi desteği
SUSE 15 SLES (SUSE Linux Enterprise Server) sp1, sp2, sp3 en son evet evet
SUSE 12 SLES (SUSE Linux Enterprise Server) sp5 en son evet evet
  • Hem 1. Nesil hem de 2. Nesil görüntüleri dahil olmak üzere SLES 15 (sp1) ve SLES 12 (sp5) ile başlayan diğer tüm SUSE SKU'ları cloud-init kullanılarak sağlanıyor.
  • Ayrıca bu görüntüler cloud-init ile de sağlandı -
Publisher / Sürüm Sunduğu SKU / Sürüm
SUSE 12 SLES (SUSE Linux Enterprise Server) sles-{byos/sap/sap-byos}:12-sp4:2020.06.10
SUSE 12 SLES (SUSE Linux Enterprise Server) sles-{byos/sap/sap-byos}:12-sp3:2020.06.10
SUSE 12 SLES (SUSE Linux Enterprise Server) sles-{byos/sap/sap-byos}:12-sp2:2020.06.10
SUSE 15 SLES (SUSE Linux Enterprise Server) manager-proxy-4-byosgen1:2020.06.10
SUSE 15 SLES (SUSE Linux Enterprise Server) manager-server-4-byos:gen1:2020.06.10

Debian

Publisher / Sürüm Sunduğu SKU Sürüm cloud-init ready görüntüsü Azure'da cloud-init paketi desteği
debian (Gen1) debian-10 10-cloudinit 10:0.20201013.422 evet evet - paket sürümünden destek: 20.2-2~deb10u1
debian (2. Nesil) debian-10 10-cloudinit-gen2 0.20201013.422 evet evet - paket sürümünden destek: 20.2-2~deb10u1

Şu Azure Stack, cloud-init özellikli görüntülerin sağlanmasını destekleyecektir.

cloud-init ile Linux Aracısı (WALA) arasındaki fark nedir?

WALA, VM'leri sunun ve yapılandırılması ve Azure uzantılarını işlemesi için kullanılan Azure platformuna özgü bir aracıdır.

Mevcut cloud-init müşterilerinin mevcut cloud-init betiklerini kullanmasına veya yeni müşterilerin zengin cloud-init yapılandırma işlevlerinden yararlanmasına izin vermek için VM'leri Linux Aracısı yerine cloud-init'i kullanmak üzere yapılandırma görevini geliştir ediyoruz. Linux sistemlerini yapılandırmak için cloud-init betiklerine yatırım yaptıysanız, cloud-init işlemlerini etkinleştirmek için ek ayar gerekmez.

cloud-init Azure uzantılarını işleyemzemektedir, bu nedenle wala görüntüde uzantıları işlemeye devam etmek için gereklidir, ancak cloud-init tarafından sağlandı olarak dönüştürülen onaylanan Linux dağıtım görüntüleri için WALA'nın yüklenmiş olması ve doğru şekilde kurulumunun sağlanması gerekir.

VM oluştururken, sağlama zamanında Azure CLI anahtarını dahil ediyorsanız cloud-init veya WALA, VM'yi sağlamak ve dağıtımı varsayılan değerlerle tamamlamak için gereken en düşük VM sağlama parametrelerini --custom-data alır. anahtarıyla cloud-init yapılandırmasına başvurursanız, özel verilerinizde bulunan her şey VM'nin ilk yüklemesinde --custom-data cloud-init tarafından kullanılabilir.

VM'lere uygulanan cloud-init yapılandırmalarında zaman kısıtlaması olmaz ve dağıtımın zaman out ile başarısız olmasına neden olmaz. WALA için bu durum doğru değildir; WALA varsayılanlarını özel verileri işecek şekilde değiştirirsiniz, 40 dakikalık toplam VM sağlama süresi iznini aşamaz, bu durumda VM Oluşturma başarısız olur.

UDF sürücüsü olmadan cloud-init VM sağlama

cloud-init 21.2'den itibaren cloud-init'i kullanarak UDF sürücüsü olmadan Azure'da vm sabilirsiniz. Görüntüde bir UDF sürücüsü yoksa cloud-init, VM'yi sağlama için Azure Instance Metadata Service meta verileri kullanır. Bu seçeneğin yalnızca SSH anahtarı ve kullanıcı verileri için çalıştığını unutmayın. Sağlama sırasında bir VM'ye parola veya özel veri geçmek için UDF sürücüsü kullansanız gerekir.

Cloud-init özellikli bir Sanal Makine dağıtma

Cloud-init özellikli bir sanal makine dağıtmak, dağıtım sırasında cloud-init özellikli bir dağıtıma başvurmak kadar kolaydır. Linux dağıtım bakımcılar cloud-init'i etkinleştirecek ve temel Azure yayımlanmış görüntüleriyle tümleştirecek. Dağıtmak istediğiniz görüntünün cloud-init etkin olduğunu onaylandıktan sonra, görüntüyü dağıtmak için Azure CLI'yi kullanabilirsiniz.

Bu görüntüyü dağıtmanın ilk adımı az group create komutuyla bir kaynak grubu oluşturmaktır. 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

Sonraki adım, geçerli kabuğundacloud-init.txtadlı bir dosya oluşturmak ve aşağıdaki yapılandırmayı yapıştırmaktır. Bu örnekte, yerel makinenize değil Cloud Shell dosyasında dosyasını oluşturun. İstediğiniz düzenleyiciyi kullanabilirsiniz. Dosyayı oluşturmak ve kullanılabilir düzenleyicilerin listesini görmek için sensible-editor cloud-init.txt adını girin. Nano #1 kullanmak için Seç'i seçin. Başta birinci satır olmak üzere cloud-init dosyasının tamamının doğru bir şekilde kopyalandığından emin olun:

#cloud-config
package_upgrade: true
packages:
  - httpd

Not

cloud-init birden çok giriş türüne sahipse, cloud-init customData/userData öğesinin ilk satırı kullanarak girişi nasıl işlemesi gerektiğini belirtir; örneğin, bir içeriğin cloud-init yapılandırması olarak işlenmesi gerektiğini #cloud-config belirtir.

Dosyadan çıkmak için tuşuna basın, dosyayı kaydetmek için yazın ve ctrl-X y enter çıkışta dosya adını onaylamak için tuşuna basın.

Son adım az vm create komutuyla bir VM oluşturmak olacak.

Aşağıdaki örnek centos74 adlı bir VM oluşturur ve varsayılan anahtar konumu henüz yoksa SSH anahtarları oluşturur. Belirli bir anahtar kümesini kullanmak için --ssh-key-value seçeneğini kullanın. --custom-data parametresini kullanarak cloud-init yapılandırma dosyanızı geçirin. Dosyayı mevcut çalışma dizininizin dışına kaydettiyseniz cloud-init.txt yapılandırmasının tam yolunu belirtin.

az vm create \
  --resource-group myResourceGroup \
  --name centos74 \
  --image OpenLogic:CentOS-CI:7-CI:latest \
  --custom-data cloud-init.txt \
  --generate-ssh-keys 

VM oluşturulduğunda Azure CLI, dağıtımınızla ilgili bilgileri gösterir. publicIpAddress değerini not edin. Bu adres, VM’ye erişmek için kullanılır. VM 'nin oluşturulması, yüklenecek paketlerin ve başlatılacak uygulamayı biraz zaman alır. Azure CLI sizi isteme geri döndürdükten sonra çalışmaya devam eden arka plan görevleri vardır. VM 'de SSH oluşturabilir ve Cloud-init günlüklerini görüntülemek için sorun giderme bölümünde özetlenen adımları kullanabilirsiniz.

Ayrıca, ARM şablonundaki parametrelerigeçirerek Cloud-init ETKIN bir VM dağıtabilirsiniz.

Cloud-init sorunlarını giderme

VM sağlandıktan sonra Cloud-init, --custom-data sanal makineyi yapılandırmak için ' de tanımlanan tüm modüller ve betiklerle çalışır. Yapılandırmadan herhangi bir hata veya türlü sorunu gidermeniz gerekiyorsa, disk_setup runcmd /var/log/Cloud-init.log dosyasında bulunan Cloud-init günlüğünde modül adını (veya örneğin) aramanız gerekir.

Not

Her modül hatası önemli bir Cloud-init genel yapılandırma hatasına neden olmaz. Örneğin, runcmd modülün kullanılması, komut dosyası başarısız olursa, runcmd modülü yürütüldüğü için Cloud-init hala sağlama başarılı olur.

Cloud-init günlüğü hakkında daha fazla bilgi için Cloud-init belgelerine bakın

Sonraki adımlar

Cloud-init ile ilgili sorunları giderin.

Cloud-init yapılandırma değişikliklerinin örnekleri için aşağıdaki belgelere bakın: