gsoft.azure_devops_agent
Agent Azure DevOps
Rola Ansible, która instaluje i konfiguruje maszynę Linux, aby używać jej jako agenta do budowy lub wdrażania Azure DevOps.
Zobacz ten wpis na blogu po więcej szczegółów.
Wymagania
Instalacja na MacOS może sprawiać problemy, gdy próbujesz użyć jednego użytkownika z uprawnieniami administratora do połączenia, a innego użytkownika do uruchomienia usługi. Ustawienie pipelining = True może pomóc, szczególnie jeśli napotkasz problemy, w których użytkownik agenta devops nie może uzyskać dostępu do tymczasowych plików tworzonych przez ansible.
Zmienne roli
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml
):
az_devops_accountname: null
az_devops_accesstoken: null
az_devops_project_name: null
az_devops_agent_version: 2.188.3
az_devops_agent_user: "az_devops_agent"
az_devops_agent_uid: null
az_devops_agent_name: "{{ ansible_hostname }}"
az_devops_server_url: "https://dev.azure.com/{{ az_devops_accountname }}"
az_devops_agent_folder: "/home/{{ az_devops_agent_user }}/agent/"
az_devops_work_folder: "/home/{{ az_devops_agent_user }}/agent/_work"
az_devops_agent_pool_name: "Default"
az_devops_agent_role: "build"
az_devops_deployment_group_tags: null
az_devops_environment_name: null
az_devops_deployment_group_name: null
az_devops_agent_replace_existing: false
az_devops_reconfigure_agent: false
az_devops_agent_user_capabilities: null
az_devops_proxy_url: null
az_devops_proxy_username: null
az_devops_proxy_password: null
az_devops_accountname
Nazwa Twojego konta Azure DevOps, tzn. https://dev.azure.com/TWOJA_NAZWA_KONTA
az_devops_accesstoken
Osobisty token dostępu (PAT) używany do autoryzacji w Twoim koncie. Zobacz tutaj, jak wygenerować tę wartość.
Uwaga: Rozważ użycie Ansible Vault, aby zabezpieczyć tę wartość.
az_devops_project_name
Nazwa projektu Azure DevOps, w którym zarejestrujesz agenta (używana tylko dla grup wdrożeniowych).
az_devops_agent_version
Wersja zainstalowanego pakietu agenta. Powinna być okresowo aktualizowana do najnowszej wersji (zobacz tutaj).
az_devops_agent_user
Nazwa użytkownika używanego do uruchamiania i konfigurowania usługi.
az_devops_agent_uid
UID użytkownika używanego do uruchamiania i konfigurowania usługi.
az_devops_agent_group
Domyślna grupa użytkownika używanego do uruchamiania i konfigurowania usługi.
az_devops_agent_name
Nazwa agenta widoczna w Azure DevOps (domyślnie nazwa hosta).
az_devops_server_url
URL Twojego konta Azure DevOps.
az_devops_agent_folder
Miejsce folderu dla wszystkich plików specyficznych dla agenta (uważaj: ważne, aby użytkownik usługi miał uprawnienia do wykonania na wszystkich plikach w tym folderze).
az_devops_work_folder
Miejsce folderu dla wszystkich plików roboczych (tj. pobranego kodu źródłowego i wyników budowy).
az_devops_agent_pool_name
Nazwa puli, do której dodawany jest agent Azure DevOps.
az_devops_agent_role
Użyj jednej z ról:
build
,deployment
lubresource
. Rola budowy pozwala na użycie agenta jako serwera budowy w pipeline budowy lub wydania. Rola wdrożenia pozwala na użycie agenta w grupie wdrożeniowej. Rola zasobu pozwala na użycie agenta jako zasobu maszyny wirtualnej, która może być kierowana przez wdrożenia z pipeline i należy do danego środowiska.az_devops_deployment_group_tags
Użyj w połączeniu z rolą agenta
deployment
. Pozwala na używanie tagów do identyfikacji agenta (np. QA, Staging, Prod itp.)az_devops_deployment_group_name
Użyj w połączeniu z rolą agenta
deployment
. Nazwa grupy wdrożeniowej, do której dodasz agenta. To musi być ręcznie utworzone wcześniej w Twoim projekcie Azure DevOps.az_devops_environment_name
Użyj w połączeniu z rolą agenta
resource
. Nazwa środowiska, do którego dodasz zasób VM. To również musi być ręcznie utworzone wcześniej w Twoim projekcie Azure DevOps.az_devops_agent_replace_existing
Dodaje argument
--replace
do skryptu konfiguracyjnego dla scenariusza, gdy potrzebujesz zastąpić istniejącego agenta nowym hostem.az_devops_reconfigure_agent
Wymusza ponowną konfigurację agenta, nawet jeśli usługa jest już aktywna.
az_devops_proxy_url
URL serwera proxy, format to
http://url:port
Zakłada się, że proxy obsługuje zarówno http, jak i https.
az_devops_proxy_username
Nazwa użytkownika dla proxy.
Jeśli proxy nie wymaga autoryzacji, po prostu pozostaw domyślne.
az_devops_proxy_password
Hasło dla proxy.
Ponownie, jeśli proxy nie wymaga autoryzacji, po prostu pozostaw domyślne.
Uwaga: Rozważ użycie Ansible Vault, aby zabezpieczyć tę wartość.
az_devops_agent_user_capabilties
Słownik zmiennych środowiskowych do ustawienia dla procesu agenta, które przekładają się na możliwości użytkownika, co może być pomocne w określaniu wymagań pipeline'a wydania
Przykład użycia:
- az_devops_agent_user_capabilties:
user_capabilty_key: user_capability_value
Przykładowe Playbooki
Agent budowy
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: build
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
Agent wdrożenia
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: deployment
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
- az_devops_project_name: baz
- az_devops_deployment_group_name: fubar_group
- az_devops_deployment_group_tags: "web,prod"
Zasób
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: resource
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
- az_devops_project_name: baz
- az_devops_environment_name: staging
Proxy
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: build
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
- az_devops_proxy_url: "http://127.0.0.1:8080"
- az_devops_proxy_username: bob
- az_devops_proxy_password: ***
Licencja
Copyright © 2020, GSoft inc. Ten kod jest licencjonowany na podstawie Licencji Apache, Wersja 2.0. Możesz uzyskać kopię tej licencji pod adresem https://github.com/gsoft-inc/gsoft-license/blob/master/LICENSE.
ansible-galaxy install gsoft.azure_devops_agent