gsoft.azure_devops_agent
Agent Azure DevOps
Un rôle Ansible qui installe et configure une machine Linux pour être utilisée comme un agent de construction ou de déploiement Azure DevOps.
Voir cet article de blog pour plus de détails.
Exigences
L'installation sur MacOS peut poser problème lorsqu'on essaie d'utiliser un utilisateur administrateur pour se connecter et un autre utilisateur pour exécuter le service.
pipelining = True
peut aider, surtout si vous rencontrez des problèmes où l'utilisateur de l'agent DevOps ne peut pas accéder aux fichiers temporaires créés par Ansible.
Variables du Rôle
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut (voir 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
Le nom de votre compte Azure DevOps, par exemple https://dev.azure.com/VOTRE_NOM_DE_COMPTE
az_devops_accesstoken
Le Jeton d'Accès Personnel (PAT) utilisé pour s'authentifier sur votre compte. Voir ici pour les détails sur la génération de cette valeur.
Note : Pensez à utiliser Ansible Vault pour sécuriser cette valeur.
az_devops_project_name
Le nom du projet Azure DevOps dans lequel enregistrer l'agent (utilisé uniquement pour les groupes de déploiement).
az_devops_agent_version
Version du package de l'agent installé. Doit être mis à jour périodiquement vers la dernière version (voir ici).
az_devops_agent_user
Nom de l'utilisateur utilisé pour exécuter et configurer le service.
az_devops_agent_uid
UID de l'utilisateur utilisé pour exécuter et configurer le service.
az_devops_agent_name
Nom de l'agent affiché dans Azure DevOps (par défaut, c'est le nom de l'hôte).
az_devops_server_url
URL de votre compte Azure DevOps.
az_devops_agent_folder
Emplacement du dossier pour tous les fichiers spécifiques à l'agent (note : il est important que l'utilisateur du service ait des permissions d'exécution sur tous les fichiers de ce dossier).
az_devops_work_folder
Emplacement du dossier pour tous les fichiers spécifiques au travail (c'est-à-dire le code source récupéré et les résultats de construction).
az_devops_agent_pool_name
Nom du pool dans lequel l'agent Azure DevOps est ajouté.
az_devops_agent_role
Utilisez soit
build
,deployment
ouresource
. Le rôle de construction permet d'utiliser l'agent comme serveur de construction dans une pipeline de construction ou de déploiement. Le rôle de déploiement permet d'utiliser l'agent dans un groupe de déploiement. Le rôle de ressource permet d'utiliser l'agent comme une ressource de machine virtuelle qui peut être ciblée par des déploiements à partir d'une pipeline et qui appartient à un environnement.az_devops_deployment_group_tags
À utiliser en conjonction avec le rôle d'agent
deployment
. Permet d'utiliser des tags pour identifier l'agent (ex : QA, Staging, Prod, etc.)az_devops_deployment_group_name
À utiliser en conjonction avec le rôle d'agent
deployment
. Nom du groupe de déploiement dans lequel ajouter l'agent. Cela doit être créé manuellement dans votre projet Azure DevOps au préalable.az_devops_environment_name
À utiliser en conjonction avec le rôle d'agent
resource
. Nom de l'environnement dans lequel ajouter la ressource machine virtuelle. Cela doit être créé manuellement dans votre projet Azure DevOps au préalable.az_devops_agent_replace_existing
Ajoute l'argument
--replace
au script de configuration pour le scénario où vous devez remplacer un agent existant par un nouvel hôte.az_devops_reconfigure_agent
Force une reconfiguration de l'agent même si le service est déjà actif.
az_devops_proxy_url
L'URL du serveur proxy, le format est
http://url:port
Cela suppose que le proxy gère à la fois http et https.
az_devops_proxy_username
Nom d'utilisateur pour le proxy.
Si le proxy ne nécessite pas d'authentification, laissez simplement les valeurs par défaut.
az_devops_proxy_password
Mot de passe pour le proxy.
Encore une fois, si le proxy ne nécessite pas d'authentification, laissez simplement les valeurs par défaut.
Note : Pensez à utiliser Ansible Vault pour sécuriser cette valeur.
az_devops_agent_user_capabilities
Un dictionnaire de variables d'environnement à définir pour le processus de l'agent, qui se traduit par des capacités utilisateur, ce qui peut être utile pour définir les demandes de pipeline de publication.
Exemple d'utilisation :
- az_devops_agent_user_capabilities:
user_capability_key: user_capability_value
Exemples de Playbooks
Agent de Construction
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: build
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
Agent de Déploiement
- 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"
Ressource
- 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: ***
Licence
Copyright © 2020, GSoft inc. Ce code est sous licence Apache, Version 2.0. Vous pouvez obtenir une copie de cette licence sur https://github.com/gsoft-inc/gsoft-license/blob/master/LICENSE.
ansible-galaxy install gsoft.azure_devops_agent