<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Templates &#8211; Haikos Blog</title>
	<atom:link href="https://www.hertes.net/tag/templates/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hertes.net</link>
	<description>Blog von Haiko Hertes zu allen Themen rund um Microsoft, Cloud und Datacenter</description>
	<lastBuildDate>Thu, 04 Jun 2020 16:13:19 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Azure ARM Templates mit GitHub Actions deployen</title>
		<link>https://www.hertes.net/2020/06/azure-arm-templates-mit-github-actions-deployen/</link>
					<comments>https://www.hertes.net/2020/06/azure-arm-templates-mit-github-actions-deployen/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Tue, 02 Jun 2020 18:02:33 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Actions]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Deploy]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[IaC]]></category>
		<category><![CDATA[Pipeline]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Skript]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[Templates]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=3922</guid>

					<description><![CDATA[Geht es um den Aufbau automatisierter CI/CD Pipelines für Azure, so denken die meisten wohl eher an Azure DevOps. Aber auch mit GitHub lässt sich so etwas erreichen &#8211; und zwar völlig kostenlos. Das Werkzeug dazu heißt GitHub Actions. Zu GitHub Actions selbst will ich hier gar nicht so viel schreiben &#8211; es gibt bereits einige Blogartikel und co. dazu. Ich verweise aber gerne auf mein Video, welches ich dazu gemacht habe: Nun kam von einem meiner geschätzten Kollegen zu Recht die Frage, wie man denn in dieser (ersten, im Video gezeigten) Variante mehrere ARM Templates bereitstellen kann. Und dazu&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Geht es um den Aufbau automatisierter CI/CD Pipelines für Azure, so denken die meisten wohl eher an Azure DevOps. Aber auch mit GitHub lässt sich so etwas erreichen &#8211; und zwar völlig kostenlos. Das Werkzeug dazu heißt GitHub Actions. Zu GitHub Actions selbst will ich hier gar nicht so viel schreiben &#8211; es gibt bereits einige Blogartikel und co. dazu. Ich verweise aber gerne auf mein Video, welches ich dazu gemacht habe:</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Microsoft Azure ?? Mit GitHub Actions ARM Templates ausrollen" width="500" height="281" src="https://www.youtube.com/embed/TRBw1RyRo_I?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption>Mein YouTube Video zu GitHub Actions</figcaption></figure>



<p>Nun kam von einem meiner geschätzten Kollegen zu Recht die Frage, wie man denn in dieser (ersten, im Video gezeigten) Variante mehrere ARM Templates bereitstellen kann. Und dazu möchte ich hier die passende Antwort liefern&#8230;</p>



<span id="more-3922"></span>



<p>Eine Variante wäre sicherlich, in diesem Skript </p>



<p><a href="https://github.com/HaikoHertes/ActionsDemo/blob/master/.github/workflows/DeployARMtoAzure.yml#L23">https://github.com/HaikoHertes/ActionsDemo/blob/master/.github/workflows/DeployARMtoAzure.yml#L23</a></p>



<p>mehrfach das &#8222;az deployment group create&#8220; aufzurufen &#8211; aber dann müssten man wissen, wie viele Templates es sind und das Skript würde auch schnell sehr lang.</p>



<p>Als aus meiner Sicht bessere Lösung habe ich ein PowerShell Skript geschrieben, dass in der Verzeichnisstruktur des Repositories einen Ordner &#8222;arm\&#8220; erwartet und darin Unterordner mit den Namen der gewünschten Resource Groups. Diese werden falls nötig vom Skript angelegt. Außerdem sucht das Skript Templates im Format XYZ.json und dazugehörige Parameter-Files im Format XYZ.parameters.json. Diese Templates werden nun alphabetisch geordnet mittels ARM bereitgestellt &#8211; egal, wie viele es sind. Dabei werden aus einer Datei &#8222;tags.txt&#8220; falls gewünscht die Tages im Format</p>



<p>Tag = Wert</p>



<p>geladen und bei der Bereitstellung der RGs und Ressourcen mit angewendet. Die zu verwendende Location (nur eine pro RG ist erlaubt, aber das entspricht weitgehend dem üblichen Vorgehen) wird ebenfalls aus einer TXT-Datei location.txt gelesen.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="501" height="308" src="https://www.hertes.net/wp-content/uploads/2020/06/image-1.png" alt="" class="wp-image-3924" srcset="https://www.hertes.net/wp-content/uploads/2020/06/image-1.png 501w, https://www.hertes.net/wp-content/uploads/2020/06/image-1-300x184.png 300w" sizes="(max-width: 501px) 100vw, 501px" /><figcaption>Der erwartete Verzeichnisbaum</figcaption></figure>



<p>Im GitHub Repo müssen zwei Secrets hinterlegt werden:</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="473" src="https://www.hertes.net/wp-content/uploads/2020/06/image-1024x473.png" alt="" class="wp-image-3923" srcset="https://www.hertes.net/wp-content/uploads/2020/06/image-1024x473.png 1024w, https://www.hertes.net/wp-content/uploads/2020/06/image-300x139.png 300w, https://www.hertes.net/wp-content/uploads/2020/06/image-768x355.png 768w, https://www.hertes.net/wp-content/uploads/2020/06/image.png 1148w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Screenshot der GitHub Secrets</figcaption></figure>



<p>Einmal ein Secret für die Credentials (wie man die anlegt zeige ich im <a rel="noreferrer noopener" href="https://youtu.be/TRBw1RyRo_I?t=1227" target="_blank">Video ab 20:27</a>) und einmal die Subscription ID der zu verwendenden Subscription. Ergo ist ein Repo pro Subscription nötig&#8230;</p>



<p>Das PowerShell Script selbst könnt ihr hier herunterladen:</p>



<p><a href="https://github.com/HaikoHertes/ActionsDemo.v2/blob/master/DeployARMtoAzure.ps1">https://github.com/HaikoHertes/ActionsDemo.v2/blob/master/DeployARMtoAzure.ps1</a></p>



<p>Alternativ könnt ihr gleich mein ganzes Demo Repo auf GitHub clonen:</p>



<p><a rel="noreferrer noopener" href="https://github.com/HaikoHertes/ActionsDemo.v2" target="_blank">https://github.com/HaikoHertes/ActionsDemo.v2</a> bzw<br><a rel="noreferrer noopener" href="https://github.com/HaikoHertes/ActionsDemo.v2.git" target="_blank">https://github.com/HaikoHertes/ActionsDemo.v2.git</a> <br><br>Wichtig: Damit mit -Tag bzw. -Tags auch die tags gleich mit bereitgestellt werden können braucht man das Az Modul in Version 4.1.0 und das wiederum ist derzeit nur im Ubuntu-20.04 Image auf GitHub enthalten. Siehe dazu auch hier:</p>



<p><a href="https://github.com/marketplace/actions/azure-powershell-action">https://github.com/marketplace/actions/azure-powershell-action</a><br><a href="https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu2004-README.md">https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu2004-README.md</a><br><a href="https://github.com/actions/virtual-environments/tree/master/images">https://github.com/actions/virtual-environments/tree/master/images</a></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2020/06/azure-arm-templates-mit-github-actions-deployen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
