Azure 中的 Red Hat Enterprise Linux 自備訂閱 Gold 映像

適用於: ✔️ Linux VM

Red Hat Enterprise Linux (RHEL) 映像可透過隨用隨付或自備訂閱 (BYOS) (Red Hat Gold 映像) 模型,在 Azure 中取得。 本文提供 Azure 中 Red Hat Gold 映像的概觀。

注意

RHEL BYOS Gold 映像可在 Azure 公用 (商業) 和 Azure Government 雲端中使用。 不過,這些映像無法在由 21Vianet 或 Azure Blackforest 雲端操作的 Microsoft Azure 中使用。

需要考量的重要事項

  • 此方案中提供的 Red Hat Gold 映像是可供實際執行之用的 RHEL 映像,類似於 Azure Marketplace 中的 RHEL 隨用隨付映像。
  • 這些映像遵循 Azure 上 Red Hat Enterprise Linux 映像中所述的現有原則。
  • 標準支援原則適用於從這些映像建立的 VM。
  • 從 Red Hat Gold 映像佈建的 VM 不會包含與 RHEL 隨用隨付映像相關聯的 RHEL 費用。
  • 這些映像未獲授權。 您必須使用 Red Hat Subscription-Manager 註冊並訂閱 VM,以直接從 Red Hat 取得更新。
  • 您可以使用 Azure Hybrid Benefit,從隨用隨付映像切換至 BYOS。 若要從 RHEL BYOS 轉換為隨用隨付,請按照自備訂閱 Linux 虛擬機器的 Azure Hybrid Benefit (機器翻譯) 一文說明的步驟操作

存取 Red Hat Gold 映像的需求和條件

  1. 熟悉 Red Hat Cloud Access 方案條款。 在 Red Hat 訂用帳戶管理員處啟用您的 Red hat 訂用帳戶以獲得 Cloud Access。 您必須準備好即將註冊進行雲端存取的 Azure 訂閱。

  2. 如果您為 Cloud Access 啟用的 Red Hat 訂閱符合資格需求,則您的 Azure 訂閱會自動啟用 Gold 映像存取。

映像存取的預期時間

完成雲端存取啟用步驟之後,Red Hat 會驗證您是否符合 Red Hat Gold 映像的資格。 如果驗證成功,您會在三小時內收到 Gold 映像的存取權。

使用 Azure 入口網站的 Red Hat Gold 映像

  1. 在您的 Azure 訂閱收到 Red Hat Gold 映像的存取權之後,您便能在 Azure 入口網站中找到這些映像。 前往 [建立資源]>[MarketPlace]

  2. 在頁面頂端,會看到您有私人供應項目。

    Marketplace private offers

  3. 選取紫色連結,或向下捲動至頁面底部,以查看您的私人供應項目。

  4. UI 中的其餘佈建過程與其他現有的 Red Hat 映像並無不同。 選擇您的 RHEL 版本,並遵循提示來佈建您的 VM。 此流程也讓您在最後一個步驟接受映像的條款。

注意

到目前為止,這些步驟都不會啟用您的 Red Hat Gold 映像進行程式設計部署。 如〈其他資訊〉一節所述,需要採取一個額外的步驟。

本文件的其餘部分著重於透過 CLI 方法來佈建和接受映像上的條款。 就最終結果 (已佈建的 RHEL Gold 映像 VM) 而言,UI 和 CLI 是完全可以互換的。

使用 Azure CLI 的 Red Hat Gold 映像

下列指示會引導您使用 Azure CLI,逐步完成 RHEL VM 的初始部署流程。 這些指示假設您已安裝 Azure CLI

重要

請確定下列所有命令的發行者、供應項目、方案和映像參考中,均使用小寫字母。

  1. 請確認您位於所需訂閱中。

    az account show -o=json
    
  2. 為您的 Red Hat Gold 映像 VM 建立資源群組。

    az group create --name <name> --location <location>
    
  3. 接受映像條款。

    選項 1

    az vm image terms accept --publisher redhat --offer rhel-byos --plan <SKU value here> -o=jsonc
    

    範例

    az vm image terms accept --publisher redhat --offer rhel-byos --plan rhel-lvm87 -o=jsonc
    

    選項 2

    az vm image terms accept --urn <SKU value here>
    

    範例

    az vm image terms accept --urn RedHat:rhel-byos:rhel-lvm87:8.7.2023021503
    

    注意

    每個 Azure 訂閱、每個映像 SKU 都必須接受這些條款一次。

  4. (選擇性) 使用下列命令驗證 VM 部署:

    az vm create -n <VM name> -g <resource group name> --image <image urn> --validate
    

    範例:

    az vm create -n rhel-byos-vm -g rhel-byos-group --image redhat:rhel-byos:rhel-lvm8:latest --validate
    
  5. 執行如先前範例中所示的相同命令,但不包含 --validate 引數,來佈建 VM。

    az vm create -n <VM name> -g <resource group name> --image <image urn>
    

    範例:

    az vm create -n rhel-byos-vm -g rhel-byos-group --image redhat:rhel-byos:rhel-lvm8:latest
    
  6. 透過 SSH 連線至您的 VM,並確認您有未獲的授權映像。 若要執行此步驟,請執行 sudo yum repolist。 針對 RHEL 8,請使用 sudo dnf repolist。 這項輸出會要求您使用 Subscription-Manager 向 Red Hat 註冊 VM。

注意

在 RHEL 8 上,dnfyum 是可互相交換的。 如需詳細資訊,請參閱 RHEL 8 系統管理員指南

透過 PowerShell 使用 Red Hat Gold 映像

以下為範例指令碼。 使用您選擇的設定取代資源群組、位置、VM 名稱、登入資訊和其他變數。 發行者和方案資訊必須為小寫。

注意

所有 AzureRM PowerShell 模組的版本已過時。 目前建議使用 Az PowerShell 模組與 Azure 互動。如需詳細資訊,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az (機器翻譯)。

    # Variables for common values
    $resourceGroup = "testbyos"
    $location = "canadaeast"
    $vmName = "test01"

    # Define user name and blank password
    $securePassword = ConvertTo-SecureString 'TestPassword1!' -AsPlainText -Force
    $cred = New-Object System.Management.Automation.PSCredential("azureuser",$securePassword)
    Get-AzureRmMarketplaceTerms -Publisher redhat -Product rhel-byos -Name rhel-lvm87 | Set-AzureRmMarketplaceTerms -Accept

    # Create a resource group
    New-AzureRmResourceGroup -Name $resourceGroup -Location $location

    # Create a subnet configuration
    $subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name mySubnet -AddressPrefix 192.168.1.0/24

    # Create a virtual network
    $vnet = New-AzureRmVirtualNetwork -ResourceGroupName $resourceGroup -Location
    $location `-Name MYvNET -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig

    # Create a public IP address and specify a DNS name
    $pip = New-AzureRmPublicIpAddress -ResourceGroupName $resourceGroup -Location
    $location `-Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4

    # Create an inbound network security group rule for port 22
    $nsgRuleSSH = New-AzureRmNetworkSecurityRuleConfig -Name
    myNetworkSecurityGroupRuleSSH -Protocol Tcp `
    -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -
    DestinationAddressPrefix * `-DestinationPortRange 22 -Access Allow

    # Create a network security group
    $nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location
    $location `-Name myNetworkSecurityGroup -SecurityRules $nsgRuleSSH

    # Create a virtual network card and associate with public IP address and NSG
    $nic = New-AzureRmNetworkInterface -Name myNic -ResourceGroupName $resourceGroup -
    Location $location `-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id

    # Create a virtual machine configuration
    $vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize Standard_D3_v2 |
    Set-AzureRmVMOperatingSystem -Linux -ComputerName $vmName -Credential $cred |
    Set-AzureRmVMSourceImage -PublisherName redhat -Offer rhel-byos -Skus rhel-lvm87 -Version latest | Add-AzureRmVMNetworkInterface -Id $nic.Id
    Set-AzureRmVMPlan -VM $vmConfig -Publisher redhat -Product rhel-byos -Name "rhel-lvm87"

    # Configure SSH Keys
    $sshPublicKey = Get-Content "$env:USERPROFILE\.ssh\id_rsa.pub"
    Add-AzureRmVMSshPublicKey -VM $vmconfig -KeyData $sshPublicKey -Path "/home/azureuser/.ssh/authorized_keys"

    # Create a virtual machine
    New-AzureRmVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig