Ügynökök kiépítése üzembehelyezési csoportokhoz

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Az üzembehelyezési csoportok megkönnyítik a célgépek logikai csoportjainak meghatározását az üzembe helyezéshez, és minden gépen telepítik a szükséges ügynököt. Ez a cikk bemutatja, hogyan hozhat létre üzembehelyezési csoportot, és hogyan telepítheti és helyezheti üzembe az ügynököt az üzembehelyezési csoport minden egyes virtuális vagy fizikai gépén.

Az ügynököt az alábbi módokon telepítheti:

Az ügynökökkel és a folyamatokkal kapcsolatos információkért lásd:

A telepítési szkript futtatása a célkiszolgálókon

  1. Az Azure Pipelines Üzembe helyezési csoportok lapján válassza az +Új lehetőséget új csoport létrehozásához.

  2. Adja meg a csoport nevét, és szükség esetén adja meg a leírást, majd válassza a Létrehozás lehetőséget.

  3. A gépek regisztrálása a következő oldal parancssori szakaszában válassza ki a célgép operációs rendszerét.

  4. Válassza a Személyes hozzáférési jogkivonat használata a szkriptben a hitelesítéshez lehetőséget. További információ.

  5. Válassza a Szkript másolása vágólapra lehetőséget.

  6. Jelentkezzen be az egyes célgépekre a megfelelő engedélyekkel rendelkező fiókkal, és:

    • Nyisson meg egy Rendszergazda istrator PowerShell-parancssort, illessze be a másolt szkriptet, majd hajtsa végre, hogy regisztrálja a gépet ezzel a csoporttal.

    • Ha a szkript futtatásakor hibaüzenet jelenik meg, amely szerint nem hozható létre biztonságos csatorna, hajtsa végre ezt a parancsot a Rendszergazda istrator PowerShell-parancssorában:

      [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

    • Amikor a rendszer kéri az ügynök címkéinek konfigurálását, nyomja Y le és adja meg azokat a címkéket, amelyek segítségével azonosíthatja a csoport gépeinek részhalmazait a részleges üzembe helyezéshez.

      A hozzárendelt címkék lehetővé teszik, hogy az üzembe helyezést bizonyos kiszolgálókra korlátozza, amikor az üzembe helyezési csoportot egy futtatás gépcsoport-feladatban használják.

    • Amikor a rendszer kéri a felhasználói fiókot, nyomja le a Return billentyűt az alapértelmezett beállítások elfogadásához.

    • Várja meg, amíg a szkript befejeződik az üzenettel Service vstsagent.{organization-name}.{computer-name} started successfully.

  7. Az Azure Pipelines Üzembe helyezési csoportok lapján nyissa meg a Gépek lapot, és ellenőrizze, hogy az ügynökök futnak-e. Ha a konfigurált címkék nem láthatók, frissítse a lapot.

Az Azure Pipelines Agent Azure-beli virtuálisgép-bővítményének telepítése

  1. Az Azure Pipelines Üzembe helyezési csoportok lapján válassza az +Új lehetőséget új csoport létrehozásához.

  2. Adja meg a csoport nevét, és szükség esetén adja meg a leírást, majd válassza a Létrehozás lehetőséget.

  3. Az Azure Portalon nyissa meg a Bővítmény panelt az üzembe helyezési csoportban szereplő összes virtuális gépnél, válassza a + Hozzáadás lehetőséget az Új erőforráslista megnyitásához, majd válassza az Azure Pipelines Agent lehetőséget.

    Az Azure Pipelines Agent bővítmény telepítése

  4. A Bővítmény telepítése panelen adja meg a használni kívánt Azure Pipelines-előfizetés nevét. Ha például az URL-cím, https://dev.azure.com/contosocsak adja meg a contoso értéket.

  5. Adja meg a projekt nevét és az üzembehelyezési csoport nevét.

  6. Igény szerint adja meg az ügynök nevét. Ha nincs megadva, a hozzáfűzett -DGvirtuálisgép-nevet használja.

  7. Adja meg a személyes hozzáférési jogkivonatot (PAT) az Azure Pipelineson való hitelesítéshez.

  8. Igény szerint adja meg az ügynökön konfigurálni kívánt címkék vesszővel tagolt listáját. A címkék nem érzékenyek a kis- és nagybetűkre, és csak 256 karakter hosszúságúak lehetnek.

  9. Az OK gombra kattintva megkezdheti az ügynök telepítését ezen a virtuális gépen.

  10. Adja hozzá a bővítményt minden olyan virtuális géphez, amelyet bele szeretne foglalni ebbe az üzembe helyezési csoportba.

Az ARM-sablon üzembehelyezési feladatának használata

Fontos

Ezek az utasítások a feladat 2. verziójára vonatkoznak. Állítsa át a feladat verzióját 3-ról 2-re.

Az ARM-sablon üzembe helyezési feladatával üzembe helyezhet egy Azure Resource Manager-sablont (ARM), amely telepíti az Azure Pipelines Agent Azure-beli virtuálisgép-bővítményt egy virtuális gép létrehozásakor, vagy frissítheti az erőforráscsoportot a bővítmény alkalmazásához a virtuális gép létrehozása után. Alternatív megoldásként az ARM-sablon üzembe helyezési feladatának speciális üzembehelyezési lehetőségeit is használhatja az ügynök üzembe helyezési csoportokban való üzembe helyezéséhez.

Az "Azure Pipelines Agent" Azure-beli virtuálisgép-bővítmény telepítése ARM-sablonnal

Az ARM-sablonok olyan JSON-fájlok, amelyek deklaratív módon definiálják az Azure-erőforrások egy készletét. A sablon automatikusan olvasható és az Azure által kiosztott erőforrások. Egyetlen sablonnal több szolgáltatást is üzembe helyezhet azok függőségeivel együtt.

Windows rendszerű virtuális gép esetén hozzon létre egy ARM-sablont, és vegyen fel egy erőforráselemet az erőforrás alá az Microsoft.Compute/virtualMachine itt látható módon:

"resources": [
  {
    "name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "[parameters('location')]",
    "apiVersion": "2015-06-15",
    "dependsOn": [
        "[resourceId('Microsoft.Compute/virtualMachines/',
                      concat(parameters('vmNamePrefix'),copyindex()))]"
    ],
    "properties": {
      "publisher": "Microsoft.VisualStudio.Services",
      "type": "TeamServicesAgent",
      "typeHandlerVersion": "1.0",
      "autoUpgradeMinorVersion": true,
      "settings": {
        "VSTSAccountName": "[parameters('VSTSAccountName')]",
        "TeamProject": "[parameters('TeamProject')]",
        "DeploymentGroup": "[parameters('DeploymentGroup')]",
        "AgentName": "[parameters('AgentName')]",
        "AgentMajorVersion": "auto|2|3",
        "Tags": "[parameters('Tags')]"
      },
      "protectedSettings": {
      "PATToken": "[parameters('PATToken')]"
     }
   }
  }
]

Feljegyzés

Az Azure DevOps Server 2022-ben a megengedett értékek a AgentMajorVersion következők auto|N: . Az Azure DevOps Server 2022.1 és újabb verzióiban a megengedett értékek a AgentMajorVersion következők auto|2|3: .

"resources": [
  {
    "name": "[concat(parameters('vmNamePrefix'),copyIndex(),'/TeamServicesAgent')]",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "[parameters('location')]",
    "apiVersion": "2015-06-15",
    "dependsOn": [
        "[resourceId('Microsoft.Compute/virtualMachines/',
                      concat(parameters('vmNamePrefix'),copyindex()))]"
    ],
    "properties": {
      "publisher": "Microsoft.VisualStudio.Services",
      "type": "TeamServicesAgent",
      "typeHandlerVersion": "1.0",
      "autoUpgradeMinorVersion": true,
      "settings": {
        "VSTSAccountName": "[parameters('VSTSAccountName')]",
        "TeamProject": "[parameters('TeamProject')]",
        "DeploymentGroup": "[parameters('DeploymentGroup')]",
        "AgentName": "[parameters('AgentName')]",
        "AgentMajorVersion": "auto|N",
        "Tags": "[parameters('Tags')]"
      },
      "protectedSettings": {
      "PATToken": "[parameters('PATToken')]"
     }
   }
  }
]

Ahol:

  • A VSTSAccountName megadása kötelező. A használni kívánt Azure Pipelines-előfizetés. Példa: Ha az URL-címe, https://dev.azure.com/contosocsak adja meg a contoso
  • A TeamProject szükséges. Az a projekt, amelyben az üzembe helyezési csoport definiálva van
  • A DeploymentGroup szükséges . Az üzembehelyezési csoport, amelyhez az üzembehelyezési ügynök regisztrálva lesz
  • Az AgentName megadása nem kötelező. Ha nincs megadva, a program a hozzáfűzött virtuálisgép-nevet -DG fogja használni
  • A címkék megadása nem kötelező. Az ügynökön beállított címkék vesszővel tagolt listája. A címkék nem érzékenyek a kis- és nagybetűkre, és nem lehetnek hosszabbak 256 karakternél
  • PATToken szükséges. Az Azure Pipelineson történő hitelesítéshez használt személyes hozzáférési jogkivonat az ügynök letöltéséhez és konfigurálásához

Feljegyzés

Ha Linux rendszerű virtuális gépen telepít, győződjön meg arról, hogy a type kód paramétere .TeamServicesAgentLinux

A bővítmény hibaelhárítása

Néhány ismert probléma a bővítménysel kapcsolatban:

  • Az állapotfájl túl nagy: Ez a probléma Windows rendszerű virtuális gépeken jelentkezik, linuxos virtuális gépeken nem figyelték meg. Az állapotfájl egy JSON-objektumot tartalmaz, amely a bővítmény aktuális állapotát írja le. Az objektum egy helyőrző, amely felsorolja az eddig végrehajtott műveleteket. Az Azure beolvassa ezt az állapotfájlt, és az API-kérésekre adott válaszként átadja az állapotobjektumot. A fájl maximálisan engedélyezett méretű; ha a méret meghaladja a küszöbértéket, az Azure nem tudja teljesen elolvasni, és hibát ad az állapothoz. Minden egyes gép újraindításakor a bővítmény végrehajt néhány műveletet (annak ellenére, hogy korábban sikeres volt a telepítés), amely hozzáfűzi az állapotfájlt. Ha a gépet számos alkalommal újraindítják, az állapotfájl mérete meghaladja a küszöbértéket, ami ezt a hibát okozza. A hibaüzenet a következőt olvassa: Handler Microsoft.VisualStudio.Services.TeamServicesAgent:1.27.0.2 status file 0.status size xxxxxx bytes is too big. Max Limit allowed: 131072 bytes. Előfordulhat, hogy a bővítmény telepítése sikeres volt, de ez a hiba elrejti a bővítmény tényleges állapotát.

    Kijavítottuk ezt a problémát a gép újraindítása esetén (windowsos és 1.21.0.1 linuxos bővítmények esetén1.27.0.2), így újraindításkor semmi sem lesz hozzáadva az állapotfájlhoz. Ha ezt a problémát a javítás előtt észlelte a bővítménysel kapcsolatban (vagyis a bővítmény korábbi verzióival kapcsolatban tapasztalta ezt a problémát), és a bővítmény automatikusan a javítással rendelkező verziókra lett kapcsolva, a probléma továbbra is fennáll. Ennek az az oka, hogy a bővítmény frissítése esetén a bővítmény újabb verziója továbbra is a korábbi állapotfájllal működik. Jelenleg akkor is fennállhat ez a probléma, ha a bővítmény egy korábbi verzióját használja a jelölővel az alverzió automatikus frissítéseinek kikapcsolásához, vagy ha egy nagyobb állapotfájlt egy korábbi bővítményverzióról a javítást tartalmazó újabb verziókra szállítottak, vagy bármilyen más okból. Ha ez a helyzet, a bővítmény eltávolításával és újratelepítésével túlléphet ezen a problémán. A bővítmény eltávolítása törli a teljes bővítménykönyvtárat, így a rendszer új állapotfájlt hoz létre a friss telepítéshez. Telepítenie kell a bővítmény legújabb verzióját. Ez a megoldás egy állandó javítás, és ezt követően nem szabad újra szembesülnie a problémával.

  • Egyéni adatokkal kapcsolatos probléma: Ez a probléma nem a bővítménynél jelentkezik, de egyes ügyfelek zavart jelentettek a virtuális gép egyéni adathelyével kapcsolatban az operációsrendszer-verziók váltásakor. Javasoljuk a következő kerülő megoldást. A Python 2 elavult, ezért a bővítményt a Python 3 használatához készítettük. Ha továbbra is olyan korábbi operációsrendszer-verziókat használ, amelyeken alapértelmezés szerint nincs telepítve a Python 3, a bővítmény futtatásához telepítse a Python 3-at a virtuális gépre, vagy váltson olyan operációsrendszer-verziókra, amelyeken alapértelmezés szerint telepítve van a Python 3. Linux rendszerű virtuális gépeken az egyéni adatok át lesznek másolva a Korábbi Microsoft Azure Linux Agent-verziók fájljára /var/lib/waagent/ovf-env.xml , valamint az /var/lib/waagent/CustomData újabb Microsoft Azure Linux Agent-verziókra. Úgy tűnik, hogy azok az ügyfelek, akik e két útvonal közül csak az egyiket kódolták, problémákba ütköznek az operációs rendszer verzióváltása során, mert a fájl nem létezik az új operációsrendszer-verzióban, de a másik fájl jelen van. Ezért a virtuális gép kiépítésének megszakításának elkerülése érdekében vegye figyelembe a sablonban lévő fájlokat, hogy ha az egyik meghibásodik, a másiknak sikeresnek kell lennie.

Az ARM-sablonokról további információt az Erőforrások definiálása az Azure Resource Manager-sablonokban című témakörben talál.

A sablon használata:

  1. Az Azure Pipelines Üzembe helyezési csoportok lapján válassza az +Új lehetőséget új csoport létrehozásához.

  2. Adja meg a csoport nevét, és szükség esetén adja meg a leírást, majd válassza a Létrehozás lehetőséget.

  3. Az Azure Pipelines Kiadások lapján hozzon létre egy kiadási folyamatot az ARM-sablon üzembe helyezési feladatát tartalmazó fázissal.

  4. Adja meg a feladathoz szükséges paramétereket, például az Azure-előfizetést, az erőforráscsoport nevét, helyét és sablonadatait, majd mentse a kiadási folyamatot.

  5. Hozzon létre egy kiadást a kiadási folyamatból az ügynökök telepítéséhez.

Ügynökök telepítése a speciális üzembehelyezési lehetőségek használatával

  1. Az Azure Pipelines Üzembe helyezési csoportok lapján válassza az +Új lehetőséget új csoport létrehozásához.

  2. Adja meg a csoport nevét, és szükség esetén adja meg a leírást, majd válassza a Létrehozás lehetőséget.

  3. Az Azure Pipelines Kiadások lapján hozzon létre egy kiadási folyamatot az ARM-sablon üzembe helyezési feladatát tartalmazó fázissal.

  4. Válassza ki a feladatot, és bontsa ki a virtuális gépek speciális üzembehelyezési beállításait. Konfigurálja az ebben a szakaszban szereplő paramétereket az alábbiak szerint:

    • Előfeltételek engedélyezése: válassza a Konfigurálás az üzembehelyezési csoport ügynökével lehetőséget.

    • Azure Pipelines/TFS-végpont: Válasszon ki egy meglévő Team Foundation-kiszolgáló/TFS-szolgáltatáskapcsolatot, amely a célra mutat. Az üzembehelyezési csoportok ügynökregisztrációjához hozzá kell férnie a Visual Studio-projekthez. Ha nem rendelkezik meglévő szolgáltatáskapcsolattal, válassza a Hozzáadás és létrehozás lehetőséget. Konfigurálja úgy, hogy egy személyes hozzáférési jogkivonatot (PAT) használjon, amelynek hatóköre csak az üzembe helyezési csoportra korlátozódik.

    • Projekt: Adja meg az üzembe helyezési csoportot tartalmazó projektet.

    • Üzembe helyezési csoport: Adja meg annak az üzembehelyezési csoportnak a nevét, amelyhez az ügynökök regisztrálva lesznek.

    • Azure-beli virtuálisgép-címkék másolása ügynökökre: Ha be van állítva (bejelölve), az Azure-beli virtuális gépen már konfigurált címkéket a rendszer a megfelelő üzembehelyezési csoportügynökbe másolja. Alapértelmezés szerint az összes Azure-címke a formátumot Key: Valuehasználja. Például: Role: Web.

  5. Adja meg a feladathoz szükséges egyéb paramétereket, például az Azure-előfizetést, az erőforráscsoport nevét és helyét, majd mentse a kiadási folyamatot.

  6. Hozzon létre egy kiadást a kiadási folyamatból az ügynökök telepítéséhez.

Súgó és támogatás