Přidání a použití skupin proměnných

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

Skupiny proměnných ukládají hodnoty a tajné kódy, které můžete chtít předat do kanálu YAML nebo zpřístupnit napříč několika kanály. Skupiny proměnných můžete sdílet a používat ve více kanálech ve stejném projektu.

Tajné proměnné ve skupinách Proměnných jsou chráněné prostředky. Přidáním kombinací oprávnění ke schválení, kontrolám a kanálům můžete omezit přístup k tajným proměnným ve skupině proměnných. Přístup k proměnným bez tajného kódu není omezen schváleními, kontrolami a oprávněními kanálu.

Vytvoření skupiny proměnných

V YAML nemůžete vytvářet skupiny proměnných, ale můžete je použít, jak je popsáno v části Použití skupiny proměnných.

Použití skupiny proměnných

Pokud chcete použít proměnnou ze skupiny proměnných, přidejte do souboru YAML odkaz na skupinu:

variables:
- group: my-variable-group

Proměnné ze skupiny proměnných se pak dají použít v souboru YAML.

Pokud používáte proměnné i skupiny proměnných, použijte name/value syntaxi jednotlivých neskupených proměnných:

variables:
- group: my-variable-group
- name: my-bare-variable
  value: 'value of my-bare-variable'

Pokud chcete odkazovat na skupinu proměnných, použijte syntaxi makra nebo výraz runtime. V následujícím příkladu má skupina my-variable-group proměnnou s názvem myhello.

variables:
- group: my-variable-group
- name: my-passed-variable
  value: $[variables.myhello] # uses runtime expression

steps:
- script: echo $(myhello) # uses macro syntax
- script: echo $(my-passed-variable) 

Ve stejném kanálu můžete odkazovat na více skupin proměnných. Pokud několik skupin proměnných obsahuje stejnou proměnnou, nastaví skupina proměnných zahrnutá jako poslední v souboru YAML hodnotu proměnné.

variables:
- group: my-first-variable-group
- group: my-second-variable-group

Můžete také odkazovat na skupinu proměnných v šabloně. V šabloně variables.ymlse na skupinu my-variable-group odkazuje. Skupina proměnných obsahuje proměnnou s názvem myhello.

# variables.yml
variables:
- group: my-variable-group

V tomto kanálu je proměnná $(myhello) ze skupiny my-variable-group proměnných zahrnutá a variables.yml odkazuje se na ní.

# azure-pipeline.yml
stages:
- stage: MyStage
  variables:
  - template: variables.yml
  jobs:
  - job: Test
    steps:
    - script: echo $(myhello)

Autorizace skupiny proměnných

Pokud chcete pracovat se skupinou proměnných, musíte skupinu autorizovat. Pokud skupinu proměnných pojmenujete jenom v YAML, může každý, kdo může do úložiště odeslat kód, extrahovat obsah tajných kódů ve skupině proměnných. K autorizaci skupiny použijte jednu z následujících technik:

  • Pokud chcete autorizovat jakýkoli kanál, aby používal skupinu proměnných, přejděte do Azure Pipelines. To může být dobrá volba, pokud ve skupině nemáte žádné tajné kódy. Vyberte skupiny proměnných knihovny>a pak vyberte danou skupinu proměnných a povolte nastavení Povolit přístup ke všem kanálům.

  • Pokud chcete autorizovat skupinu proměnných pro konkrétní kanál, otevřete kanál, vyberte Upravit a pak sestavení zařaďte do fronty ručně. Zobrazí se chyba autorizace prostředků a akce Autorizovat prostředky pro tuto chybu. Tuto akci zvolte, pokud chcete kanál explicitně přidat jako autorizovaný uživatel skupiny proměnných.

Poznámka:

Pokud do kanálu přidáte skupinu proměnných a při očekávaném vytvoření se v buildu nezobrazí chyba autorizace prostředků, vypněte nastavení Povolit přístup ke všem kanálům .

Přístup k hodnotám proměnných ve skupině propojených proměnných stejným způsobem jako proměnné, které definujete v rámci samotného kanálu. Pokud například chcete získat přístup k hodnotě proměnné pojmenované zákazníkem ve skupině proměnných propojené s kanálem, použijte $(customer) v parametru úlohy nebo skriptu. Nemůžete ale získat přístup k tajným proměnným (šifrované proměnné a proměnné trezoru klíčů) přímo ve skriptech – místo toho je nutné je předat jako argumenty úkolu. Další informace najdete v tématu Tajné kódy.

Změny provedené ve skupině proměnných jsou automaticky dostupné pro všechny definice nebo fáze, ke kterým se skupina proměnných propojila.

Výpis skupin proměnných

Pomocí rozhraní příkazového řádku zobrazte seznam skupin proměnných pro spuštění kanálu pomocí příkazu az pipelines variable-group list . Pokud je pro vás rozšíření Azure DevOps pro rozhraní příkazového řádku nové, přečtěte si téma Začínáme s Azure DevOps CLI.

az pipelines variable-group list [--action {manage, none, use}]
                                 [--continuation-token]
                                 [--group-name]
                                 [--org]
                                 [--project]
                                 [--query-order {Asc, Desc}]
                                 [--top]

Volitelné parametry

  • action: Určuje akci, kterou lze provést u skupin proměnných. Akceptované hodnoty jsou spravované, žádné a nepoužívají se.
  • token pro pokračování: Zobrazí seznam skupin proměnných po poskytnutí tokenu pro pokračování.
  • group-name: Název skupiny proměnných. Zástupné cardy jsou přijímány, například new-var*.
  • org: Adresa URL organizace Azure DevOps Nakonfigurujte výchozí organizaci pomocí az devops configure -d organization=ORG_URL. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config. Příklad: --org https://dev.azure.com/MyOrganizationName/.
  • projekt: Název nebo ID projektu. Nakonfigurujte výchozí projekt pomocí az devops configure -d project=NAME_OR_ID. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config.
  • pořadí dotazu: Vypíše výsledky vzestupně nebo sestupně (výchozí). Akceptované hodnoty jsou Asc a Desc.
  • top: Počet skupin proměnných, které se mají zobrazit.

Příklad

Následující příkaz zobrazí seznam prvních tří skupin proměnných ve vzestupném pořadí a vrátí výsledky ve formátu tabulky.

az pipelines variable-group list --top 3 --query-order Asc --output table

ID    Name               Type    Number of Variables
----  -----------------  ------  ---------------------
1     myvariables        Vsts    2
2     newvariables       Vsts    4
3     new-app-variables  Vsts    3

Zobrazení podrobností pro skupinu proměnných

Pomocí příkazu az pipelines variable-group show zobrazte podrobnosti o skupině proměnných v projektu. Pokud je pro vás rozšíření Azure DevOps pro rozhraní příkazového řádku nové, přečtěte si téma Začínáme s Azure DevOps CLI.

az pipelines variable-group show --group-id
                                 [--org]
                                 [--project]

Parametry

  • id skupiny: Povinné. ID skupiny proměnných Id skupiny proměnných najdete v tématu Seznam skupin proměnných.
  • org: Adresa URL organizace Azure DevOps Nakonfigurujte výchozí organizaci pomocí az devops configure -d organization=ORG_URL. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config. Příklad: --org https://dev.azure.com/MyOrganizationName/.
  • projekt: Název nebo ID projektu. Nakonfigurujte výchozí projekt pomocí az devops configure -d project=NAME_OR_ID. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config.

Příklad

Následující příkaz zobrazí podrobnosti o skupině proměnných s ID 4 a vrátí výsledky ve formátu YAML.

az pipelines variable-group show --group-id 4 --output yaml

authorized: false
description: Variables for my new app
id: 4
name: MyNewAppVariables
providerData: null
type: Vsts
variables:
  app-location:
    isSecret: null
    value: Head_Office
  app-name:
    isSecret: null
    value: Fabrikam

Odstranění skupiny proměnných

Pomocí příkazu az pipelines variable-group delete odstraňte v projektu skupinu proměnných. Pokud je pro vás rozšíření Azure DevOps pro rozhraní příkazového řádku nové, přečtěte si téma Začínáme s Azure DevOps CLI.

az pipelines variable-group delete --group-id
                                   [--org]
                                   [--project]
                                   [--yes]

Parametry

  • id skupiny: Povinné. ID skupiny proměnných Id skupiny proměnných najdete v tématu Seznam skupin proměnných.
  • org: Adresa URL organizace Azure DevOps Nakonfigurujte výchozí organizaci pomocí az devops configure -d organization=ORG_URL. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config. Příklad: --org https://dev.azure.com/MyOrganizationName/.
  • projekt: Název nebo ID projektu. Nakonfigurujte výchozí projekt pomocí az devops configure -d project=NAME_OR_ID. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config.
  • Ano: Nepovinný. Nezobrazuje výzvu k potvrzení.

Příklad

Následující příkaz odstraní skupinu proměnných s ID 1 a nezobrazí výzvu k potvrzení.

az pipelines variable-group delete --group-id 1 --yes

Deleted variable group successfully.

Přidání proměnných do skupiny proměnných

Pomocí Azure DevOps CLI můžete přidat proměnnou do skupiny proměnných v kanálu pomocí příkazu az pipelines variable-group variable create . Pokud je pro vás rozšíření Azure DevOps pro rozhraní příkazového řádku nové, přečtěte si téma Začínáme s Azure DevOps CLI.

az pipelines variable-group variable create --group-id
                                            --name
                                            [--org]
                                            [--project]
                                            [--secret {false, true}]
                                            [--value]

Parametry

  • id skupiny: Povinné. ID skupiny proměnných Id skupiny proměnných najdete v tématu Seznam skupin proměnných.
  • name: Povinný argument. Název proměnné, kterou přidáváte.
  • org: Adresa URL organizace Azure DevOps Nakonfigurujte výchozí organizaci pomocí az devops configure -d organization=ORG_URL. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config. Příklad: --org https://dev.azure.com/MyOrganizationName/.
  • projekt: Název nebo ID projektu. Nakonfigurujte výchozí projekt pomocí az devops configure -d project=NAME_OR_ID. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config.
  • tajný kód: Nepovinný. Určuje, jestli je hodnota proměnné tajným kódem. Přijaté hodnoty jsou false a true.
  • hodnota: Požadováno pro proměnnou bez tajného kódu. Hodnota proměnné. U tajných proměnných se v případě , že není zadaný parametr hodnoty , vybere se z proměnné prostředí s předponou AZURE_DEVOPS_EXT_PIPELINE_VAR_ nebo se uživateli zobrazí výzva, aby ho zadal prostřednictvím standardního vstupu. Například proměnná s názvem MySecret může být vstupní pomocí proměnné AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecretprostředí .

Příklad

Následující příkaz vytvoří proměnnou ve skupině proměnných s ID 4. Nová proměnná má název requires-login a má hodnotu True a výsledek se zobrazí ve formátu tabulky.

az pipelines variable-group variable create --group-id 4 --name requires-login --value True --output table

Name            Is Secret    Value
--------------  -----------  -------
requires-login  False        True

Výpis proměnných ve skupině proměnných

Pomocí příkazu az pipelines variable-group variable list můžete vypsat proměnné ve skupině proměnných. Pokud je pro vás rozšíření Azure DevOps pro rozhraní příkazového řádku nové, přečtěte si téma Začínáme s Azure DevOps CLI.

az pipelines variable-group variable list --group-id
                                          [--org]
                                          [--project]

Parametry

  • id skupiny: Povinné. ID skupiny proměnných Id skupiny proměnných najdete v tématu Seznam skupin proměnných.
  • org: Adresa URL organizace Azure DevOps Nakonfigurujte výchozí organizaci pomocí az devops configure -d organization=ORG_URL. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config. Příklad: --org https://dev.azure.com/MyOrganizationName/.
  • projekt: Název nebo ID projektu. Nakonfigurujte výchozí projekt pomocí az devops configure -d project=NAME_OR_ID. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config.

Příklad

Následující příkaz zobrazí seznam všech proměnných ve skupině proměnných s ID 4 a zobrazí výsledek ve formátu tabulky.

az pipelines variable-group variable list --group-id 4 --output table

Name            Is Secret    Value
--------------  -----------  -----------
app-location    False        Head_Office
app-name        False        Fabrikam
requires-login  False        True

Aktualizace proměnných ve skupině proměnných

Aktualizujte proměnnou ve skupině proměnných pomocí příkazu az pipelines variable-group variable update . Pokud je pro vás rozšíření Azure DevOps pro rozhraní příkazového řádku nové, přečtěte si téma Začínáme s Azure DevOps CLI.

az pipelines variable-group variable update --group-id
                                            --name
                                            [--new-name]
                                            [--org]
                                            [--project]
                                            [--prompt-value {false, true}]
                                            [--secret {false, true}]
                                            [--value]

Parametry

  • id skupiny: Povinné. ID skupiny proměnných Id skupiny proměnných najdete v tématu Seznam skupin proměnných.
  • name: Povinný argument. Název proměnné, kterou přidáváte.
  • new-name: Optional. Zadejte, chcete-li změnit název proměnné.
  • org: Adresa URL organizace Azure DevOps Nakonfigurujte výchozí organizaci pomocí az devops configure -d organization=ORG_URL. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config. Příklad: --org https://dev.azure.com/MyOrganizationName/.
  • projekt: Název nebo ID projektu. Nakonfigurujte výchozí projekt pomocí az devops configure -d project=NAME_OR_ID. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config.
  • prompt-value: Nastavte hodnotu true, aby se hodnota tajné proměnné aktualizovala pomocí proměnné prostředí nebo výzvy prostřednictvím standardního vstupu. Přijaté hodnoty jsou false a true.
  • tajný kód: Nepovinný. Určuje, jestli je hodnota proměnné uložená v tajnosti. Přijaté hodnoty jsou false a true.
  • hodnota: Aktualizace hodnotu proměnné. U tajných proměnných použijte parametr prompt-value k zobrazení výzvy k jeho zadání prostřednictvím standardního vstupu. Pro neinteraktivní konzoly lze vybrat z proměnné prostředí s předponou AZURE_DEVOPS_EXT_PIPELINE_VAR_. Například proměnná s názvem MySecret může být vstupní pomocí proměnné AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecretprostředí .

Příklad

Následující příkaz aktualizuje proměnnou requires-login s novou hodnotou False ve skupině proměnných s ID 4. Určuje, že proměnná je tajný kód a zobrazuje výsledek ve formátu YAML. Všimněte si, že výstup zobrazuje hodnotu null místo false, protože se jedná o skrytou hodnotu tajného kódu.

az pipelines variable-group variable update --group-id 4 --name requires-login --value False --secret true --output yaml

requires-login:
  isSecret: true
  value: null

Odstranění proměnných ze skupiny proměnných

Odstraňte proměnnou ze skupiny proměnných pomocí příkazu az pipelines variable-group variable delete . Pokud je pro vás rozšíření Azure DevOps pro rozhraní příkazového řádku nové, přečtěte si téma Začínáme s Azure DevOps CLI.

az pipelines variable-group variable delete --group-id
                                            --name
                                            [--org]
                                            [--project]
                                            [--yes]

Parametry

  • id skupiny: Povinné. ID skupiny proměnných Id skupiny proměnných najdete v tématu Seznam skupin proměnných.
  • name: Povinný argument. Název proměnné, kterou odstraňujete.
  • org: Adresa URL organizace Azure DevOps Nakonfigurujte výchozí organizaci pomocí az devops configure -d organization=ORG_URL. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config. Příklad: --org https://dev.azure.com/MyOrganizationName/.
  • projekt: Název nebo ID projektu. Nakonfigurujte výchozí projekt pomocí az devops configure -d project=NAME_OR_ID. Požadováno, pokud není nakonfigurováno jako výchozí nebo vyzvednuto pomocí git config.
  • Ano: Nepovinný. Nezobrazuje výzvu k potvrzení.

Příklad

Následující příkaz odstraní proměnnou requires-login ze skupiny proměnných s ID 4 a zobrazí výzvu k potvrzení.

az pipelines variable-group variable delete --group-id 4 --name requires-login

Are you sure you want to delete this variable? (y/n): y
Deleted variable 'requires-login' successfully.

Poznámka:

Trezory klíčů využívající řízení přístupu na základě role Azure (Azure RBAC) se nepodporují.

Propojte existující trezor klíčů Azure se skupinou proměnných a namapujte tajné kódy selektivního trezoru na skupinu proměnných.

  1. Na stránce Skupiny proměnných povolte propojování tajných kódů z trezoru klíčů Azure jako proměnné. Budete potřebovat existující trezor klíčů obsahující vaše tajné kódy. Vytvořte trezor klíčů pomocí webu Azure Portal.

    Snímek obrazovky se skupinou proměnných s integrací služby Azure Key Vault

  2. Zadejte koncový bod předplatného Azure a název trezoru obsahujícího vaše tajné kódy.

    Ujistěte se, že připojení ke službě Azure má alespoň oprávnění pro získání a výpis správy trezoru pro tajné kódy. Povolte službě Azure Pipelines, aby tato oprávnění nastavil tak, že vedle názvu trezoru zvolíte Autorizovat . Nebo na webu Azure Portal nastavte oprávnění ručně:

    1. Otevřete Nastavení trezoru a pak zvolte Zásady>přístupu Přidat nové.
    2. Vyberte objekt zabezpečení a pak zvolte instanční objekt pro váš klientský účet.
    3. Vyberte oprávnění k tajným kódům a ujistěte se, že get and List mají značky zaškrtnutí.
    4. Kliknutím na TLAČÍTKO OK uložte změny.
  3. Na stránce Skupiny proměnných vyberte + Přidat a vyberte konkrétní tajné kódy z trezoru pro mapování na tuto skupinu proměnných.

Správa tajných kódů trezoru klíčů

Podívejte se na následující seznam užitečných tipů pro správu tajných kódů.

  • Pouze názvy tajných kódů se mapují na skupinu proměnných, nikoli na hodnoty tajných kódů. Nejnovější hodnota tajného kódu načtená z trezoru se používá ve spuštění kanálu, které je propojené se skupinou proměnných.

  • Jakákoli změna existujících tajných kódů v trezoru klíčů je automaticky dostupná pro všechny kanály, ve které se skupina proměnných používá.

  • Když se do trezoru přidají nebo odstraní nové tajné kódy, přidružené skupiny proměnných se automaticky neaktualizují. Tajné kódy zahrnuté ve skupině proměnných musí být explicitně aktualizovány, aby se správně spustily kanály, které používají skupinu proměnných.

  • Azure Key Vault podporuje ukládání a správu kryptografických klíčů a tajných kódů v Azure. Integrace skupiny proměnných Azure Pipelines v současné době podporuje mapování pouze tajných kódů z trezoru klíčů Azure. Kryptografické klíče a certifikáty se nepodporují.

Rozbalení proměnných ve skupině

Když nastavíte proměnnou ve skupině a použijete ji v souboru YAML, bude se rovnat jiným definovaným proměnným v souboru YAML. Další informace o prioritě proměnných najdete v tématu Proměnné.