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
W projekcie usługi Azure DevOps wybierz pozycję Biblioteka potoków>z menu po lewej stronie.
Na stronie Biblioteka wybierz pozycję + Grupa zmiennych.
Na nowej stronie grupy zmiennych w obszarze Właściwości wprowadź nazwę i opcjonalny opis grupy zmiennych.
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.
Wybierz pozycję + Dodaj , aby dodać każdą nową zmienną. Po zakończeniu dodawania zmiennych wybierz pozycję Zapisz.
Teraz możesz użyć tej grupy zmiennych w potokach projektu.
Łączenie wpisów tajnych z magazynu kluczy platformy Azure
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
- Magazyn kluczy platformy Azure zawierający wpisy tajne. Magazyn kluczy można utworzyć przy użyciu witryny Azure Portal.
- Połączenie usługi platformy Azure dla projektu.
Tworzenie grupy zmiennych
- W projekcie usługi Azure DevOps wybierz pozycję Biblioteka> potoków>i grupa zmiennych.
- Na stronie Grupy zmiennych wprowadź nazwę i opcjonalny opis grupy zmiennych.
- Włącz przełącznik Połącz wpisy tajne z magazynu kluczy platformy Azure jako przełącznik zmiennych.
- Wybierz punkt końcowy subskrypcji platformy Azure i nazwę magazynu kluczy.
- Włącz usługę Azure DevOps, aby uzyskać dostęp do magazynu kluczy, wybierając pozycję Autoryzuj obok nazwy magazynu.
- Na ekranie Wybieranie wpisów tajnych wybierz określone wpisy tajne z magazynu, aby zamapować tę grupę zmiennych, a następnie wybierz przycisk OK.
- Wybierz pozycję Zapisz , aby zapisać grupę zmiennych tajnych.
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:
- Otwórz pozycję Ustawienia magazynu kluczy, a następnie wybierz pozycję Konfiguracja>dostępu Przejdź do zasad dostępu.
- 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.
- W obszarze Uprawnienia wpisu tajnego wybierz pozycję Pobierz i wyświetl, a następnie wybierz pozycję Dalej.
- Wybierz jednostkę usługi, a następnie wybierz pozycję Dalej.
- 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.
- W projekcie usługi Azure DevOps wybierz pozycję Biblioteka potoków>z menu po lewej stronie.
- 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.
- 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.
- W projekcie usługi Azure DevOps wybierz pozycję Biblioteka potoków>z menu po lewej stronie.
- Na stronie Biblioteka umieść kursor nad grupą zmiennych, którą chcesz usunąć, i wybierz ikonę Więcej opcji.
- 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.
- W projekcie usługi Azure DevOps wybierz pozycję Biblioteka potoków>z menu po lewej stronie.
- 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.
- 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.
- 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.
- W projekcie usługi Azure DevOps wybierz pozycję Biblioteka potoków>z menu po lewej stronie.
- Na stronie Biblioteka wybierz grupę zmiennych, którą chcesz autoryzować.
- Na stronie grupy zmiennych wybierz kartę Uprawnienia potoku.
- 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-group
zmiennych . 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-group
zmiennych .
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:
Otwórz potok klasyczny.
Wybierz pozycję Zmienne>Grupy zmiennych, a następnie wybierz pozycję Połącz grupę zmiennych.
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.
Podczas ustawiania zmiennej o tej samej nazwie w wielu zakresach jest używany następujący pierwszeństwo, najwyższy pierwszy:
- Zmienna ustawiona w czasie kolejki
- Zmienna ustawiona w potoku
- 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.