Gyakorlat – Az Azure DevOps-környezet beállítása

Befejeződött

Ebben a szakaszban úgy konfigurálja az Azure DevOps-szervezetet, hogy folytassa a modul többi részét, és hozzon létre egy Azure Kubernetes Service-környezetet (AKS) az alkalmazás üzembe helyezéséhez.

E célok elérése érdekében a következőkre lesz szüksége:

  • Adjon hozzá egy felhasználót az Azure DevOps-szervezethez.
  • Állítsa be az Azure DevOps-projektet.
  • A munkafolyamat kezelése az Azure Boards használatával.
  • Azure-erőforrások létrehozása az Azure CLI használatával.
  • Folyamatváltozók létrehozása az Azure Pipelinesban.
  • Szolgáltatáskapcsolat létrehozása az Azure-ral való hitelesítéshez.
  • Frissítse a Kubernetes üzembehelyezési jegyzékét.

Felhasználó hozzáadása a szervezethez

A modul elvégzéséhez Azure-előfizetés szükséges. Ingyenesen használhatja az Azure-t.

Bár nem szükséges az Azure DevOps használatához, azure-előfizetésre van szükség az Azure-erőforrások Azure DevOpson keresztüli üzembe helyezéséhez. A folyamat egyszerűbbé tétele érdekében ugyanazzal a Microsoft-fiókkal jelentkezzen be az Azure-előfizetésbe és az Azure DevOps-szervezetbe is.

Ha különböző Microsoft-fiókokkal jelentkezik be az Azure-ba és az Azure DevOpsba, továbbra is hozzáadhat egy felhasználót a DevOps-szervezethez az Azure-előfizetéséhez társított Microsoft-fiók alatt. További részletekért lásd: Felhasználók hozzáadása a szervezethez vagy projekthez. A felhasználó hozzáadásakor válassza ki az Alapszintű hozzáférési szintet.

Miután hozzáadta a felhasználót alapszintű hozzáférési szinttel, jelentkezzen ki az Azure DevOpsból, és jelentkezzen be újra az Azure-előfizetéséhez társított Microsoft-fiókkal.

Az Azure DevOps-projekt lekérése

Ebben a szakaszban egy sablont futtat, amely létrehozza a projektet az Azure DevOpsban.

A sablon futtatása

Futtassa a sablont az Azure DevOps-projekt beállításához ehhez a modulhoz:

Az Azure DevOps Demo Generator portálon az alábbi lépéseket követve futtassa a sablont:

  1. Válassza Bejelentkezés lehetőséget, és fogadja el a használati feltételeket.

  2. Az Új projekt létrehozása lapon válassza ki az Azure DevOps-szervezetet, és adjon meg egy projektnevet, például Space Game – web – Kubernetes.

    Képernyőkép az Azure DevOps Demo Generatorról, amelyen a projekt létrehozásának folyamata látható.

  3. Válassza az Igen, másolatot szeretnék készíteni erről az adattárról, majd Engedélyezem. Ha előugrik egy ablak, adjon engedélyt a GitHub-fiók elérésére.

    Fontos

    Ha ezt a lehetőséget választja, a sablonnak csatlakoznia kell a GitHub-adattárhoz. Akkor is válaszd ki, ha már forkolta a Space Game repót, mivel a sablon a meglévő forkolását fogja használni.

  4. Válassza a Projekt létrehozása lehetőséget, és várja meg, amíg a sablon teljesen lefut, ami lehet, hogy néhány percig tart.

  5. Válassza a "Projekt navigálása" lehetőséget, hogy hozzáférjen a projektjéhez az Azure DevOpsban.

Fontos

Az egység Az Azure DevOps-környezet megtisztítása ebben a modulban a törlés kulcsfontosságú lépéseit tartalmazza. Ezeket a lépéseket ajánlott elvégezni, hogy ne fogyjon el az ingyenes buildelési percek száma. Még ha nem is fejezi be ezt a modult, fontos, hogy kövesse a törlési lépéseket.

A projekt láthatóságának beállítása

Kezdetben a GitHubon a Space Game-adattár elágazása nyilvánosra van állítva, míg az Azure DevOps-sablon által létrehozott projekt privátra van állítva. A GitHub nyilvános adattárát bárki elérheti, míg egy privát adattár csak Ön és az Ön által megosztott személyek számára érhető el. Hasonlóképpen, az Azure DevOpsban a nyilvános projektek írásvédett hozzáférést biztosítanak a nem hitelesített felhasználók számára, míg a privát projektekhez hozzáférést és hitelesítést kell biztosítani a felhasználóknak a szolgáltatások eléréséhez.

Jelenleg nem szükséges ezen beállítások egyikét sem módosítani a modul céljaira. Személyes projektjei esetében azonban meg kell határoznia, hogy milyen láthatóságot és hozzáférést kíván biztosítani másoknak. Ha például a projekt nyílt forráskódú, dönthet úgy, hogy a GitHub-adattárat és az Azure DevOps-projektet is nyilvánossá teszi. Ha a projekt védett, általában a GitHub-adattárat és az Azure DevOps-projektet is magánjellegűvé tenné.

Később a következő erőforrásokat hasznosnak találhatja annak meghatározásához, hogy melyik lehetőség a legjobb a projekt számára:

Állítsa a munkaelemet 'Csináljuk'-ra

Ebben a lépésben egy munkaelemet rendel saját magához az Azure Boardsban, és áthelyezi a Doing állapotba. Valós helyzetekben Ön és csapata az egyes futamok vagy munka iterációk elején hozna létre munkaelemeket.

A munkaelemek hozzárendelése egy ellenőrzőlistát biztosít, amelyből dolgozhat, és más csapattagok számára is átláthatóvá teszi az előrehaladást és a hátralévő munkát. Emellett segít kikényszeríteni a folyamatban lévő munka (WIP) korlátait, hogy a csapat egyszerre ne vállaljon túl sok munkát.

  1. A Azure DevOpsban navigáljon a Táblák részre, majd válassza a Táblák lehetőséget a menüből.

    Képernyőkép az Azure DevOpsról, amelyen a Boards menü helye látható.

  2. Rendelje magához a Kubernetes-szel vezényelt webhely többtárolós verziójának létrehozását célzó munkaelemet úgy, hogy az egérrel a kártya alján található lefelé mutató nyílra kattint.

    Képernyőkép az Azure Boardsról, amelyen a lefelé mutató nyíl helye látható.

  3. Húzza a munkaelemet a Teendő oszlopból a Művelet oszlopba. A modul befejezése után a feladatot a Kész oszlopba helyezi át.

    Képernyőkép az Azure Boardsról, amelyen a kártya látható a Doing oszlopban.

Az Azure Kubernetes Service-környezet létrehozása

Ebben a lépésben hozza létre a szükséges Azure Kubernetes Service-erőforrásokat a webhely új tárolóverziójának üzembe helyezéséhez.

Az előző modulban, Kiadási folyamat létrehozása az Azure Pipelines segítségével, az Azure Portalon hoztál létre Azure-erőforrásokat. Bár a portál hasznos az Azure képességeinek megismeréséhez és az alapvető feladatok elvégzéséhez, az olyan összetevők létrehozása, mint az Azure Kubernetes Service, időigényes folyamat lehet.

Ebben a modulban az Azure CLI használatával hozza létre az alkalmazás Azure Kubernetes Service-ben való üzembe helyezéséhez és futtatásához szükséges erőforrásokat. Az Azure CLI egy terminálról vagy a Visual Studio Code-on keresztül érhető el. Ebben a modulban azonban az Azure CLI-t az Azure Cloud Shellből érheti el. A Cloud Shell a felhőben üzemeltetett böngészőalapú rendszerhéj-felület, amely előre konfigurálva van az Azure CLI-vel az Azure-előfizetéshez való használatra.

Fontos

A modul gyakorlatainak elvégzéséhez saját Azure-előfizetésre van szüksége.

A Cloud Shell indítása

  1. Lépjen a Azure Portalra, majd jelentkezzen be.

  2. Válassza a Cloud Shell lehetőséget a menüből, majd amikor a rendszer erre kéri, válassza a Bash felületet.

    Képernyőkép az Azure Portalról, amelyen a Cloud Shell menüelem helye látható.

Jegyzet

A Cloud Shellhez egy Azure Storage-erőforrás szükséges a Cloud Shellben létrehozott fájlok megőrzéséhez. A Cloud Shell első megnyitásakor a rendszer kérni fogja, hogy hozzon létre egy erőforráscsoportot, tárfiókot és Azure Files-megosztást. Ezt a beállítást a rendszer automatikusan használja az összes jövőbeli Cloud Shell-munkamenethez.

Azure-régió kiválasztása

A régió egy vagy több, földrajzi területen található Azure-adatközpontra utal. Ilyen területek például az USA keleti régiója, az USA nyugati régiója és Észak-Európa. Minden Azure-erőforrás, beleértve az App Service-példányt is, egy régióhoz van társítva.

A parancsok végrehajtásának leegyszerűsítéséhez először állítsunk be egy alapértelmezett régiót. Az alapértelmezett régió beállítása után a következő parancsok alapértelmezés szerint ezt a régiót használják, hacsak nem ad meg explicit módon egy másik régiót.

  1. A Cloud Shellben futtassa a következő parancsot az Azure-előfizetésben elérhető régiók listázásához:

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Válasszon ki egy régiót az Önhöz földrajzilag közeli kimenet Név oszlopából. Választhatja például eastasia vagy westus2.

  3. Futtassa az alábbi parancsot az alapértelmezett régió beállításához. Cserélje le RÉGIÓ a korábban kiválasztott régió nevére.

    az configure --defaults location=<REGION>
    

    Ez a példa a westus2 alapértelmezett régióként állítja be.

    az configure --defaults location=westus2
    

Bash-változók létrehozása

A Bash-változók használatával a beállítási folyamat kényelmesebb és kevésbé hibalehetőséget biztosít. Ez a megközelítés segít elkerülni a véletlen elírásokat, ha a megosztott szöveges sztringeket változóként definiálja, amelyek a szkriptben használhatók.

  1. A Cloud Shellből hozzon létre egy véletlenszerű számot, hogy leegyszerűsítse bizonyos szolgáltatások globálisan egyedi nevének létrehozását a következő lépésben.

    resourceSuffix=$RANDOM
    
  2. Globálisan egyedi neveket hozhat létre az Azure Container Registry és az Azure Kubernetes Service-példány számára. Vegye figyelembe, hogy ezek a parancsok dupla idézőjeleket használnak, amelyek arra utasítják a Basht, hogy interpolálja a változókat a beágyazott szintaxis használatával.

    registryName="tailspinspacegame${resourceSuffix}"
    aksName="tailspinspacegame-${resourceSuffix}"
    
  3. Hozzon létre egy másik Bash-változót az erőforráscsoport nevének tárolásához.

    rgName='tailspin-space-game-rg'
    
  4. Keresse meg a legújabb AKS-verziót.

    az aks get-versions
    

    Jegyezze fel a legújabb verziót.

Azure-erőforrások létrehozása

Jegyzet

Ebben az oktatóanyagban az alapértelmezett hálózati beállításokat a rendszer tanulási célokra használja. Ezek a beállítások lehetővé teszik a webhely internetről való elérését. A gyakorlatban azonban úgy is dönthet, hogy olyan Azure-beli virtuális hálózatot konfigurál, amely a webhelyet olyan hálózatba helyezi, amely nem internet-elérhető, és csak Ön és csapata számára érhető el. Később újrakonfigurálhatja a hálózatot, hogy elérhetővé tegye a webhelyet a felhasználók számára.

  1. Futtassa a következő parancsot egy korábban definiált nevű erőforráscsoport létrehozásához:

    az group create --name $rgName
    
  2. Futtassa a az acr create parancsot egy Korábban definiált névvel rendelkező Azure Container Registry létrehozásához:

    az acr create \
      --name $registryName \
      --resource-group $rgName \
      --sku Standard
    
  3. Futtassa a az aks create parancsot egy AKS-példány létrehozásához a korábban definiált névvel. Cserélje le <latest-AKS-version> a korábban feljegyzett verzióra.

    az aks create \
      --name $aksName \
      --resource-group $rgName \
      --enable-addons monitoring \
      --kubernetes-version <latest-AKS-version> \
      --generate-ssh-keys
    

    Jegyzet

    Az AKS üzembe helyezésének befejezése 10–15 percet vehet igénybe.

  4. Hozzon létre egy változót az AKS-példányhoz konfigurált szolgáltatásnév azonosítójának tárolásához:

    clientId=$(az aks show \
      --resource-group $rgName \
      --name $aksName \
      --query "identityProfile.kubeletidentity.clientId" \
      --output tsv)
    
  5. Hozzon létre egy változót az Azure Container Registry azonosítójának tárolásához:

    acrId=$(az acr show \
      --name $registryName \
      --resource-group $rgName \
      --query "id" \
      --output tsv)
    
  6. Futtassa a az acr list parancsot az Azure Container Registry -példány bejelentkezési kiszolgálójának URL-címének lekéréséhez:

    az acr list \
     --resource-group $rgName \
     --query "[].{loginServer: loginServer}" \
     --output table
    

    Jegyezze fel a tárolóregisztrációs adatbázis bejelentkezési kiszolgálóját. A folyamat konfigurálásakor később szüksége lesz ezekre az információkra. Íme egy példa:

    LoginServer                      
    --------------------------------
    tailspinspacegame4692.azurecr.io
    
  7. Futtassa a az role assignment create parancsot egy szerepkör-hozzárendelés létrehozásához, amely engedélyezi az AKS-fürt számára az Azure Container Registryhez való csatlakozást:

    az role assignment create \
      --assignee $clientId \
      --role AcrPull \
      --scope $acrId
    

Fontos

Az egység Az Azure DevOps-környezet megtisztítása ebben a modulban a törlés kulcsfontosságú lépéseit tartalmazza. Ezeket a lépéseket ajánlott elvégezni, hogy ne fogyjon el az ingyenes buildelési percek száma. Még ha nem is fejezi be ezt a modult, fontos, hogy kövesse a törlési lépéseket.

Változócsoport létrehozása

Ebben a szakaszban egy változót fog hozzáadni a folyamathoz az Azure Container Registry nevének tárolásához. Az Azure Container Registry-példány nevének a folyamatkonfigurációban változóként való definiálása ajánlott a kódba írással szemben. Így a konfiguráció újrafelhasználhatóbbá válik, és ha a példány neve megváltozik, egyszerűen frissítheti a változót, és anélkül aktiválhatja a folyamatot, hogy módosítania kellene a konfigurációt.

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. Válassza a Pipeline-oklehetőséget, majd a bal oldali navigációs panelen válassza a Könyvtár lehetőséget.

    Képernyőkép az Azure Pipelines felületéről, rajta a Könyvtár menüponttal.

  3. Válassza Változócsoportoklehetőséget, majd válassza a + Változócsoport lehetőséget egy új változócsoport hozzáadásához.

  4. A Tulajdonságok szakaszban írja be a változócsoport neveként a Release-t.

  5. A Változók szakaszban válassza a Hozzáadáslehetőséget.

  6. Adja meg RegistryName változó nevét, és az értékhez írja be az Azure Container Registry bejelentkezési kiszolgálóját, például tailspinspacegame4692.azurecr.io.

  7. A lap tetején válassza a Mentés lehetőséget a folyamatváltozó mentéséhez. Ez egy példa arra, hogyan nézhet ki a változócsoport

    Képernyőkép az Azure Pipeline-ról, amelyen a változócsoport látható. A csoport egy változót tartalmaz.

Szolgáltatáskapcsolatok létrehozása

A következő lépés olyan szolgáltatáskapcsolatok létrehozása, amelyek lehetővé teszik az Azure Pipelines számára az Azure Container Registry és az Azure Kubernetes Service-példányok elérését. A szolgáltatáskapcsolatok létrehozásával az Azure Pipelines feltöltheti a tárolókat, és utasíthatja az AKS-fürtöt, hogy azokat letöltse az üzembe helyezett szolgáltatás frissítéséhez.

Fontos

Győződjön meg arról, hogy ugyanazzal a Microsoft-fiókkal jelentkezett be az Azure Portalra és az Azure DevOpsba.

Docker Registry-szolgáltatáskapcsolat létrehozása

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. Válassza a Projektbeállítások lehetőséget az oldal alsó sarkában.

  3. Válassza Szolgáltatáskapcsolatok lehetőséget a Folyamatok szakaszban.

  4. Válassza Új szolgáltatáskapcsolat, majd a Docker-beállításjegyzék , majd a Továbblehetőséget.

  5. A lap tetején válassza a Azure Container Registry-lehetőséget, majd válassza a szolgáltatásnév opciót hitelesítési típusnak.

  6. Minden beállításhoz adja meg a következő értékeket:

    Beállítás Érték
    Előfizetés Az Ön Azure-előfizetése
    Azure konténer nyilvántartó Válaszd ki a korábban létrehozottat
    Szolgáltatáskapcsolat neve Konténer-regisztrációs kapcsolat
  7. Győződjön meg arról, hogy be van jelölve az Hozzáférési engedély megadása az összes folyamathoz jelölőnégyzet.

  8. Ha végzett, válassza a Mentés lehetőséget.

ARM-szolgáltatáskapcsolat létrehozása

Most létre fogsz hozni egy Azure Resource-Manager szolgáltatáskapcsolatot az AKS-fürttel való hitelesítés céljából. A Kubernetes helyett ARM-szolgáltatáskapcsolatot használunk, mert a hosszú élettartamú jogkivonatok alapértelmezés szerint nem jönnek létre a Kubernetes 1.24 óta. További részletekért tekintse meg ezt a DevOps-blogbejegyzést: Szolgáltatáskapcsolati útmutató a Kubernetes-feladatokat használó AKS-ügyfeleknek.

  1. Válassza Új szolgáltatáskapcsolatilehetőséget, válassza Azure Resource Manager-, majd válassza a Továbblehetőséget.

  2. Válassza Szolgáltatásnév (automatikus), majd a Következőlehetőséget.

  3. A hatókörszinthez válassza a(z) Előfizetés lehetőséget.

  4. Minden beállításhoz adja meg a következő értékeket.

    Beállítás Érték
    Előfizetés Az Ön Azure-előfizetése
    Erőforráscsoport Válaszd ki a korábban létrehozottat
    Szolgáltatáskapcsolat neve Kubernetes-fürt kapcsolat
  5. Győződjön meg arról, hogy be van jelölve az Hozzáférési engedély megadása az összes folyamathoz jelölőnégyzet.

  6. Ha végzett, válassza a Mentés lehetőséget.

Folyamatkörnyezet létrehozása

  1. Válassza a Csővezetékek, majd a Környezeteklehetőséget.

    Képernyőkép az Azure Pipelinesról, amelyen a Környezetek menüpont látható.

  2. Új környezet létrehozásához válassza a Környezet létrehozása lehetőséget.

  3. A Név mezőben adja meg Dev.

  4. Válassza a Nincs lehetőséget az Erőforrás szakaszban, majd válassza a létrehozása lehetőséget a folyamatkörnyezet létrehozásához.

A Kubernetes üzembehelyezési jegyzékének frissítése

Ebben a szakaszban frissíteni fogja a Kubernetes-manifesztet deployment.yml úgy, hogy a korábban létrehozott konténer-regisztrációs adatbázisra mutasson.

  1. Navigáljon a GitHub-fiókjába, és válassza ki a tárházat, amelyet ehhez a modulhoz elágaztatott: mslearn-tailspin-spacegame-web-kubernetes.

  2. Nyissa meg a manifesztfájlt/deployment.yml fájlt szerkesztési módban megnyitva.

    Képernyőkép a GitHubról, amelyen a szerkesztési mód ikonjának helye látható.

  3. Módosítsa a tárolólemezkép-hivatkozásokat az ACR bejelentkezési kiszolgáló használatára. Az alábbi jegyzék példaként használja a tailspinspacegame2439.azurecr.io fájlt.

    apiVersion : apps/v1
    kind: Deployment
    metadata:
      name: web
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: web
      template:
        metadata:
          labels:
            app: web
        spec:
          containers:
            - name: web
              image: tailspinspacegame4692.azurecr.io/web
              ports:
              - containerPort: 80
    
    apiVersion : apps/v1
    kind: Deployment
    metadata:
      name: leaderboard
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: leaderboard
      template:
        metadata:
          labels:
            app: leaderboard
        spec:
          containers:
            - name: leaderboard
              image: tailspinspacegame4692.azurecr.io/leaderboard
              ports:
              - containerPort: 80
    
  4. Véglegesítse a main ág módosításait.