Udostępnij za pośrednictwem


Zarządzanie grupami zmiennych

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

W tym artykule wyjaśniono, jak tworzyć i używać grup zmiennych w usłudze Azure Pipelines. Grupy zmiennych przechowują wartości i wpisy tajne, które można przekazać do potoku YAML lub udostępnić w wielu potokach w projekcie.

Zmienne tajne w grupach zmiennych są zasobami chronionymi. Możesz dodawać kombinacje zatwierdzeń, kontroli i uprawnień potoku, aby ograniczyć dostęp do zmiennych tajnych w grupie zmiennych. Dostęp do zmiennych niezabezpieczonych nie jest ograniczony przez zatwierdzenia, kontrole ani uprawnienia potoku.

Grupy zmiennych są zgodne z modelem zabezpieczeń biblioteki dla ról i uprawnień.

Tworzenie grupy zmiennych

Możesz utworzyć grupy zmiennych dla przebiegów potoku w projekcie.

Uwaga

Aby utworzyć grupę zmiennych tajnych w celu połączenia wpisów tajnych z magazynu kluczy platformy Azure jako zmiennych, postępuj zgodnie z instrukcjami w artykule Łączenie wpisów tajnych z magazynu kluczy platformy Azure.

Grupę zmiennych można utworzyć w interfejsie użytkownika usługi Azure Pipelines.

Wymagania wstępne

Organizacja i projekt usługi Azure DevOps, w którym masz uprawnienia do tworzenia potoków i zmiennych.

Tworzenie grupy zmiennych

  1. W projekcie usługi Azure DevOps wybierz pozycję Biblioteka potoków>z menu po lewej stronie.

  2. Na stronie Biblioteka wybierz pozycję + Grupa zmiennych.

    Zrzut ekranu przedstawiający ekran Biblioteka i przycisk Dodaj grupę zmiennych.

  3. Na nowej stronie grupy zmiennych w obszarze Właściwości wprowadź nazwę i opcjonalny opis grupy zmiennych.

  4. W obszarze Zmienne wybierz pozycję + Dodaj, a następnie wprowadź nazwę zmiennej i wartość do uwzględnienia w grupie. Jeśli chcesz zaszyfrować i bezpiecznie zapisać wartość, wybierz ikonę blokady obok zmiennej.

  5. Wybierz pozycję + Dodaj , aby dodać każdą nową zmienną. Po zakończeniu dodawania zmiennych wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający konfigurowanie i zapisywanie grupy zmiennych.

Teraz możesz użyć tej grupy zmiennych w potokach projektu.

Możesz utworzyć grupę zmiennych, która łączy się z istniejącym magazynem kluczy platformy Azure i mapować wybrane wpisy tajne usługi Key Vault do grupy zmiennych. Tylko nazwy wpisów tajnych są mapowane na grupę zmiennych, a nie wartości wpisów tajnych. Uruchomienia potoku, które łączą się z grupą zmiennych, pobierają najnowsze wartości wpisów tajnych z magazynu.

Wszelkie zmiany wprowadzone w istniejących wpisach tajnych w magazynie kluczy są automatycznie dostępne dla wszystkich potoków korzystających z grupy zmiennych. Jeśli jednak wpisy tajne są dodawane do magazynu lub usuwane z magazynu, skojarzone grupy zmiennych nie aktualizują się automatycznie. Należy jawnie zaktualizować wpisy tajne, aby uwzględnić je w grupie zmiennych.

Mimo że usługa Key Vault obsługuje przechowywanie kluczy kryptograficznych i certyfikatów oraz zarządzanie nimi na platformie Azure, integracja grup zmiennych usługi Azure Pipelines obsługuje tylko wpisy tajne magazynu kluczy mapowania. Klucze kryptograficzne i certyfikaty nie są obsługiwane.

Uwaga

Magazyny kluczy korzystające z kontroli dostępu opartej na rolach (RBAC) platformy Azure nie są obsługiwane.

Wymagania wstępne

Tworzenie grupy zmiennych

  1. W projekcie usługi Azure DevOps wybierz pozycję Biblioteka> potoków>i grupa zmiennych.
  2. Na stronie Grupy zmiennych wprowadź nazwę i opcjonalny opis grupy zmiennych.
  3. Włącz przełącznik Połącz wpisy tajne z magazynu kluczy platformy Azure jako przełącznik zmiennych.
  4. Wybierz punkt końcowy subskrypcji platformy Azure i nazwę magazynu kluczy.
  5. Włącz usługę Azure DevOps, aby uzyskać dostęp do magazynu kluczy, wybierając pozycję Autoryzuj obok nazwy magazynu.
  6. Na ekranie Wybieranie wpisów tajnych wybierz określone wpisy tajne z magazynu, aby zamapować tę grupę zmiennych, a następnie wybierz przycisk OK.
  7. Wybierz pozycję Zapisz , aby zapisać grupę zmiennych tajnych.

Zrzut ekranu przedstawiający grupę zmiennych z integracją usługi Azure Key Vault.

Uwaga

Połączenie usługi platformy Azure musi mieć co najmniej uprawnienia Pobierz i Wyświetl w magazynie kluczy, które można autoryzować w poprzednich krokach. Te uprawnienia można również podać w witrynie Azure Portal, wykonując następujące kroki:

  1. Otwórz pozycję Ustawienia magazynu kluczy, a następnie wybierz pozycję Konfiguracja>dostępu Przejdź do zasad dostępu.
  2. Na stronie Zasady dostępu, jeśli projekt usługi Azure Pipelines nie znajduje się na liście w obszarze Aplikacje z co najmniej uprawnieniami Pobierz i Wyświetl, wybierz pozycję Utwórz.
  3. W obszarze Uprawnienia wpisu tajnego wybierz pozycję Pobierz i wyświetl, a następnie wybierz pozycję Dalej.
  4. Wybierz jednostkę usługi, a następnie wybierz pozycję Dalej.
  5. Ponownie wybierz pozycję Dalej , przejrzyj ustawienia, a następnie wybierz pozycję Utwórz.

Aby uzyskać więcej informacji, zobacz Używanie wpisów tajnych usługi Azure Key Vault.

Aktualizowanie grup zmiennych

Grupy zmiennych można aktualizować przy użyciu interfejsu użytkownika usługi Azure Pipelines.

  1. W projekcie usługi Azure DevOps wybierz pozycję Biblioteka potoków>z menu po lewej stronie.
  2. Na stronie Biblioteka wybierz grupę zmiennych, którą chcesz zaktualizować. Możesz również umieścić kursor na liście grup zmiennych, wybrać ikonę Więcej opcji i wybrać pozycję Edytuj z menu.
  3. Na stronie grupy zmiennych zmień dowolne właściwości, a następnie wybierz pozycję Zapisz.

Usuwanie grupy zmiennych

Grupy zmiennych można usunąć w interfejsie użytkownika usługi Azure Pipelines.

  1. W projekcie usługi Azure DevOps wybierz pozycję Biblioteka potoków>z menu po lewej stronie.
  2. Na stronie Biblioteka umieść kursor nad grupą zmiennych, którą chcesz usunąć, i wybierz ikonę Więcej opcji.
  3. Wybierz pozycję Usuń z menu, a następnie wybierz pozycję Usuń na ekranie potwierdzenia.

Zarządzanie zmiennymi w grupach zmiennych

Zmienne można zmieniać, dodawać lub usuwać w grupach zmiennych przy użyciu interfejsu użytkownika usługi Azure Pipelines.

  1. W projekcie usługi Azure DevOps wybierz pozycję Biblioteka potoków>z menu po lewej stronie.
  2. Na stronie Biblioteka wybierz grupę zmiennych, którą chcesz zaktualizować. Możesz również umieścić kursor na liście grup zmiennych, wybrać ikonę Więcej opcji i wybrać pozycję Edytuj z menu.
  3. Na stronie grupy zmiennych można wykonywać następujące czynności:
    • Zmień dowolną z nazw zmiennych lub wartości.
    • Usuń dowolne zmienne, wybierając ikonę kosza na śmieci obok nazwy zmiennej.
    • Zmień zmienne na tajne lub niezabezpieczone, wybierając ikonę blokady obok wartości zmiennej.
    • Dodaj nowe zmienne, wybierając pozycję + Dodaj.
  4. Po wprowadzeniu zmian wybierz pozycję Zapisz.

Używanie grup zmiennych w potokach

Grupy zmiennych można używać w potokach YAML lub klasycznych. Zmiany wprowadzone w grupie zmiennych są automatycznie dostępne dla wszystkich definicji lub etapów, z którymi jest połączona grupa zmiennych.

Używanie grup zmiennych w potokach YAML

Po autoryzacji potoku YAML do korzystania z grupy zmiennych można użyć grupy zmiennych lub zmiennych w nim w potoku.

Autoryzowanie potoku YAML do korzystania z grupy zmiennych

Jeśli nazwisz grupę zmiennych tylko w potokach YAML, każdy, kto może wypchnąć kod do repozytorium, może wyodrębnić zawartość wpisów tajnych w grupie zmiennych. W związku z tym, aby używać grupy zmiennych z potokami YAML, należy autoryzować potok do korzystania z grupy. Potoki klasyczne mogą używać grup zmiennych bez oddzielnej autoryzacji.

Potoki można autoryzować do używania grup zmiennych przy użyciu interfejsu użytkownika usługi Azure Pipelines.

  1. W projekcie usługi Azure DevOps wybierz pozycję Biblioteka potoków>z menu po lewej stronie.
  2. Na stronie Biblioteka wybierz grupę zmiennych, którą chcesz autoryzować.
  3. Na stronie grupy zmiennych wybierz kartę Uprawnienia potoku.
  4. Na ekranie Uprawnienia potoku wybierz + pozycję, a następnie wybierz potok do autoryzowania. Możesz też wybrać ikonę Więcej akcji , wybrać pozycję Otwórz dostęp i ponownie wybrać pozycję Otwórz dostęp , aby potwierdzić.

Wybranie potoku autoryzuje ten potok do korzystania z grupy zmiennych. Aby autoryzować inny potok, wybierz ponownie ikonę + . Wybranie pozycji Otwórz dostęp autoryzuje wszystkie potoki projektu do korzystania z grupy zmiennych. Otwarty dostęp może być dobrym rozwiązaniem, jeśli nie masz żadnych wpisów tajnych w grupie.

Innym sposobem autoryzowania grupy zmiennych jest wybranie potoku, wybranie pozycji Edytuj, a następnie ręczne utworzenie kolejki. Zostanie wyświetlony błąd autoryzacji zasobów i można jawnie dodać potok jako autoryzowanego użytkownika grupy zmiennych.

Używanie grupy zmiennych w potoku YAML

Aby użyć zmiennej z grupy zmiennych, dodaj odwołanie do nazwy grupy w pliku potoku YAML. Następnie możesz użyć zmiennych z grupy zmiennych w pliku.

variables:
- group: my-variable-group

W tym samym potoku można odwoływać się do wielu grup zmiennych. Jeśli wiele grup zmiennych zawiera tę samą zmienną, ostatnia grupa zmiennych używająca zmiennej w pliku ustawia wartość zmiennej. Aby uzyskać więcej informacji na temat pierwszeństwa zmiennych, zobacz Rozszerzanie zmiennych.

Możesz również odwołać się do grupy zmiennych w szablonie. Poniższy plik szablonu variables.yml odwołuje się do grupy my-variable-groupzmiennych . Grupa zmiennych zawiera zmienną o nazwie myhello.

variables:
- group: my-variable-group

Potok YAML odwołuje się do szablonu variables.yml i używa zmiennej $(myhello) z grupy my-variable-groupzmiennych .

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

Używanie zmiennych grupy zmiennych w potokach YAML

Uzyskujesz dostęp do wartości zmiennych w połączonej grupie zmiennych w taki sam sposób, jak w przypadku uzyskiwania dostępu do zmiennych zdefiniowanych w potoku. Aby na przykład uzyskać dostęp do wartości zmiennej o nazwie customer w grupie zmiennych połączonej z potokiem, można użyć $(customer) w parametrze zadania lub skrypsie.

Jeśli używasz zarówno zmiennych autonomicznych, jak i grup zmiennych w pliku potoku, użyj name-value składni dla zmiennych autonomicznych.

variables:
- group: my-variable-group
- name: my-standalone-variable
  value: 'my-standalone-variable-value'

Aby odwołać się do zmiennej w grupie zmiennych, możesz użyć składni makr lub wyrażenia środowiska uruchomieniowego. W poniższych przykładach grupa my-variable-group ma zmienną o nazwie myhello.

Aby użyć wyrażenia środowiska uruchomieniowego:

variables:
- group: my-variable-group
- name: my-passed-variable
  value: $[variables.myhello]
- script: echo $(my-passed-variable)

Aby użyć składni makr:

variables:
- group: my-variable-group

steps:
- script: echo $(myhello)

Nie można uzyskać dostępu do zmiennych wpisów tajnych, w tym zaszyfrowanych zmiennych i zmiennych magazynu kluczy, bezpośrednio w skryptach. Te zmienne należy przekazać jako argumenty do zadania. Aby uzyskać więcej informacji, zobacz Zmienne tajne.

Używanie grup zmiennych w potokach klasycznych

Potoki klasyczne mogą używać grup zmiennych bez oddzielnej autoryzacji. Aby użyć grupy zmiennych:

  1. Otwórz potok klasyczny.

  2. Wybierz pozycję Zmienne>Grupy zmiennych, a następnie wybierz pozycję Połącz grupę zmiennych.

  3. W potoku kompilacji zostanie wyświetlona lista dostępnych grup. Łączenie grupy zmiennych z potokiem. Wszystkie zmienne w grupie są dostępne do użycia w potoku.

    W potoku wydania zostanie również wyświetlona lista rozwijana etapów w potoku. Połącz grupę zmiennych z samym potokiem lub z co najmniej jednym określonym etapem potoku wydania. Jeśli łączysz się z co najmniej jednym etapem, zmienne z grupy zmiennych są ograniczone do tych etapów i nie są dostępne w innych etapach wydania.

    Zrzut ekranu przedstawiający łączenie grupy zmiennych.

Podczas ustawiania zmiennej o tej samej nazwie w wielu zakresach jest używany następujący pierwszeństwo, najwyższy pierwszy:

  1. Zmienna ustawiona w czasie kolejki
  2. Zmienna ustawiona w potoku
  3. Zmienna ustawiona w grupie zmiennych

Aby uzyskać więcej informacji na temat pierwszeństwa zmiennych, zobacz Rozszerzanie zmiennych.

Uwaga

Zmienne w różnych grupach połączonych z potokiem w tym samym zakresie (na przykład zadanie lub etap) będą zderzać się, a wynik może być nieprzewidywalny. Upewnij się, że używasz różnych nazw zmiennych we wszystkich grupach zmiennych.