Alıştırma - Azure CycleCloud ile kullanmak için cloud-init betiği oluşturma
Küme için düğümler sağlarken, zamanlayıcı temelli değişiklikler etkili olmadan önce işletim sistemi önyükleme işlemi sırasında özel yapılandırma görevleri gerçekleştirebilmek isteyebilirsiniz. Bu görevler arasında yol ortamı değişkenlerini güncelleştirme, Etki Alanı Adı Sistemi (DNS) ad çözümleme ayarlarını yapılandırma veya düğümleri Microsoft Entra Domain Services (AD DS) etki alanına bağlama gibi görevler bulunabilir.
Bu işlevi uygulamak için Azure CycleCloud kümelerinde cloud-init kullanımını keşfetmeye ve her düğümdeki yerel bir dosyanın içeriğini değiştiren basit bir Bash betiğiyle test etmeye karar verirsiniz. Küme düğümlerine bağlanarak ve değiştirilen dosyaların içeriğini gözden geçirerek sonucu doğrulamayı planlıyorsunuz.
Notlar
Cloud-init betikleri yazarken, hedef düğümlerde çalışan işletim sisteminin tanıyabileceği ve işleyebileceği geleneksel kabuk betiği, Python ve YAML gibi herhangi bir betik veya yapılandırma yöntemini kullanabilirsiniz.
Bu alıştırmada aşağıdaki görevleri gerçekleştireceksiniz:
- Görev 1: Azure CycleCloud küme düğümlerine SSH tabanlı kimlik doğrulamasını yapılandırma
- Görev 2: Küme düğümlerine cloud-init betiği ekleme
- Görev 3: Zamanlayıcı düğümünde cloud-init işlevini doğrulama
- Görev 4: İşlem düğümlerinde cloud-init işlevini doğrulama
- 5. Görev: Alıştırma ortamını temizleme
Notlar
Bu alıştırmaya başlamadan önce önceki alıştırmayı başarıyla tamamladığınızdan emin olun.
Görev 1: Azure CycleCloud küme düğümlerine SSH tabanlı kimlik doğrulamasını yapılandırma
Cloud-init betiklerinin yürütülmesini doğrulamak için Azure Cloud Shell'den Azure CycleCloud CLI ile küme düğümlerine bağlanacaksınız. Bu bağlantı SSH anahtar tabanlı kimlik doğrulamasına dayanır, bu nedenle küme düğümlerine dağıtılan ortak anahtara karşılık gelen özel anahtarı Azure Cloud Shell giriş dizinine yüklemeniz gerekir.
Azure Portalı gidin ve istendiğinde, bu modülde kullandığınız Azure aboneliğinde Katkıda Bulunan veya Sahip rolüne sahip bir Microsoft hesabı ya da Microsoft Entra hesabıyla kimlik doğrulaması yapın.
Azure portalında, arama kutusunun yanındaki araç çubuğundaki simgesini seçerek Cloud Shell'i açın ve bash oturumu çalıştırdığınızdan emin olun.
Azure Cloud Shell bölmesindeki bölmenin araç çubuğunda, karşıt yönlere işaret eden dikey ok çifti içeren bir sayfayı görüntüleyen dördüncü simgeyi seçin. Ardından, açılan menüden Yükle'yi seçin.
Aç iletişim kutusunda, özel anahtarı içeren .pem dosyasının konumuna gidin ve Aç'ı seçin.
Cloud Shell'de aşağıdaki komutları çalıştırarak karşıya yüklenen .pem dosyasını doğru konuma taşıyın ve gerekli dosya düzeyi izinlerini yapılandırın (yer tutucuyu
<private_key.pem>.pem dosyasının adıyla değiştirin):mkdir -p ~/.ssh mv private_key.pem ~/.ssh chmod 600 ~/.ssh/cc-ssh-keys.pem
Görev 2: Küme düğümlerine cloud-init betiği ekleme
Küme düğümlerine betik ekleme seçeneği doğrudan Azure CycleCloud grafik arabiriminden kullanılabilir. Zamanlayıcı ve işlem düğümlerine aynı cloud-init betiğini atamak ve işlevselliğini doğrulamak için bunu kullanacaksınız. Betik, /etc/hosts dosyasına 10.10.10.10 cc.contoso.com bir girdi ekler.
Henüz Azure CycleCloud web uygulamasına bağlı değilseniz, başka bir tarayıcı penceresi açın ve https://< IP_address> URL'sine gidin. İstendiğinde devam etmek istediğinizi onaylayın.
Kimlik doğrulaması yapmanız istenirse, Yönetici rolüyle Azure CycleCloud uygulama kullanıcı hesabınızın kimlik bilgilerini sağlayarak oturum açın.
Azure CycleCloud grafik arabiriminde Kümeler sayfasına gidin. Küme listesinde contoso-custom-slurm-lab-cluster girişini ve ardından Düzenle'yi seçin.
Contoso-custom-slurm-lab-cluster düzenle açılır penceresinde Cloud-init girdisini seçin ve Cloud-init yapılandırması bölümündeki zamanlayıcı sekmesinde aşağıdaki betiği girin:
#!/bin/bash echo "10.10.10.10 www.contoso.com" >> /etc/hosts
Aynı açılır pencerede Cloud-init girişi seçili durumdayken kalan sekmelerden her birini ( cuda, hpc ve htc dahil) seçin ve aynı betiği girin. Kaydet'i seçin.
Görev 3: Zamanlayıcı düğümünde cloud-init işlevini doğrulama
Cloud-init işlevini zamanlayıcı düğümünde doğrulamak için kümeyi başlatacaksınız. Bu, zamanlayıcı düğümünün sağlanmasını tetikler. Düğüm çalıştırıldıktan sonra Azure Cloud Shell'den bu düğüme bağlanabilecek ve /etc/hosts dosyasının 10.10.10.10 www.contoso.comgirdisini içerdiğini doğrulayabileceksiniz.
Azure CycleCloud web uygulamasının görüntülendiği tarayıcı penceresinde contoso-custom-slurm-lab-cluster sayfasındaki Başlangıç bağlantısını seçin. Onaylamanız istendiğinde Tamam'ı seçin.
Notlar
Küme zaten çalışıyorsa, güncelleştirilmiş yapılandırmayı uygulamak için kümeyi sonlandırmanız ve yeniden başlatmanız gerekir, aksi takdirde yapılandırma sonraki adımlarda görünmez.
Düğüm listesinde Zamanlayıcı girdisini seçin, Ayrıntılar bölmesinde durumunu izleyin ve Ediniliyor'dan Hazır'a değişene kadar bekleyin.
Notlar
Bu işlem yaklaşık üç dakika sürebilir.
Ayrıntılar bölmesinde Bağlan'ı seçin. Düğüme bağlan: zamanlayıcı açılır penceresindeki CycleCloud CLI'yi Kullanma bölümünde, zamanlayıcı düğümüne bağlanmanıza olanak sağlayan komutu içeren girdiyi seçin ve Kapat'ı seçin:
Notlar
Komutun biçimi
cyclecloud connect scheduler -c contoso-custom-slurm-lab-clusterolmalıdırCloud Shell bölmesiyle web tarayıcısı penceresine geçin ve önceki adımda kopyaladığınız komutu çalıştırın.
Notlar
Komutun çıktısını aşağıdaki biçimde oluşturması gerekir:
m@Azure:~$ cyclecloud connect scheduler -c contoso-custom-slurm-lab-cluster Connecting to cc-admin@40.87.52.25 (contoso-custom-slurm-lab-cluster scheduler) using SSH [cc-admin@ip-0A000304 ~]$Zamanlayıcı düğümüne bağlandığınızda, /etc/hosts dosyasının 10.10.10.10
www.contoso.comgirdisini içerdiğini doğrulamak için aşağıdaki komutu çalıştırın:grep "10.10.10.10 www.contoso.com" /etc/hostsNotlar
Komutun çıktısını aşağıdaki biçimde oluşturması gerekir:
[cc-admin@ip-0A000304 ~]$ grep "10.10.10.10 www.contoso.com" /etc/hosts 10.10.10.10 www.contoso.com
Görev 4: İşlem düğümlerinde cloud-init işlevini doğrulama
Şimdi işlem düğümlerinde cloud-init işlevini doğrulamak için eşdeğer adım dizisini tekrarlayacaksınız.
Önemli
İşlem düğümlerindeki cloud-init işlevini doğrulamak için eşdeğer yordamı uygulayabilmeniz için önce ilgili sanal makine ölçek kümesini kaldırmanız ve yeniden ayırmanız gerekir. Bu adım, Slurm tabanlı kümelere özgüdür çünkü bu durumda, zamanlayıcı otomatik ölçeklendirme tümleştirmesi, Azure CycleCloud'un işlem düğümlerini önceden doldurmasını gerektirir. Sonuç olarak, bu alıştırmada daha önce uyguladığınız cloud-init yapılandırması zaten var olan düğümleri etkilemez.
Zamanlayıcı düğümüne bağlıyken Cloud Shell'de aşağıdaki komutları çalıştırarak Azure CycleCloud kümenizdeki işlem düğümlerini kaldırın ve yeniden dağıtın ve zamanlayıcı düğümüne bağlantıyı sonlandırın:
sudo -i cd /opt/cycle/jetpack/system/bootstrap/slurm ./cyclecloud_slurm.sh remove_nodes ./cyclecloud_slurm.sh scale exit exitNotlar
Bu adımı tamamladığınızda, aşağıdaki düğümleri kaldırmaya çalışılıyor mesajını göreceksiniz ve ardından kümenin yeniden ölçeklendirilmesi tamamlandı mesajı gelecektir.
Bilgisayarınızda, Azure CycleCloud web uygulamasının contoso-custom-slurm-lab-cluster sayfasını görüntüleyen web tarayıcısı penceresine geçin. Düğümler sekmesinde htc satırını seçin ve Ayrıntılar bölmesinde htc-1 girişini ve ardından Eylemler sekmesi üst bilgisini seçin. Açılan menüde Başlat'ı seçin ve onaylamanız istendiğinde Tamam'ı seçin.
Ayrıntılar bölmesinde, yeni başlatılan düğümü izleyin ve durumu Edinme'denHazır'a değişene kadar bekleyin.
Notlar
Bu işlem yaklaşık üç dakika sürebilir.
Ayrıntılar bölmesinde Bağlan'ı seçin. Düğüme bağlan: htc-1 açılır penceresinde, zamanlayıcı düğümüne bağlanmanıza olanak sağlayan komutu içeren CycleCloud CLI'yi Kullanma bölümünde girdiyi seçin ve Kapat'ı seçin:
Notlar
Komutun biçimi
cyclecloud connect htc-1 -c contoso-custom-slurm-lab-clusterolmalıdır.Cloud Shell bölmesine geçin ve önceki adımda kopyaladığınız komutu çalıştırın.
Notlar
Komutun çıktısını aşağıdaki biçimde oluşturması gerekir:
m@Azure:~$ cyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster Connecting to cc-admin@10.0.3.5 (contoso-custom-slurm-lab-cluster htc-1) through SSH bastion at cc-admin@40.87.52.25 [cc-admin@ip-0A000305 ~]$HTC-1 düğümüne bağlandığınızda, /etc/hosts dosyasının 10.10.10.10
www.contoso.comgirdisini içerdiğini doğrulamak için aşağıdaki komutu çalıştırın:cat /etc/hosts | grep "10.10.10.10 www.contoso.com"Notlar
Bu noktaya ulaştığınızda bu modülün bu ve önceki alıştırmalarında dağıtmış olduğunuz tüm kaynakları silmelisiniz. Bu, bu kaynakların Azure aboneliğinize karşı korunmasıyla ilgili ücretlerden kaçınmanıza olanak tanır.
5. Görev: Laboratuvar ortamını temizleme
Azure CycleCloud uygulamasını kullanarak küme özelleştirme testi tamamlandı. Azure kaynaklarının kullanımıyla ilgili gereksiz maliyetleri önlemek için şimdi kümeyi sonlandıracak ve bu modülün alıştırmaları boyunca sağladığınız tüm kaynakları kaldıracaksınız.
Azure CycleCloud web uygulamasının grafik arabirimini görüntüleyen web tarayıcısında contoso-custom-slurm-lab-cluster sayfasındaki Sonlandır bağlantısını seçin ve onaylamanız istendiğinde Tamam'ı seçin.
Sonlandırma işlemini izleyin.
Notlar
Bu işlem, kümenin baş düğümünün rolüne hizmet eden Azure VM'nin devre dışı bırakılmasını içerir. Bu işlem yaklaşık beş dakika sürebilir.
Notlar
Bu laboratuvarda sağladığınız diğer tüm kaynakları silmek için küme kaynaklarını barındıran kaynak gruplarını sileceksiniz.
Azure portalında küme kaynaklarını barındıran kaynak grubunun dikey penceresine gidin, araç çubuğunda Kaynak grubunu sil girişini seçin. Silme işlemini onaylamak için kaynak grubu adını girin metin kutusuna kaynak grubunun adını girin ve Sil'i seçin. Silme işlemini onaylamak için sil'i yeniden seçin.
Notlar
Slurm kaynaklarınız ile ilişkilendirilmiş ek kaynak grupları olabilir. Ek ücretlerden kaçınmak için Slurm ile ilgili bu kaynak gruplarının ve kaynaklarının tümünü sildiğinizden emin olun.
Tebrikler! Bu modülün üçüncü ve son alıştırmasını başarıyla tamamladınız. Bu alıştırmada Azure CycleCloud kümelerinde cloud-init kullanımını incelediniz ve her düğümdeki yerel bir dosyanın içeriğini değiştiren basit bir Bash betiğiyle test ettiniz. Küme düğümlerine bağlanarak ve değiştirilen dosyaların içeriğini gözden geçirerek sonucu doğrulamıştınız. Daha sonra, gereksiz maliyetlerden kaçınmak için kümeyi sonlandırıp bu modülde kullandığınız tüm küme kaynaklarını sildiyseniz.