{"id":29042,"date":"2019-02-13T00:00:00","date_gmt":"2019-02-12T23:00:00","guid":{"rendered":"https:\/\/blexin.com\/?p=29042"},"modified":"2021-08-04T16:04:14","modified_gmt":"2021-08-04T14:04:14","slug":"configurazioni-per-nodo-in-azure-pipelines","status":"publish","type":"post","link":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/","title":{"rendered":"Configurazioni per nodo in Azure Pipelines"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" data-attachment-id=\"29043\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/attachment\/a808a228-e39b-48d6-8e5b-19adbf78c7ff\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&amp;ssl=1\" data-orig-size=\"1024,608\" data-comments-opened=\"0\" data-image-title=\"a808a228-e39b-48d6-8e5b-19adbf78c7ff\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-29043\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In Azure Pipelines, le variabili di configurazione rappresentano una funzionalit\u00e0 indispensabile per le proprie release: infatti, \u00e8 possibile salvare dei valori che torneranno utili in fase di build o deploy per configurare gli applicativi nel rilascio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il meccanismo utilizzato dietro le quinte viene definito come&nbsp;<em>variable substitution<\/em>, ed \u00e8 indicato per la configurazione di file come .config o .json. L&#8217;utilizzo di queste variabili in una definizione di una pipeline \u00e8 semplice: basta infatti usare il nome associato alla variabile racchiuso dalla istruzione&nbsp;<code>$(nome_variabile)<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando usiamo i deployment group in Azure Pipelines per associare pi\u00f9 nodi target ad una release, tutti i nodi riceveranno la stessa medesima configurazione presente nelle variabili.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Durante una consulenza da un nostro cliente su Azure Pipelines, \u00e8 per\u00f2 sorta l&#8217;esigenza di dover configurare alcune variabili con valori differenti, in base al nodo target. Ci sono diversi contesti in cui una situazione del genere pu\u00f2 tornare a verificarsi: logging, audit e configurazioni applicative avanzate. Prima di entrare nel dettaglio della soluzione, cerchiamo di capire come funzionano i deployment group e le variabili ad esso associate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cosa sono i deployment group in Azure Pipelines<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I deployment group rappresentano un modo molto semplice in Azure Pipelines di organizzare i nodi su cui si dovr\u00e0 rilasciare un applicativo. La loro configurazione \u00e8 estremamente veloce e si basa sull&#8217;installazione di un agente: infatti, baster\u00e0 eseguire uno script di registrazione gi\u00e0 preimpostato in Azure Pipeline sulla macchina target (figura 1).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta registrato, a seguito di una build e quando sar\u00e0 pronto un nuovo artefatto da rilasciare, l&#8217;agente recuperer\u00e0 quest&#8217;ultimo da Azure DevOps e lo installer\u00e0 sulla macchina target.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"464\" data-attachment-id=\"29047\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/attachment\/1-4\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1-4.png?fit=2162%2C980&amp;ssl=1\" data-orig-size=\"2162,980\" data-comments-opened=\"0\" data-image-title=\"1-4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1-4.png?fit=1024%2C464&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1-4.png?resize=1024%2C464&#038;ssl=1\" alt=\"\" class=\"wp-image-29047\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/1-4-980x444.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/1-4-480x218.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>1. Installazione di un agent nei deployment group<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Durante l&#8217;esecuzione dello script di registrazione saranno richieste alcune informazioni, tra cui il\u00a0<strong>nome dell&#8217;agente<\/strong>\u00a0da utilizzare per la macchina: questo valore ci servir\u00e0 pi\u00f9 avanti per identificare i le variabili da usare in fase di build o release.<br>Al termine dell&#8217;installazione l&#8217;agente \u00e8 correttamente configurato, ed \u00e8 possibile visualizzarne lo stato all&#8217;interno della pagina del deployment group come in figura 2:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"166\" data-attachment-id=\"29050\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/attachment\/2-5\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-5.png?fit=1916%2C310&amp;ssl=1\" data-orig-size=\"1916,310\" data-comments-opened=\"0\" data-image-title=\"2-5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-5.png?fit=1024%2C166&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-5.png?resize=1024%2C166&#038;ssl=1\" alt=\"\" class=\"wp-image-29050\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2-5-980x159.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2-5-480x78.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>2. Stato di un agente<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Siamo finalmente pronti per vedere come configurare le variabili nel nostro deployment group.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cosa sono le variabili in Azure Pipelines<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le variabili rappresentano un modo conveniente per salvare informazioni che saranno poi utilizzate in fase di build o release. Queste possono essere definite nella sezione &#8220;Library&#8221; (figura 3) di Azure DevOps, utilizzando una chiave per identificarle e possono essere di due tipi: in chiaro o segreta (usate per salvare informazioni sensibili).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"339\" data-attachment-id=\"29052\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/attachment\/3-5\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-5.png?fit=1104%2C366&amp;ssl=1\" data-orig-size=\"1104,366\" data-comments-opened=\"0\" data-image-title=\"3-5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-5.png?fit=1024%2C339&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-5.png?resize=1024%2C339&#038;ssl=1\" alt=\"\" class=\"wp-image-29052\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3-5-1024x339.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3-5-980x325.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3-5-480x159.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>3. Library in Azure DevOps<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le variabili possono inoltre essere racchiuse in un gruppo, in modo da averne una buona categorizzazione. Una volta creato il gruppo, \u00e8 sufficiente aggiungere al proprio interno le variabili di cui si ha bisogno (figura 4).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"675\" data-attachment-id=\"29054\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/attachment\/4-5\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-5.png?fit=1704%2C1124&amp;ssl=1\" data-orig-size=\"1704,1124\" data-comments-opened=\"0\" data-image-title=\"4-5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-5.png?fit=1024%2C675&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-5.png?resize=1024%2C675&#038;ssl=1\" alt=\"\" class=\"wp-image-29054\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/4-5-980x646.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/4-5-480x317.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>4. Gruppi di variabili in Azure DevOps<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Seguendo l&#8217;immagine sottostante (figura 5), i gruppi possono essere collegati ad una release nella sezione delle variabili (1) premendo su\u00a0<em>Variable groups<\/em>\u00a0(2) e poi\u00a0<em>Link variable group<\/em>\u00a0(3). Una volta selezionato il gruppo (4) di variabili da utilizzare, \u00e8 anche possibile impostare lo scopo a cui le variabili devono essere associate: per release o per specifico ambiente target (5).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"562\" data-attachment-id=\"29057\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/attachment\/5-4\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/5-4.png?fit=2156%2C1184&amp;ssl=1\" data-orig-size=\"2156,1184\" data-comments-opened=\"0\" data-image-title=\"5-4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/5-4.png?fit=1024%2C562&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/5-4.png?resize=1024%2C562&#038;ssl=1\" alt=\"\" class=\"wp-image-29057\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/5-4-980x538.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/5-4-480x264.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>5. Collegare un gruppo di variabili ad una release<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Come anticipato, le configurazioni presenti in questo gruppo di variabili saranno riportate fedelmente per ogni target presente nel deployment group, ma se questo non fosse il nostro caso? Scopriamo nel prossimo paragrafo come configurare determinate variabili per un singolo nodo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configurare una variabile per nodo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Consideriamo, ad esempio, il caso in cui devo rilasciare una web application e per una release pipeline ho 3 nodi target associati al mio deployment group. Per alcune configurazioni, vorrei che il loro valore fosse specifico del nodo target e non uguale per tutti i nodi. Come fare in questo caso? Ad oggi, purtroppo, non vi \u00e8 nulla di gi\u00e0 pronto in Azure Pipelines per poter gestire questa situazione. Ma la soluzione si rivela piuttosto banale da implementare. Ecco cosa ci occorre fare:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Definire una variabile con una chiave che contenga il nome dell&#8217;agente presente nel deployment group;<\/li><li>Creare all&#8217;interno della propria build un task di tipo&nbsp;<em>Script Powershell<\/em>&nbsp;per poter sostituire manualmente il valore presente in un file di configurazione.<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Per il primo passo baster\u00e0 definire cos\u00ec le variabili:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"345\" data-attachment-id=\"29059\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/attachment\/6-4\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/6-4.png?fit=1720%2C580&amp;ssl=1\" data-orig-size=\"1720,580\" data-comments-opened=\"0\" data-image-title=\"6-4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/6-4.png?fit=1024%2C345&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/6-4.png?resize=1024%2C345&#038;ssl=1\" alt=\"\" class=\"wp-image-29059\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/6-4-980x330.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/6-4-480x162.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>6. Variabili per host<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nota bene<\/strong>: \u00e8 importante che il valore associato a Host1, Host2 e Host3&nbsp;<strong>corrisponda al nome dell&#8217;agente<\/strong>&nbsp;presente nel deployment group. Ad esempio, nel caso in cui il nome dell&#8217;agente sia&nbsp;<strong>PRODSERVER<\/strong>, la mia variabile si chiamer\u00e0&nbsp;<strong><em>PRODSERVER.MyCustomVariable<\/em><\/strong>. Occorre inoltre fare attenzione ai nomi per gli agenti che contengono il trattino (&#8220;-&#8220;) perch\u00e8 in fase di esecuzione lo script sotto potrebbe dare problemi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per recuperare il valore contenuto nella variabile in fase di release, baster\u00e0 aggiungere uno script Powershell di tipo inline con le seguenti istruzioni:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\n# Stampa il valore corrente\nWrite-Output &quot;$($(Agent.Name).MyCustomVariable)&quot;\n\u00a0\n# Leggi il tuo file di configurazione e sostituisci il valore con $($(Agent.Name).MyCustomVariable)\n# ...\n\u00a0\n# Salva il file con la nuova configurazione\n# ...\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">In particolare, l&#8217;istruzione<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nWrite-Output &quot;$($(Agent.Name).MyCustomVariable)&quot;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">non fa altro che recuperare il nome dell&#8217;agente su cui si sta effettuando la release ed&nbsp;<em>espandere<\/em>&nbsp;il valore contenuto nella variabile&nbsp;<strong><em>PRODSERVER.MyCustomVariable<\/em><\/strong>. Con questo semplice script il gioco \u00e8 fatto!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Buon deploy!<\/em><\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Definire variabili di configurazione differenti in base al nodo in Azure Pipelines<\/p>\n","protected":false},"author":196716243,"featured_media":29043,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[688637374],"tags":[688637377,688637539],"class_list":["post-29042","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-azure","tag-devops-it"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Configurazioni per nodo in Azure Pipelines - Blexin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Configurazioni per nodo in Azure Pipelines - Blexin\" \/>\n<meta property=\"og:description\" content=\"Definire variabili di configurazione differenti in base al nodo in Azure Pipelines\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-12T23:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-04T14:04:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"608\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Antonio Liccardi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Antonio Liccardi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/\"},\"author\":{\"name\":\"Antonio Liccardi\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\"},\"headline\":\"Configurazioni per nodo in Azure Pipelines\",\"datePublished\":\"2019-02-12T23:00:00+00:00\",\"dateModified\":\"2021-08-04T14:04:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/\"},\"wordCount\":837,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1\",\"keywords\":[\"Azure\",\"DevOps\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/\",\"name\":\"Configurazioni per nodo in Azure Pipelines - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1\",\"datePublished\":\"2019-02-12T23:00:00+00:00\",\"dateModified\":\"2021-08-04T14:04:14+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1\",\"width\":1024,\"height\":608},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/configurazioni-per-nodo-in-azure-pipelines\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configurazioni per nodo in Azure Pipelines\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\",\"name\":\"Antonio Liccardi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g\",\"caption\":\"Antonio Liccardi\"},\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/author\\\/antonio-liccardiblexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Configurazioni per nodo in Azure Pipelines - Blexin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/","og_locale":"it_IT","og_type":"article","og_title":"Configurazioni per nodo in Azure Pipelines - Blexin","og_description":"Definire variabili di configurazione differenti in base al nodo in Azure Pipelines","og_url":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/","og_site_name":"Blexin","article_published_time":"2019-02-12T23:00:00+00:00","article_modified_time":"2021-08-04T14:04:14+00:00","og_image":[{"width":1024,"height":608,"url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1","type":"image\/png"}],"author":"Antonio Liccardi","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Antonio Liccardi","Tempo di lettura stimato":"4 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/"},"author":{"name":"Antonio Liccardi","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d"},"headline":"Configurazioni per nodo in Azure Pipelines","datePublished":"2019-02-12T23:00:00+00:00","dateModified":"2021-08-04T14:04:14+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/"},"wordCount":837,"image":{"@id":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1","keywords":["Azure","DevOps"],"articleSection":["Blog"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/","url":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/","name":"Configurazioni per nodo in Azure Pipelines - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1","datePublished":"2019-02-12T23:00:00+00:00","dateModified":"2021-08-04T14:04:14+00:00","author":{"@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d"},"breadcrumb":{"@id":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1","width":1024,"height":608},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/it\/blog\/configurazioni-per-nodo-in-azure-pipelines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/it\/"},{"@type":"ListItem","position":2,"name":"Configurazioni per nodo in Azure Pipelines"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/it\/#website","url":"https:\/\/blexin.com\/it\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d","name":"Antonio Liccardi","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g","caption":"Antonio Liccardi"},"url":"https:\/\/blexin.com\/it\/author\/antonio-liccardiblexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_likes_enabled":false,"jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-7yq","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/a808a228-e39b-48d6-8e5b-19adbf78c7ff.png?fit=1024%2C608&ssl=1","_links":{"self":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/29042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/users\/196716243"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/comments?post=29042"}],"version-history":[{"count":5,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/29042\/revisions"}],"predecessor-version":[{"id":29062,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/29042\/revisions\/29062"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media\/29043"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media?parent=29042"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/categories?post=29042"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/tags?post=29042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}