Hızlı Başlangıç: PowerShell ile Azure'da Linux sanal makinesi oluşturma
Uygulama: ✔️ Linux VM'leri
Azure PowerShell modülü, PowerShell komut satırından veya betik içinden Azure kaynakları oluşturmak ve yönetmek için kullanılır. Bu hızlı başlangıçta Azure PowerShell modülünü kullanarak Azure’da bir Linux sanal makinesinin (VM) nasıl dağıtılacağı gösterilir. Bu hızlı başlangıçta Canonical'ın Ubuntu 18.04 LTS market görüntüsü 2. Ayrıca VM'nizin çalıştığını görmek için SSH ile VM bağlantısı kurup NGINX web sunucusunu da yükleyeceksiniz.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Azure Cloud Shell’i başlatma
Azure Cloud Shell, bu makaledeki adımları çalıştırmak için kullanabileceğiniz ücretsiz bir etkileşimli kabuktur. Yaygın Azure araçları, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır.
Cloud Shell'i açmak için kod bloğunun sağ üst köşesinden Deneyin'i seçmeniz yeterlidir. Kopyala’yı seçerek kod bloğunu kopyalayın, Cloud Shell’e yapıştırın ve Enter tuşuna basarak çalıştırın.
SSH anahtar çifti oluşturma
SSH anahtar çifti oluşturmak için ssh-keygen kullanın. Bir SSH anahtar çiftiniz varsa bu adımı atlayabilirsiniz.
ssh-keygen -t rsa -b 4096
Anahtar çifti için bir dosya adı girmeniz istenir veya varsayılan konumunu kullanmak için Enter tuşuna /home/<username>/.ssh/id_rsa basın. Ayrıca, seniz anahtarlar için bir parola da oluşturabilirsiniz.
SSH anahtar çiftleri oluşturma hakkında daha ayrıntılı bilgi için bkz. SSHanahtarlarını Windows.
SSH anahtar çiftini Cloud Shell oluşturmanız, Cloud Shell tarafından otomatik olarak oluşturulan bir depolama hesabında depolanır. Anahtarlarınızı alana kadar depolama hesabını veya dosya paylaşımını silmeyin, yoksa VM'ye erişimi kaybedersiniz.
Kaynak grubu oluşturma
New-AzResourceGroup ile birAzure kaynak grubu oluşturun. Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır:
New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"
Sanal ağ kaynakları oluşturma
Bir sanal ağ, alt ağ ve genel IP adresi oluşturun. Bu kaynaklar, VM'ye ağ bağlantısı sağlamak ve VM'yi İnternet'e bağlamak için kullanılır:
# Create a subnet configuration
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name "mySubnet" `
-AddressPrefix 192.168.1.0/24
# Create a virtual network
$vnet = New-AzVirtualNetwork `
-ResourceGroupName "myResourceGroup" `
-Location "EastUS" `
-Name "myVNET" `
-AddressPrefix 192.168.0.0/16 `
-Subnet $subnetConfig
# Create a public IP address and specify a DNS name
$pip = New-AzPublicIpAddress `
-ResourceGroupName "myResourceGroup" `
-Location "EastUS" `
-AllocationMethod Static `
-IdleTimeoutInMinutes 4 `
-Name "mypublicdns$(Get-Random)"
Azure Ağ Güvenlik Grubu ve trafik kuralı oluşturun. Ağ güvenlik Grubu, gelen ve giden kurallarını kullanarak VM'nin güvenliğini sağlar. Aşağıdaki örnekte, TCP bağlantı noktası 22 için SSH bağlantılarına izin veren bir gelen kuralı oluşturulur. Gelen web trafiğine izin vermek amacıyla, TCP bağlantı noktası 80 için de bir gelen kuralı oluşturulur.
# Create an inbound network security group rule for port 22
$nsgRuleSSH = New-AzNetworkSecurityRuleConfig `
-Name "myNetworkSecurityGroupRuleSSH" `
-Protocol "Tcp" `
-Direction "Inbound" `
-Priority 1000 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 22 `
-Access "Allow"
# Create an inbound network security group rule for port 80
$nsgRuleWeb = New-AzNetworkSecurityRuleConfig `
-Name "myNetworkSecurityGroupRuleWWW" `
-Protocol "Tcp" `
-Direction "Inbound" `
-Priority 1001 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 80 `
-Access "Allow"
# Create a network security group
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName "myResourceGroup" `
-Location "EastUS" `
-Name "myNetworkSecurityGroup" `
-SecurityRules $nsgRuleSSH,$nsgRuleWeb
New-AzNetworkInterfaceile bir sanal ağ arabirim kartı (NIC) oluşturun. Sanal NIC, VM'yi bir alt ağa, Ağ Güvenlik Grubu'na ve genel IP adresine bağlar.
# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzNetworkInterface `
-Name "myNic" `
-ResourceGroupName "myResourceGroup" `
-Location "EastUS" `
-SubnetId $vnet.Subnets[0].Id `
-PublicIpAddressId $pip.Id `
-NetworkSecurityGroupId $nsg.Id
Sanal makine oluşturma
PowerShell’de bir VM oluşturmak için kullanılacak görüntü, boyut ve kimlik doğrulaması seçenekleri gibi ayarların olduğu bir yapılandırma oluşturursunuz. Ardından bu yapılandırma VM’yi derlemek için kullanılır.
SSH kimlik bilgilerini, işletim sistemi bilgilerini ve VM boyutunu tanımlayın. Bu örnekte SSH anahtarı ~/.ssh/id_rsa.pub‘da depolanmaktadır.
# Define a credential object
$securePassword = ConvertTo-SecureString ' ' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ("azureuser", $securePassword)
# Create a virtual machine configuration
$vmConfig = New-AzVMConfig `
-VMName "myVM" `
-VMSize "Standard_D1_v2" | `
Set-AzVMOperatingSystem `
-Linux `
-ComputerName "myVM" `
-Credential $cred `
-DisablePasswordAuthentication | `
Set-AzVMSourceImage `
-PublisherName "Canonical" `
-Offer "UbuntuServer" `
-Skus "18.04-LTS" `
-Version "latest" | `
Add-AzVMNetworkInterface `
-Id $nic.Id
# Configure the SSH key
$sshPublicKey = cat ~/.ssh/id_rsa.pub
Add-AzVMSshPublicKey `
-VM $vmconfig `
-KeyData $sshPublicKey `
-Path "/home/azureuser/.ssh/authorized_keys"
Şimdi, New-AzVMile oluşturmak için önceki yapılandırma tanımlarını birleştirin:
New-AzVM `
-ResourceGroupName "myResourceGroup" `
-Location eastus -VM $vmConfig
VM'nizin dağıtılması birkaç dakika sürer. Dağıtım tamamlandıktan sonra bir sonraki bölüme geçin.
Not
Azure, azure sanal makinelerine genel IP adresi atanmamış veya iç Temel sanal makinelerin arka uç havuzunda bulunan varsayılan bir giden erişim IP'Azure Load Balancer. Varsayılan giden erişim IP mekanizması, yapılandırılabilir olmayan bir giden IP adresi sağlar.
Varsayılan giden erişim hakkında daha fazla bilgi için bkz. Azure'da varsayılan giden erişim
Sanal makineye bir genel IP adresi atandığı veya sanal makine giden kuralları olan veya olmayan bir sanal makinenin arka uç havuzuna yerleştiril Standart Load Balancer varsayılan giden erişim IP'sini devre dışı bırakılır. Sanal Azure Sanal Ağ Adres Çevirisi alt ağın alt ağın bir ağ geçidi kaynağı atanırsa, varsayılan giden erişim IP'si devre dışı bırakılır.
Esnek Düzenleme modundaki Sanal Makine Ölçek kümeleri tarafından oluşturulan sanal makinelerin varsayılan giden erişimi yok.
Azure'daki giden bağlantılar hakkında daha fazla bilgi için bkz. Giden bağlantılar için Kaynak Ağ Adresi Çevirisi (SNAT) Kullanma.
VM’ye bağlanma
Genel IP adresini kullanarak VM ile bir SSH bağlantısı oluşturun. VM'nin genel IP adresini görmek için Get-AzPublicIpAddress cmdlet'ini kullanın:
Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select "IpAddress"
SSH anahtar çiftini oluşturmak için kullanılan kabuğu kullanarak aşağıdaki komutu kabuk içine yapıştırarak bir SSH oturumu oluşturun. 10.111.12.123 yerine VM'nizin IP adresini yazın.
ssh azureuser@10.111.12.123
Sorulduğunda, kullanıcı adı azureuser olarak girilmelidir. SSH anahtarlarınızla birlikte bir parola kullanılıyorsa, istendiğinde bu parolayı girmelisiniz.
NGINX yükleme
Sanal makinenizin çalıştığını görmek için NGINX web sunucusunu yükleyin. SSH oturumunuzdan paket kaynaklarınızı güncelleştirip en son NGINX paketini yükleyin.
sudo apt-get -y update
sudo apt-get -y install nginx
İşlemi tamamladığınızda exit yazarak SSH oturumunu kapatın.
Web sunucusunun çalıştığını görme
İstediğiniz web tarayıcısını kullanarak varsayılan NGINX karşılama sayfasını görüntüleyin. VM'nin genel IP adresini web adresi olarak girin. Genel IP adresini VM genel bakış sayfasında veya önceden kullandığınız SSH bağlantı dizesinde bulabilirsiniz.

Kaynakları temizleme
Artık gerekli değilken Remove-AzResourceGroup cmdlet'ini kullanarak kaynak grubunu, VM'yi ve tüm ilgili kaynakları kaldırabilirsiniz:
Remove-AzResourceGroup -Name "myResourceGroup"
Sonraki adımlar
Bu hızlı başlangıçta basit bir sanal makine dağıttınız, bir Ağ Güvenlik Grubu ve kuralı oluşturdunuz ve temel bir web sunucusu yüklediniz. Azure sanal makineleri hakkında daha fazla bilgi için Linux VM’lerine yönelik öğreticiye geçin.