Hızlı başlangıç: PowerShell ile Azure'da Linux sanal makinesi oluşturmaQuickstart: Create a Linux virtual machine in Azure with PowerShell

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.The Azure PowerShell module is used to create and manage Azure resources from the PowerShell command line or in scripts. 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.This quickstart shows you how to use the Azure PowerShell module to deploy a Linux virtual machine (VM) in Azure. Bu hızlı başlangıç Canonical’daki Ubuntu 16.04 LTS market görüntüsünü kullanmaktadır.This quickstart uses the Ubuntu 16.04 LTS marketplace image from Canonical. Ayrıca VM'nizin çalıştığını görmek için SSH ile VM bağlantısı kurup NGINX web sunucusunu da yükleyeceksiniz.To see your VM in action, you'll also SSH to the VM and install the NGINX web server.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.If you don't have an Azure subscription, create a free account before you begin.

Azure Cloud Shell'i başlatmaLaunch Azure Cloud Shell

Azure Cloud Shell, bu makaledeki adımları çalıştırmak için kullanabileceğiniz ücretsiz bir etkileşimli kabuktur.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. 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.It has common Azure tools preinstalled and configured to use with your account.

Cloud Shell'i açmak için kod bloğunun sağ üst köşesinden Deneyin'i seçmeniz yeterlidir.To open the Cloud Shell, just select Try it from the upper right corner of a code block. 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.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

SSH anahtar çifti oluşturmaCreate SSH key pair

Bu hızlı başlangıcı tamamlamak için bir SSH anahtar çifti gerekir.You need an SSH key pair to complete this quickstart. Bir SSH anahtar çiftiniz varsa bu adımı atlayabilirsiniz.If you already have an SSH key pair, you can skip this step.

SSH anahtar çifti oluşturmak için bir Bash kabuğu açın ve ssh-keygen komutunu kullanın.Open a bash shell and use ssh-keygen to create an SSH key pair. Yerel bilgisayarınızda Bash kabuğunuz yoksa Azure Cloud Shell'i kullanabilirsiniz.If you don't have a bash shell on your local computer, you can use the Azure Cloud Shell.

ssh-keygen -t rsa -b 2048

PuTTy kullanımı dahil olmak üzere SSH anahtar çiftlerinin oluşturulması konusunda daha ayrıntılı bilgi edinmek için bkz. Windows ile SSH anahtarları kullanma.For more detailed information on how to create SSH key pairs, including the use of PuTTy, see How to use SSH keys with Windows.

SSH anahtar çiftinizi Cloud Shell'i kullanarak oluşturduğunuzda Cloud Shell tarafından otomatik olarak oluşturulan bir depolama hesabında yer alan bir kapsayıcı görüntüsünde depolanır.If you create your SSH key pair using the Cloud Shell, it will be stored in a container image in a storage account that is automatically created by Cloud Shell. Anahtarlarınızı alana kadar depolama hesabını veya içindeki dosya paylaşımını silmeyin. Aksi takdirde VM erişimini kaybedersiniz.Don't delete the storage account, or the files share within it, until after you have retrieved your keys or you will lose access to the VM.

Kaynak grubu oluşturmaCreate a resource group

New-AzResourceGroupIle bir Azure Kaynak grubu oluşturun.Create an Azure resource group with New-AzResourceGroup. Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır:A resource group is a logical container into which Azure resources are deployed and managed:

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

Sanal ağ kaynakları oluşturmaCreate virtual network resources

Bir sanal ağ, alt ağ ve genel IP adresi oluşturun.Create a virtual network, subnet, and a public IP address. Bu kaynaklar, VM'ye ağ bağlantısı sağlamak ve VM'yi İnternet'e bağlamak için kullanılır:These resources are used to provide network connectivity to the VM and connect it to the internet:

# 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.Create an Azure Network Security Group and traffic rule. Ağ güvenlik Grubu, gelen ve giden kurallarını kullanarak VM'nin güvenliğini sağlar.The Network Security Group secures the VM with inbound and outbound rules. Aşağıdaki örnekte, TCP bağlantı noktası 22 için SSH bağlantılarına izin veren bir gelen kuralı oluşturulur.In the following example, an inbound rule is created for TCP port 22 that allows SSH connections. Gelen web trafiğine izin vermek amacıyla, TCP bağlantı noktası 80 için de bir gelen kuralı oluşturulur.To allow incoming web traffic, an inbound rule for TCP port 80 is also created.

# 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-Aznetworkınterfaceile bir sanal ağ arabirim kartı (NIC) oluşturun.Create a virtual network interface card (NIC) with New-AzNetworkInterface. Sanal NIC, VM'yi bir alt ağa, Ağ Güvenlik Grubu'na ve genel IP adresine bağlar.The virtual NIC connects the VM to a subnet, Network Security Group, and public IP address.

# 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şturmaCreate a virtual machine

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.To create a VM in PowerShell, you create a configuration that has settings like the image to use, size, and authentication options. Ardından bu yapılandırma VM’yi derlemek için kullanılır.Then the configuration is used to build the VM.

SSH kimlik bilgilerini, işletim sistemi bilgilerini ve VM boyutunu tanımlayın.Define the SSH credentials, OS information, and VM size. Bu örnekte SSH anahtarı ~/.ssh/id_rsa.pub‘da depolanmaktadır.In this example, the SSH key is stored in ~/.ssh/id_rsa.pub.

# 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" | `
Set-AzVMOperatingSystem `
  -Linux `
  -ComputerName "myVM" `
  -Credential $cred `
  -DisablePasswordAuthentication | `
Set-AzVMSourceImage `
  -PublisherName "Canonical" `
  -Offer "UbuntuServer" `
  -Skus "16.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:Now, combine the previous configuration definitions to create with New-AzVM:

New-AzVM `
  -ResourceGroupName "myResourceGroup" `
  -Location eastus -VM $vmConfig

VM'nizin dağıtılması birkaç dakika sürer.It will take a few minutes for your VM to be deployed. Dağıtım tamamlandıktan sonra bir sonraki bölüme geçin.When the deployment is finished, move on to the next section.

VM’ye bağlanmaConnect to the VM

Genel IP adresini kullanarak VM ile bir SSH bağlantısı oluşturun.Create an SSH connection with the VM using the public IP address. VM 'nin genel IP adresini görmek için Get-Azpublicıpaddress cmdlet 'ini kullanın:To see the public IP address of the VM, use the Get-AzPublicIpAddress cmdlet:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select "IpAddress"

SSH anahtar çiftini oluşturmak için kullandığınız Bash kabuğunu kullanarak (Azure Cloud Shell veya yerel Bash kabuğunuz gibi) SSH bağlantı komutunu kabuğa yapıştırarak bir SSH oturumu oluşturun.Using the same bash shell you used to create your SSH key pair (like the Azure Cloud Shell or your local bash shell) paste the SSH connection command into the shell to create an SSH session.

ssh azureuser@10.111.12.123

Sorulduğunda, kullanıcı adı azureuser olarak girilmelidir.When prompted, the login user name is azureuser. SSH anahtarlarınızla birlikte bir parola kullanılıyorsa, istendiğinde bu parolayı girmelisiniz.If a passphrase is used with your SSH keys, you need to enter that when prompted.

NGINX yüklemeInstall NGINX

Sanal makinenizin çalıştığını görmek için NGINX web sunucusunu yükleyin.To see your VM in action, install the NGINX web server. SSH oturumunuzdan paket kaynaklarınızı güncelleştirip en son NGINX paketini yükleyin.From your SSH session, update your package sources and then install the latest NGINX package.

sudo apt-get -y update
sudo apt-get -y install nginx

İşlemi tamamladığınızda exit yazarak SSH oturumunu kapatın.When done, type exit to leave the SSH session.

Web sunucusunu iş başında görünView the web server in action

İstediğiniz web tarayıcısını kullanarak varsayılan NGINX karşılama sayfasını görüntüleyin.Use a web browser of your choice to view the default NGINX welcome page. VM'nin genel IP adresini web adresi olarak girin.Enter the public IP address of the VM as the web address. Genel IP adresini VM genel bakış sayfasında veya önceden kullandığınız SSH bağlantı dizesinde bulabilirsiniz.The public IP address can be found on the VM overview page or as part of the SSH connection string you used earlier.

NGıNX varsayılan karşılama sayfası

Kaynakları temizlemeClean up resources

Artık gerekli değilse, Remove-AzResourceGroup cmdlet 'ini kullanarak kaynak grubunu, VM 'yi ve tüm ilgili kaynakları kaldırabilirsiniz:When no longer needed, you can use the Remove-AzResourceGroup cmdlet to remove the resource group, VM, and all related resources:

Remove-AzResourceGroup -Name "myResourceGroup"

Sonraki adımlarNext steps

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.In this quickstart, you deployed a simple virtual machine, created a Network Security Group and rule, and installed a basic web server. Azure sanal makineleri hakkında daha fazla bilgi için Linux VM’lerine yönelik öğreticiye geçin.To learn more about Azure virtual machines, continue to the tutorial for Linux VMs.