Gyorsútmutató: Azure Red Hat OpenShift-fürt üzembe helyezése Azure Resource Manager-sablonnal vagy Bicep-fájllal
Ez a cikk azt ismerteti, hogyan hozhat létre Azure Red Hat OpenShift-fürtöt Azure Resource Manager-sablon (ARM-sablon) vagy Bicep használatával. Az Azure Red Hat OpenShift-fürtöt a PowerShell vagy az Azure parancssori felülete (Azure CLI) használatával helyezheti üzembe.
Az Azure Resource Manager-sablon egy JavaScript Object Notation (JSON) fájl, amely meghatározza a projekt infrastruktúráját és konfigurációját. A sablon deklaratív szintaxist használ. Az üzembe helyezés létrehozásához szükséges programozási parancsok sorozatának megírása nélkül írhatja le a tervezett üzembe helyezést.
A Bicep tartományspecifikus nyelv (DSL), amely deklaratív szintaxist használ az Azure-erőforrások üzembe helyezéséhez. Egy Bicep-fájlban definiálja az Azure-ban üzembe helyezni kívánt infrastruktúrát, majd a fejlesztési életciklus során ezt a fájlt használja az infrastruktúra ismételt üzembe helyezéséhez. Az erőforrások üzembe helyezése konzisztens módon működik.
Előfeltételek
Aktív előfizetéssel rendelkező Azure-fiókra van szükség. Ha még nem rendelkezik ilyen fiókkal, ingyenesen létrehozhat egy fiókot.
Felhasználói hozzáférési rendszergazdai és közreműködői szerepkörök hozzárendelésének lehetősége. Ha nem tudja ezt a képességet, forduljon a Microsoft Entra rendszergazdájához a szerepkörök kezeléséhez.
Egy Red Hat-fiók. Ha nem rendelkezik ilyen fiókkal, regisztrálnia kell egy fiókot.
Lekéréses titkos kód az Azure Red Hat OpenShift-fürthöz. Töltse le a lekéréses titkos kódfájlt a Red Hat OpenShift Cluster Manager webhelyről.
Ha helyileg szeretné futtatni az Azure PowerShell-kódot, az Azure PowerShellt.
Ha helyileg szeretné futtatni az Azure CLI-kódot:
- Bash-rendszerhéj (például Git Bash, amely a Windows Git részét képezi).
- Azure parancssori felület (CLI).
ARM-sablon vagy Bicep-fájl létrehozása
Válasszon egy Azure Resource Manager-sablont (ARM-sablont) vagy egy Azure Bicep-fájlt. Ezután üzembe helyezheti a sablont az Azure parancssor (azure-cli) vagy a PowerShell használatával.
ARM-sablon létrehozása
Az alábbi példa bemutatja, hogyan kell kinéznie az ARM-sablonnak az Azure RedHat OpenShift-fürthöz való konfiguráláskor.
A sablon három Azure-erőforrást határoz meg:
- Microsoft.Network/virtualNetworks
- Microsoft.Network/virtualNetworks/providers/roleAssignments
- Microsoft.RedHatOpenShift/OpenShiftClusters
További Azure Red Hat OpenShift-sablonminták találhatók a Red Hat OpenShift webhelyén.
Mentse a következő példát azuredeploy.bicep néven:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location" : {
"type": "string",
"defaultValue": "eastus",
"metadata": {
"description": "Location"
}
},
"domain": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "Domain Prefix"
}
},
"pullSecret": {
"type": "string",
"metadata": {
"description": "Pull secret from cloud.redhat.com. The json should be input as a string"
}
},
"clusterVnetName": {
"type": "string",
"defaultValue": "aro-vnet",
"metadata": {
"description": "Name of ARO vNet"
}
},
"clusterVnetCidr": {
"type": "string",
"defaultValue": "10.100.0.0/15",
"metadata": {
"description": "ARO vNet Address Space"
}
},
"workerSubnetCidr": {
"type": "string",
"defaultValue": "10.100.70.0/23",
"metadata": {
"description": "Worker node subnet address space"
}
},
"masterSubnetCidr": {
"type": "string",
"defaultValue": "10.100.76.0/24",
"metadata": {
"description": "Master node subnet address space"
}
},
"masterVmSize" : {
"type": "string",
"defaultValue": "Standard_D8s_v3",
"metadata": {
"description": "Master Node VM Type"
}
},
"workerVmSize": {
"type": "string",
"defaultValue": "Standard_D4s_v3",
"metadata": {
"description": "Worker Node VM Type"
}
},
"workerVmDiskSize": {
"type" : "int",
"defaultValue": 128,
"minValue": 128,
"metadata": {
"description": "Worker Node Disk Size in GB"
}
},
"workerCount": {
"type": "int",
"defaultValue": 3,
"minValue": 3,
"metadata": {
"description": "Number of Worker Nodes"
}
},
"podCidr": {
"type": "string",
"defaultValue": "10.128.0.0/14",
"metadata": {
"description": "Cidr for Pods"
}
},
"serviceCidr": {
"type": "string",
"defaultValue": "172.30.0.0/16",
"metadata": {
"decription": "Cidr of service"
}
},
"clusterName" : {
"type": "string",
"metadata": {
"description": "Unique name for the cluster"
}
},
"tags": {
"type": "object",
"defaultValue" : {
"env": "Dev",
"dept": "Ops"
},
"metadata": {
"description": "Tags for resources"
}
},
"apiServerVisibility": {
"type": "string",
"allowedValues": [
"Private",
"Public"
],
"defaultValue": "Public",
"metadata": {
"description": "Api Server Visibility"
}
},
"ingressVisibility": {
"type": "string",
"allowedValues": [
"Private",
"Public"
],
"defaultValue": "Public",
"metadata": {
"description": "Ingress Visibility"
}
},
"aadClientId" : {
"type": "string",
"metadata": {
"description": "The Application ID of an Azure Active Directory client application"
}
},
"aadObjectId": {
"type": "string",
"metadata": {
"description": "The Object ID of an Azure Active Directory client application"
}
},
"aadClientSecret" : {
"type":"securestring",
"metadata": {
"description": "The secret of an Azure Active Directory client application"
}
},
"rpObjectId": {
"type": "String",
"metadata": {
"description": "The ObjectID of the Resource Provider Service Principal"
}
}
},
"variables": {
"contribRole": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]"
},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2020-05-01",
"name": "[parameters('clusterVnetName')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('clusterVnetCidr')]"
]
},
"subnets": [
{
"name": "master",
"properties": {
"addressPrefix": "[parameters('masterSubnetCidr')]",
"serviceEndpoints": [
{
"service": "Microsoft.ContainerRegistry"
}
],
"privateLinkServiceNetworkPolicies": "Disabled"
}
},
{
"name": "worker",
"properties": {
"addressPrefix": "[parameters('workerSubnetCidr')]",
"serviceEndpoints": [
{
"service": "Microsoft.ContainerRegistry"
}
]
}
}]
}
},
{
"type": "Microsoft.Network/virtualNetworks/providers/roleAssignments",
"apiVersion": "2018-09-01-preview",
"name": "[concat(parameters('clusterVnetName'), '/Microsoft.Authorization/', guid(resourceGroup().id, deployment().name, parameters('aadObjectId')))]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('clusterVnetName'))]"
],
"properties": {
"roleDefinitionId": "[variables('contribRole')]",
"principalId":"[parameters('aadObjectId')]"
}
},
{
"type": "Microsoft.Network/virtualNetworks/providers/roleAssignments",
"apiVersion": "2018-09-01-preview",
"name": "[concat(parameters('clusterVnetName'), '/Microsoft.Authorization/', guid(resourceGroup().id, deployment().name, parameters('rpObjectId')))]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('clusterVnetName'))]"
],
"properties": {
"roleDefinitionId": "[variables('contribRole')]",
"principalId":"[parameters('rpObjectId')]"
}
},
{
"type": "Microsoft.RedHatOpenShift/OpenShiftClusters",
"apiVersion": "2020-04-30",
"name": "[parameters('clusterName')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('clusterVnetName'))]"
],
"properties": {
"clusterProfile": {
"domain": "[parameters('domain')]",
"resourceGroupId": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/aro-', parameters('domain'))]",
"pullSecret": "[parameters('pullSecret')]"
},
"networkProfile": {
"podCidr": "[parameters('podCidr')]",
"serviceCidr": "[parameters('serviceCidr')]"
},
"servicePrincipalProfile": {
"clientId": "[parameters('aadClientId')]",
"clientSecret": "[parameters('aadClientSecret')]"
},
"masterProfile": {
"vmSize": "[parameters('masterVmSize')]",
"subnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('clusterVnetName'), 'master')]"
},
"workerProfiles": [
{
"name": "worker",
"vmSize": "[parameters('workerVmSize')]",
"diskSizeGB": "[parameters('workerVmDiskSize')]",
"subnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('clusterVnetName'), 'worker')]",
"count": "[parameters('workerCount')]"
}
],
"apiserverProfile": {
"visibility": "[parameters('apiServerVisibility')]"
},
"ingressProfiles": [
{
"name": "default",
"visibility": "[parameters('ingressVisibility')]"
}
]
}
}
],
"outputs": {
"clusterCredentials": {
"type": "object",
"value": "[listCredentials(resourceId('Microsoft.RedHatOpenShift/OpenShiftClusters', parameters('clusterName')), '2020-04-30')]"
},
"oauthCallbackURL": {
"type": "string",
"value": "[concat('https://oauth-openshift.apps.', parameters('domain'), '.', parameters('location'), '.aroapp.io/oauth2callback/AAD')]"
}
}
}
Bicep-fájl létrehozása
Az alábbi példa bemutatja, hogyan kell kinéznie az Azure Bicep-fájlnak, amikor az Azure Red Hat OpenShift-fürthöz van konfigurálva.
A Bicep-fájl három Azure-erőforrást határoz meg:
- Microsoft.Network/virtualNetworks
- Microsoft.Network/virtualNetworks/providers/roleAssignments
- Microsoft.RedHatOpenShift/OpenShiftClusters
További Azure Red Hat OpenShift-sablonok találhatók a Red Hat OpenShift webhelyén.
Hozza létre a következő Bicep-fájlt, amely tartalmazza az Azure Red Hat OpenShift-fürt definícióját. Az alábbi példa bemutatja, hogyan kell kinéznie a Bicep-fájlnak a konfiguráláskor.
Mentse a következő fájlt azuredeploy.bicep néven:
@description('Location')
param location string = 'eastus'
@description('Domain Prefix')
param domain string = ''
@description('Pull secret from cloud.redhat.com. The json should be input as a string')
param pullSecret string
@description('Name of ARO vNet')
param clusterVnetName string = 'aro-vnet'
@description('ARO vNet Address Space')
param clusterVnetCidr string = '10.100.0.0/15'
@description('Worker node subnet address space')
param workerSubnetCidr string = '10.100.70.0/23'
@description('Master node subnet address space')
param masterSubnetCidr string = '10.100.76.0/24'
@description('Master Node VM Type')
param masterVmSize string = 'Standard_D8s_v3'
@description('Worker Node VM Type')
param workerVmSize string = 'Standard_D4s_v3'
@description('Worker Node Disk Size in GB')
@minValue(128)
param workerVmDiskSize int = 128
@description('Number of Worker Nodes')
@minValue(3)
param workerCount int = 3
@description('Cidr for Pods')
param podCidr string = '10.128.0.0/14'
@metadata({
description: 'Cidr of service'
})
param serviceCidr string = '172.30.0.0/16'
@description('Unique name for the cluster')
param clusterName string
@description('Tags for resources')
param tags object = {
env: 'Dev'
dept: 'Ops'
}
@description('Api Server Visibility')
@allowed([
'Private'
'Public'
])
param apiServerVisibility string = 'Public'
@description('Ingress Visibility')
@allowed([
'Private'
'Public'
])
param ingressVisibility string = 'Public'
@description('The Application ID of an Azure Active Directory client application')
param aadClientId string
@description('The Object ID of an Azure Active Directory client application')
param aadObjectId string
@description('The secret of an Azure Active Directory client application')
@secure()
param aadClientSecret string
@description('The ObjectID of the Resource Provider Service Principal')
param rpObjectId string
@description('Specify if FIPS validated crypto modules are used')
@allowed([
'Enabled'
'Disabled'
])
param fips string = 'Disabled'
@description('Specify if master VMs are encrypted at host')
@allowed([
'Enabled'
'Disabled'
])
param masterEncryptionAtHost string = 'Disabled'
@description('Specify if worker VMs are encrypted at host')
@allowed([
'Enabled'
'Disabled'
])
param workerEncryptionAtHost string = 'Disabled'
var contributorRoleDefinitionId = resourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')
var resourceGroupId = '/subscriptions/${subscription().subscriptionId}/resourceGroups/aro-${domain}-${location}'
var masterSubnetId=resourceId('Microsoft.Network/virtualNetworks/subnets', clusterVnetName, 'master')
var workerSubnetId=resourceId('Microsoft.Network/virtualNetworks/subnets', clusterVnetName, 'worker')
resource clusterVnetName_resource 'Microsoft.Network/virtualNetworks@2020-05-01' = {
name: clusterVnetName
location: location
tags: tags
properties: {
addressSpace: {
addressPrefixes: [
clusterVnetCidr
]
}
subnets: [
{
name: 'master'
properties: {
addressPrefix: masterSubnetCidr
serviceEndpoints: [
{
service: 'Microsoft.ContainerRegistry'
}
]
privateLinkServiceNetworkPolicies: 'Disabled'
}
}
{
name: 'worker'
properties: {
addressPrefix: workerSubnetCidr
serviceEndpoints: [
{
service: 'Microsoft.ContainerRegistry'
}
]
}
}
]
}
}
resource clusterVnetName_Microsoft_Authorization_id_name_aadObjectId 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = {
name: guid(aadObjectId, clusterVnetName_resource.id, contributorRoleDefinitionId)
scope: clusterVnetName_resource
properties: {
roleDefinitionId: contributorRoleDefinitionId
principalId: aadObjectId
principalType: 'ServicePrincipal'
}
}
resource clusterVnetName_Microsoft_Authorization_id_name_rpObjectId 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = {
name: guid(rpObjectId, clusterVnetName_resource.id, contributorRoleDefinitionId)
scope: clusterVnetName_resource
properties: {
roleDefinitionId: contributorRoleDefinitionId
principalId: rpObjectId
principalType: 'ServicePrincipal'
}
}
resource clusterName_resource 'Microsoft.RedHatOpenShift/OpenShiftClusters@2023-04-01' = {
name: clusterName
location: location
tags: tags
properties: {
clusterProfile: {
domain: domain
resourceGroupId: resourceGroupId
pullSecret: pullSecret
fipsValidatedModules: fips
}
networkProfile: {
podCidr: podCidr
serviceCidr: serviceCidr
}
servicePrincipalProfile: {
clientId: aadClientId
clientSecret: aadClientSecret
}
masterProfile: {
vmSize: masterVmSize
subnetId: masterSubnetId
encryptionAtHost: masterEncryptionAtHost
}
workerProfiles: [
{
name: 'worker'
vmSize: workerVmSize
diskSizeGB: workerVmDiskSize
subnetId: workerSubnetId
count: workerCount
encryptionAtHost: workerEncryptionAtHost
}
]
apiserverProfile: {
visibility: apiServerVisibility
}
ingressProfiles: [
{
name: 'default'
visibility: ingressVisibility
}
]
}
dependsOn: [
clusterVnetName_resource
]
}
A azuredeploy.json sablon üzembe helyezése
A azuredeploy.json sablon egy Azure Red Hat OpenShift-fürt üzembe helyezésére szolgál. A következő paraméterek szükségesek:
Feljegyzés
domain
A paraméterhez adja meg az OpenShift-konzol és API-kiszolgálók automatikusan létrehozott DNS-nevének részeként használt tartományelőtagot. Ez az előtag a fürt virtuális gépeinek üzemeltetéséhez létrehozott erőforráscsoport nevének részeként is használatos.
Tulajdonság | Leírás | Érvényes beállítások | Alapértelmezett érték |
---|---|---|---|
domain |
A fürt tartományelőtagja. | Nincs | |
pullSecret |
A Red Hat OpenShift Cluster Manager webhelyről beszerzett lekéréses titkos kód. | ||
clusterName |
A fürt neve. | ||
aadClientId |
Egy Microsoft Entra-ügyfélalkalmazás alkalmazásazonosítója (GUID). | ||
aadObjectId |
A Microsoft Entra-ügyfélalkalmazás szolgáltatásnévének objektumazonosítója (GUID). | ||
aadClientSecret |
A Microsoft Entra-ügyfélalkalmazás szolgáltatásnévének titkos ügyfélkódja biztonságos sztringként. | ||
rpObjectId |
Az erőforrás-szolgáltató szolgáltatásnév objektumazonosítója (GUID). |
Az alábbi sablonparaméterek alapértelmezett értékekkel rendelkeznek. Megadhatóak, de kifejezetten nem kötelezőek.
Tulajdonság | Leírás | Érvényes beállítások | Alapértelmezett érték |
---|---|---|---|
location |
Az új ARO-fürt helye. Ez a hely lehet ugyanaz, mint az erőforráscsoport régiója, vagy más lehet. | eastus | |
clusterVnetName |
Az ARO-fürt virtuális hálózatának neve. | aro-vnet | |
clusterVnetCidr |
Az ARO virtuális hálózat címtere osztály nélküli tartományközi útválasztás (CIDR) jelöléssel. | 10.100.0.0/15 | |
workerSubnetCidr |
A feldolgozó csomópont alhálózatának címtere CIDR-jelölésben. | 10.100.70.0/23 | |
masterSubnetCidr |
A vezérlősík csomópont alhálózatának címtere CIDR-jelölésben. | 10.100.76.0/24 | |
masterVmSize |
A vezérlősík csomópontjának virtuális gép típusa/mérete . | Standard_D8s_v3 | |
workerVmSize |
A munkavégző csomópont virtuálisgép-típusa/mérete. | Standard_D4s_v3 | |
workerVmDiskSize |
A feldolgozó csomópont lemezmérete gigabájtban. | 128 | |
workerCount |
A feldolgozó csomópontok száma. | 3 | |
podCidr |
A podok címtere CIDR-jelölésben. | 10.128.0.0/14 | |
serviceCidr |
A szolgáltatás címtere CIDR-jelölésben. | 172.30.0.0/16 | |
tags |
Erőforráscímkék kivonattáblája. | @{env = 'Dev'; dept = 'Ops'} |
|
apiServerVisibility |
Az API-kiszolgáló láthatósága (Public vagy Private ). |
Nyilvános | |
ingressVisibility |
A bejövő forgalom (bejárat) láthatósága (Public vagy Private ). |
Nyilvános |
Az alábbi szakaszok a PowerShell vagy az Azure CLI használatával nyújtanak útmutatást.
A PowerShell lépései
PowerShell használata esetén hajtsa végre az alábbi lépéseket.
Kezdés előtt – PowerShell
A cikkben szereplő parancsok futtatása előtt előfordulhat, hogy futtatnia kell a parancsokat Connect-AzAccount
. Ellenőrizze, hogy rendelkezik-e kapcsolattal az Azure-hoz a folytatás előtt. Annak ellenőrzéséhez, hogy rendelkezik-e kapcsolattal, futtassa Get-AzContext
annak ellenőrzéséhez, hogy rendelkezik-e aktív Azure-előfizetéssel.
Feljegyzés
Ez a sablon a Red Hat OpenShift Cluster Manager webhelyről beszerzett lekéréses titkos kódszöveget használja. A folytatás előtt győződjön meg arról, hogy a lekéréses titkos kód helyileg pull-secret.txt
mentve van.
$rhosPullSecret= Get-Content .\pull-secret.txt -Raw # the pull secret text that was obtained from the Red Hat OpenShift Cluster Manager website
A következő paraméterek definiálása környezeti változókként – PowerShell
$resourceGroup="aro-rg" # the new resource group for the cluster
$location="eastus" # the location of the new ARO cluster
$domain="mydomain" # the domain prefix for the cluster
$aroClusterName="cluster" # the name of the cluster
A szükséges erőforrás-szolgáltatók regisztrálása – PowerShell
Regisztrálja a következő erőforrás-szolgáltatókat az előfizetésében: Microsoft.RedHatOpenShift
, Microsoft.Compute
Microsoft.Storage
és Microsoft.Authorization
.
Register-AzResourceProvider -ProviderNamespace Microsoft.RedHatOpenShift
Register-AzResourceProvider -ProviderNamespace Microsoft.Compute
Register-AzResourceProvider -ProviderNamespace Microsoft.Storage
Register-AzResourceProvider -ProviderNamespace Microsoft.Authorization
Az új erőforráscsoport létrehozása – PowerShell
New-AzResourceGroup -Name $resourceGroup -Location $location
Új szolgáltatásnév létrehozása és szerepkörök hozzárendelése – PowerShell
$suffix=Get-Random # random suffix for the Service Principal
$spDisplayName="sp-$resourceGroup-$suffix"
$azureADAppSp = New-AzADServicePrincipal -DisplayName $spDisplayName -Role Contributor
New-AzRoleAssignment -ObjectId $azureADAppSp.Id -RoleDefinitionName 'User Access Administrator' -ResourceGroupName $resourceGroup -ObjectType 'ServicePrincipal'
New-AzRoleAssignment -ObJectId $azureADAppSp.Id -RoleDefinitionName 'Contributor' -ResourceGroupName $resourceGroup -ObjectType 'ServicePrincipal'
A szolgáltatásnév jelszavának lekérése – PowerShell
$aadClientSecretDigest = ConvertTo-SecureString -String $azureADAppSp.PasswordCredentials.SecretText -AsPlainText -Force
Az OpenShift-erőforrás-szolgáltató szolgáltatásnévének lekérése – PowerShell
$rpOpenShift = Get-AzADServicePrincipal -DisplayName 'Azure Red Hat OpenShift RP' | Select-Object -ExpandProperty Id -Property Id -First 1
Ellenőrizze a paramétereket a fürt üzembe helyezése előtt – PowerShell
# setup the parameters for the deployment
$templateParams = @{
domain = $domain
clusterName = $aroClusterName
location = $location
aadClientId = $azureADAppSp.AppId
aadObjectId = $azureADAppSp.Id
aadClientSecret = $aadClientSecretDigest
rpObjectId = $rpOpenShift.Id
pullSecret = $rhosPullSecret
}
Write-Verbose (ConvertTo-Json $templateParams) -Verbose
Az Azure Red Hat OpenShift-fürt üzembe helyezése az ARM-sablonnal – PowerShell
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroup @templateParams `
-TemplateFile azuredeploy.json
Csatlakozás a fürthöz
Az új fürthöz való csatlakozáshoz tekintse át az Azure Red Hat OpenShift 4-fürthöz való csatlakozás lépéseit.
Erőforrások törlése – PowerShell
Ha végzett, futtassa a következő parancsot az erőforráscsoport és a cikkben létrehozott összes erőforrás törléséhez.
Remove-AzResourceGroup -Name $resourceGroup -Force
Az Azure CLI lépései
Az Azure CLI használata esetén hajtsa végre a következő lépéseket.
Kezdés előtt – Azure CLI
Előfordulhat, hogy a jelen cikkben szereplő parancsok futtatása előtt futtatnia az login
kell a parancsokat. A folytatás előtt ellenőrizze, hogy van-e kapcsolata az Azure-sal. Annak ellenőrzéséhez, hogy rendelkezik-e kapcsolattal, futtassa az account list
és ellenőrizze, hogy rendelkezik-e aktív Azure-előfizetéssel.
Feljegyzés
Ez a sablon a Red Hat OpenShift Cluster Manager webhelyről beszerzett lekéréses titkos kódszöveget fogja használni. Mielőtt továbblép, győződjön meg arról, hogy a titkos kulcs helyileg lett mentve.pull-secret.txt
PULL_SECRET=$(cat pull-secret.txt) # the pull secret text
Az alábbi paraméterek definiálása környezeti változókként – Azure CLI
RESOURCEGROUP=aro-rg # the new resource group for the cluster
LOCATION=eastus # the location of the new cluster
DOMAIN=mydomain # the domain prefix for the cluster
ARO_CLUSTER_NAME=aro-cluster # the name of the cluster
A szükséges erőforrás-szolgáltatók regisztrálása – Azure CLI
Regisztrálja a következő erőforrás-szolgáltatókat az előfizetésében: Microsoft.RedHatOpenShift
, Microsoft.Compute
Microsoft.Storage
és Microsoft.Authorization
.
az provider register --namespace 'Microsoft.RedHatOpenShift' --wait
az provider register --namespace 'Microsoft.Compute' --wait
az provider register --namespace 'Microsoft.Storage' --wait
az provider register --namespace 'Microsoft.Authorization' --wait
Az új erőforráscsoport létrehozása – Azure CLI
az group create --name $RESOURCEGROUP --location $LOCATION
Szolgáltatásnév létrehozása az új Microsoft Entra-alkalmazáshoz
- Azure CLI
az ad sp create-for-rbac --name "sp-$RG_NAME-${RANDOM}" > app-service-principal.json
SP_CLIENT_ID=$(jq -r '.appId' app-service-principal.json)
SP_CLIENT_SECRET=$(jq -r '.password' app-service-principal.json)
SP_OBJECT_ID=$(az ad sp show --id $SP_CLIENT_ID | jq -r '.id')
Közreműködői szerepkör hozzárendelése az új szolgáltatásnévhez – Azure CLI
az role assignment create \
--role 'User Access Administrator' \
--assignee-object-id $SP_OBJECT_ID \
--scope $SCOPE \
--assignee-principal-type 'ServicePrincipal'
az role assignment create \
--role 'Contributor' \
--assignee-object-id $SP_OBJECT_ID \
--scope $SCOPE \
--assignee-principal-type 'ServicePrincipal'
Az OpenShift-erőforrás-szolgáltató egyszerű szolgáltatásobjektum-azonosítójának lekérése – Azure CLI
ARO_RP_SP_OBJECT_ID=$(az ad sp list --display-name "Azure Red Hat OpenShift RP" --query [0].id -o tsv)
A fürt üzembe helyezése – Azure CLI
az deployment group create \
--name aroDeployment \
--resource-group $RESOURCEGROUP \
--template-file azuredeploy.bicep \
--parameters location=$LOCATION \
--parameters domain=$DOMAIN \
--parameters pullSecret=$PULL_SECRET \
--parameters clusterName=$ARO_CLUSTER_NAME \
--parameters aadClientId=$SP_CLIENT_ID \
--parameters aadObjectId=$SP_OBJECT_ID \
--parameters aadClientSecret=$SP_CLIENT_SECRET \
--parameters rpObjectId=$ARO_RP_SP_OBJECT_ID
Csatlakozás a fürthöz – Azure CLI
Az új fürthöz való csatlakozáshoz tekintse át az Azure Red Hat OpenShift 4-fürthöz való csatlakozás lépéseit.
Erőforrások tisztítása – Azure CLI
Ha végzett, futtassa a következő parancsot az erőforráscsoport és a cikkben létrehozott összes erőforrás törléséhez.
az aro delete --resource-group $RESOURCEGROUP --name $CLUSTER
Tipp.
Problémákat tapasztal? Tudassa velünk a GitHubon, hogy megnyit egy hibát az Azure Red Hat Openshift (ARO) adattárában.
Következő lépések
Ebben a cikkben megtanulta, hogyan hozhat létre Egy OpenShift 4-et futtató Azure Red Hat OpenShift-fürtöt ARM-sablonok és Bicep használatával.
A következő cikkből megtudhatja, hogyan konfigurálhatja a fürtöt hitelesítésre a Microsoft Entra ID használatával.