<?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>Architecting the future</title>
	<atom:link href="https://blog.frankovic.net/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.frankovic.net</link>
	<description>Hybrid, cloud and everything in between!</description>
	<lastBuildDate>Thu, 05 Nov 2020 19:35:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
<site xmlns="com-wordpress:feed-additions:1">6663726</site>	<item>
		<title>AWS Shell in Windows Terminal</title>
		<link>https://blog.frankovic.net/2020/10/24/aws-shell-in-windows-terminal/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=aws-shell-in-windows-terminal</link>
					<comments>https://blog.frankovic.net/2020/10/24/aws-shell-in-windows-terminal/#comments</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Sat, 24 Oct 2020 12:34:48 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[Windows 10]]></category>
		<category><![CDATA[Windows terminal]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=729</guid>

					<description><![CDATA[Recently I had a need to run some AWS commands to configure S3 buckets. Of course, I could have done that by simply installing AWS CLI in Windows and running... ]]></description>
										<content:encoded><![CDATA[
<p>Recently I had a need to run some AWS commands to configure S3 buckets. Of course, I could have done that by simply installing AWS CLI in Windows and running it from PowerShell shell. </p>



<p>Of course, I wanted to make things bit more interesting so I decided to add AWS shell to Windows terminal as drop down option. </p>



<h3 class="wp-block-heading">Install Python, aws-shell and AWS CLI</h3>



<p>Step one is to install Python for Windows. Latest version as of writing this article is <a rel="noreferrer noopener" href="https://www.python.org/downloads/release/python-390/" target="_blank">Python 3.9.0.</a> Note where Python installs as you will need this info later. By default it will be in C:\Users\<strong>YourUsername</strong>\AppData\Local\Programs\Python\Python39&gt;.</p>



<p>Nest step is to open command line, go to installation folder and run the following command to install aws-shell</p>



<pre class="wp-block-code"><code lang="powershell" class="language-powershell">pip install aws-shell</code></pre>



<p>After approximately one minute you will have installed aws-shell.</p>



<p>Install AWS CLI for Windows by downloading installer from this <a rel="noreferrer noopener" href="https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-windows.html" target="_blank">link</a>. </p>



<h3 class="wp-block-heading">Add AWS shell to Windows terminal</h3>



<p>Open Windows terminal and from dropdown select Settings.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="776" height="326" src="https://blog.frankovic.net/wp-content/uploads/2020/10/Windows-Terminal-Settings.png" alt="" class="wp-image-732" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/Windows-Terminal-Settings.png 776w, https://blog.frankovic.net/wp-content/uploads/2020/10/Windows-Terminal-Settings-300x126.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/10/Windows-Terminal-Settings-768x323.png 768w" sizes="(max-width: 776px) 100vw, 776px" /></figure>



<p>In the profiles section add following lines:</p>



<pre class="wp-block-code"><code lang="json" class="language-json">{
"name": "AWS Shell",
"commandline": "C:\\Users\\YourUsername\\AppData\\Local\\Programs\\Python\\Python39\\Scripts\\aws-shell.exe",
}</code></pre>



<p>If you wish to beautify it a bit more, you can add icon to the drop down menu in Windows Terminal and maybe select different font.</p>



<pre class="wp-block-code"><code lang="json" class="language-json">{
"name": "AWS Shell",
"commandline": "C:\\Users\\YourUsername\\AppData\\Local\\Programs\\Python\\Python39\\Scripts\\aws-shell.exe",
"icon" : "C:\\Program Files\\Amazon\\AWSCLIV2\\aws-logo.ico",
"acrylicOpacity" : 0.80,
"fontFace": "Lucida Sans Typewriter"
}</code></pre>



<p>Final result should look similar to this</p>



<div class="wp-block-advgb-video advgb-video-block full-width" data-video="https://blog.frankovic.net/wp-content/uploads/2020/10/Windows-Terminal-AWS-CLI.mp4" data-source="local" data-video-attr="loop,muted,autoplay,playsinline" data-video-preload="auto"><div class="advgb-video-wrapper full-width no-lightbox"><video class="full-width" height="329" loop muted autoplay preload="auto" playsinline><source src="https://blog.frankovic.net/wp-content/uploads/2020/10/Windows-Terminal-AWS-CLI.mp4"/>Your browser does not support HTML5 video.</video></div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/10/24/aws-shell-in-windows-terminal/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		<enclosure url="https://blog.frankovic.net/wp-content/uploads/2020/10/Windows-Terminal-AWS-CLI.mp4" length="0" type="video/mp4" />

		<post-id xmlns="com-wordpress:feed-additions:1">729</post-id>	</item>
		<item>
		<title>Grafana on Azure (part 2)</title>
		<link>https://blog.frankovic.net/2020/10/04/grafana-on-azure-part-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=grafana-on-azure-part-2</link>
					<comments>https://blog.frankovic.net/2020/10/04/grafana-on-azure-part-2/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Sun, 04 Oct 2020 07:31:00 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Grafana]]></category>
		<category><![CDATA[Unifi]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=697</guid>

					<description><![CDATA[In part 1 of this series post I gave brief explanation on how to install and configure Grafana, how to configure Azure monitor plugin and start collecting data from Azure... ]]></description>
										<content:encoded><![CDATA[
<p>In <a href="https://blog.frankovic.net/2020/10/02/grafana-on-azure-part-2/" target="_blank" rel="noreferrer noopener">part 1</a> of this series post I gave brief explanation on how to install and configure Grafana, how to configure Azure monitor plugin and start collecting data from Azure virtual machines.</p>



<p>In this post I will go through Grafana setup to monitor and visualize data from Unifi controller that is also running in Azure virtual machine on Ubuntu distribution.</p>



<h3 class="wp-block-heading">Unifi-pooler</h3>



<p>Unifi-pooler is small piece of software that is running on virtual machine where Unifi controller is located. It pulls data from the controller and saves it into the InfluxDB database. Grafana then connects to that database, collects data and visualizes it.</p>



<h4 class="wp-block-heading">Create unifi-pooler account in Unifi</h4>



<ol class="wp-block-list"><li>Go to <code>Settings -&gt; Admins</code></li><li>Add a read-only user (<code>unifipoller</code>) with a <a rel="noreferrer noopener" href="https://passwordsgenerator.net/" target="_blank">nice long password</a>. </li><li>The new user needs access to each site. For each UniFi Site you want to poll, add admin via the &#8216;Invite existing admin&#8217; option or in newer versions just select option to inherit to all sites.</li><li>Take note of the username and password, you need to put it into the unifi-poller config file.</li></ol>



<h3 class="wp-block-heading">Install InfluxDB and create database</h3>



<p>First we need to install InfluxDB on Unifi controller</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">echo "deb https://repos.influxdata.com/ubuntu bionic stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
sudo apt -y update
sudo apt install -y influxdb
sudo systemctl start influxdb</code></pre>



<p>Than we need to create new database</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">influx -host localhost -port 8086
CREATE DATABASE unifi
USE unifi
CREATE USER unifipoller WITH PASSWORD 'unifipoller' WITH ALL PRIVILEGES
GRANT ALL ON unifi TO unifipoller</code></pre>



<div style="color:#32373c;background-color:#ff3860" class="wp-block-genesis-blocks-gb-notice gb-font-size-18 gb-block-notice" data-id="24efa7"><div class="gb-notice-title" style="color:#fff"><p>Notice</p></div><div class="gb-notice-text" style="border-color:#ff3860"><p>Make note of the <strong>hostname</strong>, <strong>port</strong>, <strong>database name</strong>, and <strong>user/pass</strong> for the unifi-poller config file.</p></div></div>



<h3 class="wp-block-heading">Install unifi-pooler</h3>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">curl -s https://golift.io/gpgkey | sudo apt-key add -
echo deb https://dl.bintray.com/golift/ubuntu bionic main | sudo tee /etc/apt/sources.list.d/golift.list
sudo apt update
sudo apt install unifi-poller</code></pre>



<p></p>



<h5 class="wp-block-heading">Edit config file</h5>



<p>Use your favorite editor</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">sudo nano /etc/unifi-poller/up.conf</code></pre>



<p>or if you a hard core command line guru</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">sudo vi /etc/unifi-poller/up.conf</code></pre>



<p>You will want to change these settings</p>



<pre class="wp-block-code"><code lang="apacheconf" class="language-apacheconf">[unifi.defaults]
  url  = "https://your.unifi.controller.ip:8443"
  user = "unifipoller"
  pass = "unifipoller"
[influxdb]
  url  = "http://your.influxdb.ip:8086"</code></pre>



<p>Don&#8217;t forget to enter correct username and password and open required ports if you have firewall.</p>



<h5 class="wp-block-heading">Restart the service</h5>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">sudo systemctl restart unifi-poller</code></pre>



<h5 class="wp-block-heading">Check the log for errors</h5>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">tail -f -n100  /var/log/syslog /var/log/messages | grep unifi-poller</code></pre>



<h3 class="wp-block-heading">Add the data source to Grafana</h3>



<p>As in <a href="https://blog.frankovic.net/2020/10/02/grafana-on-azure-part-2/" target="_blank" rel="noreferrer noopener">part 1</a> when we configured Azure monitor as data source, now we need to ad InfluxDB as data source.</p>



<ol class="wp-block-list"><li>Open the side menu by clicking the Grafana icon in the top header.</li><li>In the side menu under the Dashboards link you should find a link named Data Sources.</li><li>Click the + Add data source button in the top header.</li><li>Select InfluxDB from the Type dropdown.</li><li>Select InfluxQL or Flux from the Query Language list.</li></ol>



<p></p>



<h3 class="wp-block-heading">Add Unifi dashboards to Grafana</h3>



<p>At this point, data is being ingested in InfluxDB and all that is left is to add dashboards to the Grafana interface.</p>



<p>Grafana official <a rel="noreferrer noopener" href="https://grafana.com/grafana/dashboards?search=unifi-poller&amp;dataSource=influxdb" target="_blank">repository </a>contains several interesting Unifi dashboards for free. Installation is easy and straightforward as explained in <a rel="noreferrer noopener" href="https://blog.frankovic.net/2020/10/01/grafana-on-azure/" target="_blank">part 1</a>.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-1"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img decoding="async" width="945" height="711" src="https://blog.frankovic.net/wp-content/uploads/2020/10/image-8.png" alt="" data-id="720" class="wp-image-720 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/image-8.png 945w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-8-300x226.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-8-768x578.png 768w" sizes="(max-width: 945px) 100vw, 945px" /></figure></li></ul></figure>



<p>Since some of these dashboards contain additional plugins, I recommend you to install them beforehand on Grafana VM.</p>



<p>Clock plugin</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">grafana-cli plugins install grafana-clock-panel</code></pre>



<p>Pie-chart plugin</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">grafana-cli plugins install grafana-piechart-panel</code></pre>



<p>Restart Grafana server</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">service grafana-server restart</code></pre>



<p>I had some issues with UniFi-Poller: Client Insights &#8211; InfluxDB dashboard because it uses <a href="https://grafana.com/grafana/plugins/natel-discrete-panel" target="_blank" rel="noreferrer noopener">Discrete plugin</a> which installs fine but for some reason does not work in dashboard.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/10/04/grafana-on-azure-part-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">697</post-id>	</item>
		<item>
		<title>Grafana on Azure (part 1)</title>
		<link>https://blog.frankovic.net/2020/10/01/grafana-on-azure/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=grafana-on-azure</link>
					<comments>https://blog.frankovic.net/2020/10/01/grafana-on-azure/#comments</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Thu, 01 Oct 2020 06:08:59 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Grafana]]></category>
		<category><![CDATA[Unifi]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=658</guid>

					<description><![CDATA[For long time now I have been searching for some kind of universal visualization tool that could pull data from many different sources and visualize them in eye pleasing but... ]]></description>
										<content:encoded><![CDATA[
<p>For long time now I have been searching for some kind of universal visualization tool that could pull data from many different sources and visualize them in eye pleasing but useful interface.</p>



<p>Ease of use and setup was very important to me, as well as large number of predefined dashboards. Grafana was next in line for trial, and I must say I am very happy how it is working out for me. Fact that there are pre-built images in Azure one also welcome bonus.</p>



<p>My use case for Grafana is two fold. I want to monitor some home networking and storage equipment such as Unifi switches, access points and gateways and Synology NAS. At the same time I want to access Azure Monitor and Azure Log Analytics data and visualize it in Grafana.</p>



<h3 class="wp-block-heading">What is Grafana?</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Grafana is open source visualization and analytics software. It allows you to query, visualize, alert on, and explore your metrics no matter where they are stored. In plain English, it provides you with tools to turn your time-series database (TSDB) data into beautiful graphs and visualizations.</p><cite>https://grafana.com/docs/grafana/latest/getting-started/what-is-grafana/</cite></blockquote>



<p>I am using free of charge version which does have some limitations <a rel="noreferrer noopener" href="https://grafana.com/blog/2019/09/04/how-we-differentiate-grafana-enterprise-from-open-source-grafana/" target="_blank">compared </a>to payed one but those where minor for my use case. </p>



<h3 class="wp-block-heading">Setup Grafana in Azure</h3>



<p>I opted to use free official Grafana image from Azure marketplace as it was fastest and easiest way to deploy it. This image is intended to be used for testing and PoC scenarios. </p>



<p>After selecting Create option for Grafana marketplace item we need to fill in couple of attributes and that is it.</p>



<p>Make sure to fill correct values and remember any usernames and passwords. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-2"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img decoding="async" width="727" height="700" src="https://blog.frankovic.net/wp-content/uploads/2020/10/image.png" alt="" data-id="663" class="wp-image-663" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/image.png 727w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-300x289.png 300w" sizes="(max-width: 727px) 100vw, 727px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="724" height="298" src="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana2.png" alt="" data-id="665" data-link="https://blog.frankovic.net/2020/10/01/grafana-on-azure/grafana2/" class="wp-image-665" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana2.png 724w, https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana2-300x123.png 300w" sizes="auto, (max-width: 724px) 100vw, 724px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="756" height="428" src="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana3.png" alt="" data-id="666" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana3.png" data-link="https://blog.frankovic.net/2020/10/01/grafana-on-azure/grafana3/" class="wp-image-666" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana3.png 756w, https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana3-300x170.png 300w" sizes="auto, (max-width: 756px) 100vw, 756px" /></figure></li></ul><figcaption class="blocks-gallery-caption is-layout-flex wp-block-gallery-is-layout-flex">Grafana setup in Azure</figcaption></figure>



<figure class="wp-block-gallery alignright columns-1 is-cropped wp-block-gallery-3"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="331" height="282" src="https://blog.frankovic.net/wp-content/uploads/2020/10/image-1.png" alt="" data-id="669" class="wp-image-669 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/image-1.png 331w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-1-300x256.png 300w" sizes="auto, (max-width: 331px) 100vw, 331px" /></figure></li></ul></figure>



<p>Creating VM and deploying Grafana takes approximately 5 minutes. In my case I selected Standard DS2 v2 virtual machine which is probably overkill for me, but it is just PoC for now and I can reduce its size later on if needed.</p>



<p></p>



<p>Open http://&lt;your hostname or IP address>:3000 and you will be presented with Grafana login screen. Initial username and password are Admin:Admin if you installed it from scratch. If you used Grafana image from Azure, username is Admin and password you set up in step one of creating VM from image.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="728" height="422" src="https://blog.frankovic.net/wp-content/uploads/2020/10/image-2.png" alt="" class="wp-image-670" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/image-2.png 728w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-2-300x174.png 300w" sizes="auto, (max-width: 728px) 100vw, 728px" /></figure>



<h3 class="wp-block-heading">Setup Azure monitor data source</h3>



<p>There are multiple steps involved and you will have to have sufficient permissions in Azure portal and on Azure AD instance to complete these.</p>



<h4 class="wp-block-heading">Setup Azure resources</h4>



<ol class="wp-block-list"><li>Go to Azure Portal &#8211; Azure Active Directory and select App registrations</li><li>Select New registration and enter required data<ul><li>Give it some meaningfull name</li><li>Leave Supported accounts as is</li><li>For Redirect URI you can enter anything (eg. https://localhost)</li></ul></li><li>Hit Register</li><li>Go back to App registrations and select your app</li><li>Select Certificates and secrets</li><li>Create new secret</li><li>Select Subscriptions</li><li>Select your subscription</li><li>Select Access control (IAM)</li><li>Add &#8211; Add role assignment<ul><li>Role &#8211; Reader</li><li>In the Select field search for application name you just regstered</li></ul></li><li>Select Save</li></ol>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-4"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="919" height="511" src="https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD1.png" alt="" data-id="672" data-link="https://blog.frankovic.net/2020/10/01/grafana-on-azure/azure-ad1/" class="wp-image-672" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD1.png 919w, https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD1-300x167.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD1-768x427.png 768w" sizes="auto, (max-width: 919px) 100vw, 919px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="823" height="297" src="https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD2.png" alt="" data-id="673" data-link="https://blog.frankovic.net/2020/10/01/grafana-on-azure/azure-ad2/" class="wp-image-673" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD2.png 823w, https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD2-300x108.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD2-768x277.png 768w" sizes="auto, (max-width: 823px) 100vw, 823px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="819" height="595" src="https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD3.png" alt="" data-id="674" data-link="https://blog.frankovic.net/2020/10/01/grafana-on-azure/azure-ad3/" class="wp-image-674" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD3.png 819w, https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD3-300x218.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD3-768x558.png 768w" sizes="auto, (max-width: 819px) 100vw, 819px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="334" src="https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD4-1024x334.png" alt="" data-id="675" data-link="https://blog.frankovic.net/2020/10/01/grafana-on-azure/azure-ad4/" class="wp-image-675" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD4-1024x334.png 1024w, https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD4-300x98.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD4-768x250.png 768w, https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD4.png 1104w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="839" height="657" src="https://blog.frankovic.net/wp-content/uploads/2020/10/ad3.png" alt="" data-id="684" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/10/ad3.png" data-link="https://blog.frankovic.net/2020/10/01/grafana-on-azure/ad3/" class="wp-image-684" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/ad3.png 839w, https://blog.frankovic.net/wp-content/uploads/2020/10/ad3-300x235.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/10/ad3-768x601.png 768w" sizes="auto, (max-width: 839px) 100vw, 839px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="646" height="449" src="https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD5.png" alt="" data-id="676" data-link="https://blog.frankovic.net/2020/10/01/grafana-on-azure/azure-ad5/" class="wp-image-676 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD5.png 646w, https://blog.frankovic.net/wp-content/uploads/2020/10/Azure-AD5-300x209.png 300w" sizes="auto, (max-width: 646px) 100vw, 646px" /></figure></li></ul></figure>



<p>I step 7 we gave our newly registered Azure AD application read access to all resources in our subscription.</p>



<h4 class="wp-block-heading">Setup Azure monitor data source in Grafana</h4>



<ol class="wp-block-list"><li>Open your Grafana admin page and login</li><li>Select Gear wheel and select Data Sources</li><li>Select Azure Monitor data source</li><li>Fill in required field for Azure monitor<ul><li>Information such as Tenant ID, Client ID can be located in Azure portal where you created your Azure AD application</li></ul></li><li>Click Save and test</li></ol>



<p>Azure Log Analytics API Details are optional but you can always add them later on.</p>



<figure class="wp-block-gallery columns-2 is-cropped wp-block-gallery-5"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="364" height="536" src="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana-1.png" alt="" data-id="686" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana-1.png" data-link="https://blog.frankovic.net/2020/10/01/grafana-on-azure/grafana-1/" class="wp-image-686" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana-1.png 364w, https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana-1-204x300.png 204w" sizes="auto, (max-width: 364px) 100vw, 364px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="512" height="1024" src="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana-2-512x1024.png" alt="" data-id="687" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana-2.png" data-link="https://blog.frankovic.net/2020/10/01/grafana-on-azure/grafana-2/" class="wp-image-687 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana-2-512x1024.png 512w, https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana-2-150x300.png 150w, https://blog.frankovic.net/wp-content/uploads/2020/10/Grafana-2.png 599w" sizes="auto, (max-width: 512px) 100vw, 512px" /></figure></li></ul></figure>



<p>Considering that your connection was successful, now we can finally add some dashboards to our Grafana.</p>



<h3 class="wp-block-heading">Visualize Azure VM data in Grafana</h3>



<p>Grafana community is very large and there are lots of interesting <a rel="noreferrer noopener" href="https://grafana.com/grafana/dashboards" target="_blank">pre-configured dashboards </a>to choose from. I just did a <a href="https://grafana.com/grafana/dashboards?search=Azure" target="_blank" rel="noreferrer noopener">quick search on Azure</a> topic and got about 30 dashboards.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-6"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="611" src="https://blog.frankovic.net/wp-content/uploads/2020/10/image-3-1024x611.png" alt="" data-id="690" class="wp-image-690 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/image-3-1024x611.png 1024w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-3-300x179.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-3-768x459.png 768w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-3.png 1246w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul></figure>



<p>In my case I was interested in Azure Virtual Machineby yesoreyeram.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-7"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="632" src="https://blog.frankovic.net/wp-content/uploads/2020/10/image-4-1024x632.png" alt="" data-id="691" class="wp-image-691 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/image-4-1024x632.png 1024w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-4-300x185.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-4-768x474.png 768w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-4.png 1250w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul></figure>



<p>Note the ID of this dashboard as we will need it in next steps.</p>



<ol class="wp-block-list"><li>Go to Grafana admin page</li><li>Select + sign on the left and select Import</li><li>Paste plugin ID and select Load<ul><li>Fill in required fields</li></ul></li></ol>



<p>At the time of this posting, dashboard had a small error in visualization of CPU Usage gauge. To fix it follow these steps:</p>



<ol class="wp-block-list"><li>Hover over CPU usage gauge</li><li>In drop down menu select Edit</li><li>On the left select Visualizations if not already selected</li><li>Select Gauge</li><li>On top left select back arrow</li></ol>



<p>After loading, this dashboard will give you options to choose some parameters such ads Subscription to view, resource group and VMs.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="547" height="56" src="https://blog.frankovic.net/wp-content/uploads/2020/10/image-5.png" alt="" class="wp-image-693" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/image-5.png 547w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-5-300x31.png 300w" sizes="auto, (max-width: 547px) 100vw, 547px" /></figure>



<p>Here you can switch between different attributes. If you want to view same one with same selection of attributes every time you open dashboard, in the top right corner select Save icon and move Save current variables slider to On.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="499" height="290" src="https://blog.frankovic.net/wp-content/uploads/2020/10/image-6.png" alt="" class="wp-image-694" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/image-6.png 499w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-6-300x174.png 300w" sizes="auto, (max-width: 499px) 100vw, 499px" /></figure>



<p>Now, you will have dashboard similar to this one.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-8"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="949" src="https://blog.frankovic.net/wp-content/uploads/2020/10/image-7-1024x949.png" alt="" data-id="695" class="wp-image-695 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/10/image-7-1024x949.png 1024w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-7-300x278.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-7-768x712.png 768w, https://blog.frankovic.net/wp-content/uploads/2020/10/image-7.png 1068w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul></figure>



<p>In part 2 I will configure monitoring of Unifi devices and how to set up Unifi controller and Grafana to visualize data from all devices.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/10/01/grafana-on-azure/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">658</post-id>	</item>
		<item>
		<title>Azure 101 Round-table Workshop</title>
		<link>https://blog.frankovic.net/2020/08/29/azure-101-roundtable-workshop/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=azure-101-roundtable-workshop</link>
					<comments>https://blog.frankovic.net/2020/08/29/azure-101-roundtable-workshop/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Sat, 29 Aug 2020 18:35:58 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[ASR]]></category>
		<category><![CDATA[Cloudemize]]></category>
		<category><![CDATA[Migrate]]></category>
		<category><![CDATA[Span]]></category>
		<category><![CDATA[Workshop]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=639</guid>

					<description><![CDATA[Last Monday I have delivered free 3 hour long Azure 101 workshop where we discussed Azure portal capabilities, different migration scenarios for migration different workloads to Azure and at the... ]]></description>
										<content:encoded><![CDATA[
<p>Last Monday I have delivered free 3 hour long Azure 101 workshop where we discussed Azure portal capabilities, different migration scenarios for migration different workloads to Azure and at the end we talked about some free and paid tools that can help out in migration projects.</p>



<p>As we all know, migration to any public cloud provider is not click-click-next process. This workshop was interned to increase awareness of processes and tools involved in such project.</p>



<p>Workshop itself will not give you all the skills and expertise needed to perform migration by yourself if you are new to this but it will help you understand what it takes and what are the challenges.</p>



<p>You can view the recording (in Croatian) below.</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">
<div class="jetpack-video-wrapper"><iframe loading="lazy" class="youtube-player" width="760" height="428" src="https://www.youtube.com/embed/t2r2VDzOXDM?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div>
</div></figure>



<p>There is always an option to engage with qualified partner such as Span, where we can help you in any of the described phases of migration project . Furthermore, Span recently obtained Microsoft Advanced specialization &#8220;<a href="https://www.linkedin.com/posts/span_spanit-azure-sql-activity-6706133644215382016-HnKP" data-type="URL" data-id="https://www.linkedin.com/posts/span_spanit-azure-sql-activity-6706133644215382016-HnKP" target="_blank" rel="noreferrer noopener">Windows Server and SQL Server Migration to Microsoft Azure</a>&#8220;, so we are more than capable to assist you in your cloud journey. </p>



<p>Feel free to contact me! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/08/29/azure-101-roundtable-workshop/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">639</post-id>	</item>
		<item>
		<title>I am back!</title>
		<link>https://blog.frankovic.net/2020/05/02/i-am-back/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=i-am-back</link>
					<comments>https://blog.frankovic.net/2020/05/02/i-am-back/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Sat, 02 May 2020 14:30:47 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MVP]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=609</guid>

					<description><![CDATA[Almost six years ago I had to give up my Cloud and datacenter Microsoft MVP award because I joined the ranks of blue badgers. 🙂 Now, I am one and... ]]></description>
										<content:encoded><![CDATA[
<p>Almost six years ago I had to give up my Cloud and datacenter Microsoft MVP award because I joined the ranks of blue badgers. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<p>Now, I am one and a half year out of corporation, and I have been re-awarded MVP status, this time as Microsoft Azure MVP. It is definitely a recognition of my efforts for the past one and a half year in community and I am grateful for being chosen again.</p>



<p>I will of course continue to contribute and give back to community, always for free and with no strings attached. </p>



<p>Feel free to ping me back or contact me via social network or in real live during upcoming virtual or hopefully in person conferences.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/05/02/i-am-back/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">609</post-id>	</item>
		<item>
		<title>Unifi on Ubuntu with custom wildcard certificate</title>
		<link>https://blog.frankovic.net/2020/02/23/unifi-on-ubuntu-with-custom-wildcard-certificate/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unifi-on-ubuntu-with-custom-wildcard-certificate</link>
					<comments>https://blog.frankovic.net/2020/02/23/unifi-on-ubuntu-with-custom-wildcard-certificate/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Sun, 23 Feb 2020 19:13:21 +0000</pubDate>
				<category><![CDATA[SmartHome]]></category>
		<category><![CDATA[Certificate]]></category>
		<category><![CDATA[Digicert]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unifi]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=595</guid>

					<description><![CDATA[Recently I have decided to move away from free Letsencrypt and create my own wildcard certificate from &#8220;commercial&#8221; certiicate provider. In my case it is Digicert. Main reason for this... ]]></description>
										<content:encoded><![CDATA[
<p>Recently I have decided to move away from free Letsencrypt and create my own wildcard certificate from &#8220;commercial&#8221; certiicate provider. In my case it is Digicert.</p>



<p>Main reason for this is that I used to forget to renew cert and had to manually reconfigure ports when I used cron script to automatically renew Letsencrypt certificate. </p>



<p>Since I was doing this I also decided to move to new virtual machine. Process for this was very simple:</p>



<ol class="wp-block-list"><li>Install latest Ubuntu server<ol><li>Apply latest updates</li></ol></li><li>Utilize<a rel="noreferrer noopener" aria-label=" this simple script  (opens in a new tab)" href="https://community.ui.com/questions/UniFi-Installation-Scripts-or-UniFi-Easy-Update-Script-or-UniFi-Lets-Encrypt-or-Ubuntu-16-04-18-04-/ccbc7530-dd61-40a7-82ec-22b17f027776" target="_blank"> this simple script </a>to install latest Unifi controller <ol><li>During site setup, restored backup from old controller</li></ol></li><li>Import Digicert wildcard certificate (explained later)</li><li>Changed IP address of new controller to the one of old controller</li></ol>



<h3 class="wp-block-heading">Import Digicert wildcard certificate</h3>



<p>I will just outline this process in easy to follow steps:</p>



<ol class="wp-block-list"><li>Obtain certificate from your provider</li><li>Download your .cer file and root and any Intermediate .cer files</li><li>Transfer all files to your Ubuntu VM to a location where your .key file is</li><li>Run following command to bundle root and intermediate certificates</li></ol>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">cat your_domain_name.crt DigiCertCA.crt intermediateCA >> bundle.crt</code></pre>



<ol class="wp-block-list" start="5"><li>Run following commands to import certificates and restart Unifi service</li></ol>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">openssl pkcs12 -export -in yourwildcardcert.crt -inkey yourcertkeyfile.key -certfile bundle.crt -out unifi.p12 -name unifi -password pass:aircontrolenterprise
keytool -importkeystore -srckeystore unifi.p12 -srcstoretype PKCS12 -srcstorepass aircontrolenterprise -destkeystore /usr/lib/unifi/data/keystore -storepass aircontrolenterprise
service unifi restart</code></pre>



<p>And volila! Your Unifi controller is now running on https.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/02/23/unifi-on-ubuntu-with-custom-wildcard-certificate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">595</post-id>	</item>
		<item>
		<title>It Pro User Group Zagreb, Microsoft Community</title>
		<link>https://blog.frankovic.net/2020/02/09/it-pro-user-group-zagreb-microsoft-community/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=it-pro-user-group-zagreb-microsoft-community</link>
					<comments>https://blog.frankovic.net/2020/02/09/it-pro-user-group-zagreb-microsoft-community/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Sun, 09 Feb 2020 11:27:36 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[ITPro UG Zagreb]]></category>
		<category><![CDATA[Microsoft]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=558</guid>

					<description><![CDATA[It took me long enough to get back to doing sessions for community after four years at Microsoft. I did appear at many local and regional conferences but Zagreb It... ]]></description>
										<content:encoded><![CDATA[
<p>It took me long enough to get back to doing sessions for community after four years at Microsoft. I did appear at many local and regional conferences but Zagreb It Pro group has special place in my hearth.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://blog.frankovic.net/wp-content/uploads/2020/02/IMG_20200206_181800_620-1024x1024.jpg" alt="" class="wp-image-560" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/IMG_20200206_181800_620-1024x1024.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/IMG_20200206_181800_620-300x300.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/IMG_20200206_181800_620-150x150.jpg 150w, https://blog.frankovic.net/wp-content/uploads/2020/02/IMG_20200206_181800_620-768x768.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/IMG_20200206_181800_620-1536x1536.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/IMG_20200206_181800_620-250x250.jpg 250w, https://blog.frankovic.net/wp-content/uploads/2020/02/IMG_20200206_181800_620-80x80.jpg 80w, https://blog.frankovic.net/wp-content/uploads/2020/02/IMG_20200206_181800_620-600x600.jpg 600w, https://blog.frankovic.net/wp-content/uploads/2020/02/IMG_20200206_181800_620.jpg 1960w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>My good friend Robert and I with help from Microsoft people Marin Mamić, Drasko Ivanisevic and Tomislav Tipurić brought this group from the dead in 2008. Since then, we helped organize many more similar groups in Split, Rijeka and Varazdin together with other distinguished members of Microsoft community. </p>



<p>Unfortunately, some of these groups slowed down or disappeared due to various reasons but some other emerges, such as It Pro Edu group and Azure meetup.  </p>



<p>Current It Pro UG Leads, Tomislav Lulić and Goran Žarinac asked me to do a session on Azure governance and management, which I gladly accepted. Session was very well accepted and there where about 50 attendees. We has nice discussion and I was happy to see some old familiar faces and some new  visitors. </p>



<p>Take a look at the gallery and <a href="https://spanzg-my.sharepoint.com/:p:/g/personal/mfrankovic_span_eu/EYOgX4zHHQ1CrJs0YGQJi8sB3X1VdjyBxN0C9nB5_Mc0ZQ?e=bXYltG" target="_blank" rel="noreferrer noopener" aria-label="download presentation (opens in a new tab)">download presentation</a>.</p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-9"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175144-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175144-1024x498.jpg" alt="" data-id="561" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175144-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=561" class="wp-image-561" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175144-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175144-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175144-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175144-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175144-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175146-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175146-1024x498.jpg" alt="" data-id="562" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175146-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=562" class="wp-image-562" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175146-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175146-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175146-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175146-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175146-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175207-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175207-1024x498.jpg" alt="" data-id="563" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175207-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=563" class="wp-image-563" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175207-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175207-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175207-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175207-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175207-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175209-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175209-1024x498.jpg" alt="" data-id="564" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175209-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=564" class="wp-image-564" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175209-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175209-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175209-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175209-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175209-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175228-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="222" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175228-1024x222.jpg" alt="" data-id="565" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175228-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=565" class="wp-image-565" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175228-1024x222.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175228-300x65.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175228-768x166.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175228-1536x333.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175228-2048x443.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175252-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175252-1024x498.jpg" alt="" data-id="566" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175252-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=566" class="wp-image-566" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175252-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175252-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175252-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175252-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175252-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175253-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175253-1024x498.jpg" alt="" data-id="567" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175253-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=567" class="wp-image-567" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175253-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175253-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175253-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175253-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175253-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175254-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175254-1024x498.jpg" alt="" data-id="568" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175254-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=568" class="wp-image-568" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175254-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175254-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175254-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175254-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175254-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175257-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175257-1024x498.jpg" alt="" data-id="569" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175257-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=569" class="wp-image-569" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175257-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175257-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175257-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175257-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175257-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175258-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175258-1024x498.jpg" alt="" data-id="570" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175258-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=570" class="wp-image-570" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175258-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175258-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175258-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175258-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175258-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175259-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175259-1024x498.jpg" alt="" data-id="571" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175259-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=571" class="wp-image-571" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175259-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175259-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175259-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175259-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175259-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175308-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175308-1024x498.jpg" alt="" data-id="572" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175308-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=572" class="wp-image-572" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175308-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175308-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175308-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175308-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175308-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175309-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175309-1024x498.jpg" alt="" data-id="573" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175309-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=573" class="wp-image-573" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175309-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175309-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175309-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175309-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175309-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175311-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175311-1024x498.jpg" alt="" data-id="574" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175311-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=574" class="wp-image-574" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175311-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175311-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175311-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175311-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175311-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175319-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175319-1024x498.jpg" alt="" data-id="575" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175319-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=575" class="wp-image-575" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175319-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175319-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175319-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175319-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175319-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175437-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175437-1024x498.jpg" alt="" data-id="576" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175437-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=576" class="wp-image-576" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175437-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175437-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175437-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175437-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175437-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175438-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175438-1024x498.jpg" alt="" data-id="577" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175438-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=577" class="wp-image-577" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175438-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175438-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175438-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175438-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175438-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175440-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175440-1024x498.jpg" alt="" data-id="578" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175440-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=578" class="wp-image-578" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175440-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175440-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175440-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175440-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_175440-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181944-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181944-1024x498.jpg" alt="" data-id="579" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181944-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=579" class="wp-image-579" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181944-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181944-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181944-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181944-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181944-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181948-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181948-1024x498.jpg" alt="" data-id="580" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181948-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=580" class="wp-image-580" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181948-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181948-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181948-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181948-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_181948-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_182011-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="498" src="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_182011-1024x498.jpg" alt="" data-id="581" data-full-url="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_182011-scaled.jpg" data-link="https://blog.frankovic.net/?attachment_id=581" class="wp-image-581 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_182011-1024x498.jpg 1024w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_182011-300x146.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_182011-768x373.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_182011-1536x747.jpg 1536w, https://blog.frankovic.net/wp-content/uploads/2020/02/20200206_182011-2048x996.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li></ul></figure>



<p>Krizevci Microsoft community is organizing Azure Global event this year so if you are interested in delivering It Pro or developer session, make sure to visit <a rel="noreferrer noopener" aria-label="call for speakers page (opens in a new tab)" href="https://sessionize.com/global-azure-bootcamp-2020-u-krizevcima" target="_blank">call for speakers page</a> and engage!</p>



<p>For more info on the event if you are interested as attendee, please visit official <a href="https://www.meetup.com/IT-Pro-User-Grupa-Krizevci/events/268191754/" target="_blank" rel="noreferrer noopener" aria-label="Meetup landing page (opens in a new tab)">Meetup landing page</a>!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/02/09/it-pro-user-group-zagreb-microsoft-community/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">558</post-id>	</item>
		<item>
		<title>Connect UiPath Orchestrator to Elasticsearch with Kibana in Azure</title>
		<link>https://blog.frankovic.net/2020/02/06/connect-uipath-orchestrator-with-elasticsearch-with-kibana-in-azure/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=connect-uipath-orchestrator-with-elasticsearch-with-kibana-in-azure</link>
					<comments>https://blog.frankovic.net/2020/02/06/connect-uipath-orchestrator-with-elasticsearch-with-kibana-in-azure/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Thu, 06 Feb 2020 15:21:00 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Elasticsearch]]></category>
		<category><![CDATA[Kibana]]></category>
		<category><![CDATA[UiPath]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=540</guid>

					<description><![CDATA[UiPath Orchestrator can send logs to Elasticsearch to be analyzed and visualized if needed. Elasticsearch can be installed in Azure manually, via Kubernetes or easiest way is to deploy it... ]]></description>
										<content:encoded><![CDATA[
<p>UiPath Orchestrator can send logs to Elasticsearch to be analyzed and visualized if needed. </p>



<p>Elasticsearch can be installed in Azure manually, via Kubernetes or easiest way is to deploy it as ARM template form Azure marketplace.</p>



<p> There are several configuration screens that needs to be filled in, for the purpose of this implementation and per customer needs we implemented internal solution only without certificates. </p>



<p>Deployment consisted of 3 data/master nodes in a cluster, each with 3, 128 GB premium SSD disks configured as RAID 0, and machines configured as back end pool in internal load balancer. Additional virtual machine was deployed to use as Kibana server.</p>



<p>Since UiPath Orchestrator is deployed as App service, it had to be integrated vitth existing vNet so it can access Elasticsearch nodes residing in different subnet of the same vNet.</p>



<p>I have tested template deployment several times and every time although deployment passed OK, services where not running as expected. Customers environment is security restricted in some way and I suspected that it may be issue. I confirmed it by deploying the same template in fresh Azure environment where everything worked as expected.</p>



<p>Since these restrictions caused template to not deploy correctly, I took these steps to resolve the issue.</p>



<h3 class="wp-block-heading">Reinstall Kibana </h3>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">sudo apt-get remove --purge kibana
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update &amp;&amp; sudo apt-get install kibana
</code></pre>



<h3 class="wp-block-heading">Modify kibana.yml file</h3>



<p>File is located in /etc/kibana directory. File contains much more settings, but these are needed for Kibana to connect to Elasticsearch service. </p>



<pre class="wp-block-code"><code lang="apacheconf" class="language-apacheconf"># Kibana is served by a back end server. This setting specifies the port to use.
server.port: 5601

# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "IP Address Of Kibana Server"

# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["http://IP Address of Internal Load Balancer:9200"]

# If your Elasticsearch is protected with basic authentication, these settings provide
# the username and password that the Kibana server uses to perform maintenance on the Kibana
# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
# is proxied through the Kibana server.
elasticsearch.username: "Elasticsearch user"
elasticsearch.password: "Elasticsearch password"</code></pre>



<p>These next steps have to be done on every Elasticsearch node.</p>



<h3 class="wp-block-heading">Elasticsearch user</h3>



<p>Create Elasticsearch user and add him to <em>superuser </em>group.</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">./elasticsearch-users useradd UserName -p Password -r superuser</code></pre>



<h3 class="wp-block-heading">Modify elasticsearch.yml file</h3>



<p>Instead of node names in config file, put their IP addresses. Yes, this could be resolved by adding GlobalNames DNS zone in DNS server, but it is easier this way and less work. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<div style="color:#32373c;background-color:#ff3860" class="wp-block-genesis-blocks-gb-notice gb-font-size-18 gb-block-notice" data-id="24efa7"><div class="gb-notice-title" style="color:#fff"><p>Notice</p></div><div class="gb-notice-text" style="border-color:#ff3860"><p>Make sure that all Elasticsearch nodes and Kibana server in Azure have static private IP addresses.  </p></div></div>



<pre class="wp-block-code"><code lang="apacheconf" class="language-apacheconf">cluster.name: "yourclustername"
node.name: "your node name"
path.logs: /var/log/elasticsearch
path.data: /datadisks/disk1/elasticsearch/data
discovery.seed_hosts: ["IP address node 1","IP address node 2","IP address node 3"]
cluster.initial_master_nodes: ["IP address node 1","IP address node 2","IP address node 3"]
node.master: true
node.data: true
network.host: [_site_, _local_]
node.max_local_storage_nodes: 1
node.attr.fault_domain: 1
node.attr.update_domain: 1
cluster.routing.allocation.awareness.attributes: fault_domain,update_domain
xpack.license.self_generated.type: trial
xpack.security.enabled: true
bootstrap.memory_lock: true</code></pre>



<h3 class="wp-block-heading">Restart services</h3>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">service elasticsearch restart
service kibana restart</code></pre>



<h3 class="wp-block-heading">Modify web.config file of UiPath App service in Azure</h3>



<p>Go to your App service, select Advanced Tools under Development Tools, select Go.</p>



<p>In Kudu console select Debug cosnsole, CMD</p>



<p>Go to /site/wwwroot and scrool to Web.config. Select small pencil on the left side</p>



<p>Modify lines 35 and 38 to include URI to your internal load balancer and username and password for Elasticsearch deployment.</p>



<p>Restart App service just in case.</p>



<p>You should be able to access Kibana via http://YOUR-KIBANA-IP:5601</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="572" height="633" src="https://blog.frankovic.net/wp-content/uploads/2020/02/image.png" alt="" class="wp-image-550" srcset="https://blog.frankovic.net/wp-content/uploads/2020/02/image.png 572w, https://blog.frankovic.net/wp-content/uploads/2020/02/image-271x300.png 271w" sizes="auto, (max-width: 572px) 100vw, 572px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/02/06/connect-uipath-orchestrator-with-elasticsearch-with-kibana-in-azure/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">540</post-id>	</item>
		<item>
		<title>Integrate Azure AD authentication with UiPath Orchestrator</title>
		<link>https://blog.frankovic.net/2020/01/24/integrate-azure-ad-authentication-with-uipath-orchestrator/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=integrate-azure-ad-authentication-with-uipath-orchestrator</link>
					<comments>https://blog.frankovic.net/2020/01/24/integrate-azure-ad-authentication-with-uipath-orchestrator/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Fri, 24 Jan 2020 15:57:00 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[UiPath]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=524</guid>

					<description><![CDATA[At first this seemed like a simple configuration change, unfortunately it took me some time to figure it out and I had to ask help from my developer colleges. Most... ]]></description>
										<content:encoded><![CDATA[
<p>At first this seemed like a simple configuration change, unfortunately it took me some time to figure it out and I had to ask help from my developer colleges. </p>



<p>Most of this is documented in UiPath documentation but I ran into some difficulties.</p>



<p>On the Authentication page of your application registration in Azure you must tick ID tokens checkbox.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-10"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/image-11-1024x788.png"><img loading="lazy" decoding="async" width="1024" height="788" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-11-1024x788.png" alt="" data-id="527" class="wp-image-527 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-11-1024x788.png 1024w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-11-300x231.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-11-768x591.png 768w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-11.png 1138w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li></ul></figure>



<p>After that wee need to configure and add some additional fields in web.config file (located in Configuration pane) of UiPath application in Azure</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-11"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/image-12.png"><img loading="lazy" decoding="async" width="879" height="660" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-12.png" alt="" data-id="528" class="wp-image-528 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-12.png 879w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-12-300x225.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-12-768x577.png 768w" sizes="auto, (max-width: 879px) 100vw, 879px" /></a></figure></li></ul></figure>



<p>These settings define that we want to integrate Azure AD with UIPath authentication process and also define that we will map upn (http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn) of Azure AD user to username (ByUserName) of local UiPath user created in the application.</p>



<p>So now, when we create new user in UiPath and set his username to be his upn, it should successfully authenticate and login to UiPath.</p>



<p>Unfortunately, this does not work as intended. It seems that UiPath is looking at email field of user instead in his username. So be sure to add email to UiPath user that is same as upn of his Azure AD account.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-12"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/image-14.png"><img loading="lazy" decoding="async" width="626" height="626" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-14.png" alt="" data-id="532" class="wp-image-532 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-14.png 626w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-14-300x300.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-14-150x150.png 150w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-14-250x250.png 250w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-14-80x80.png 80w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-14-600x600.png 600w" sizes="auto, (max-width: 626px) 100vw, 626px" /></a></figure></li></ul></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/01/24/integrate-azure-ad-authentication-with-uipath-orchestrator/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">524</post-id>	</item>
		<item>
		<title>Global Azure 2020</title>
		<link>https://blog.frankovic.net/2020/01/17/global-azure-2020/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=global-azure-2020</link>
					<comments>https://blog.frankovic.net/2020/01/17/global-azure-2020/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Fri, 17 Jan 2020 08:56:00 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=512</guid>

					<description><![CDATA[Global Azure 2020 has been announced and it will be held in many worldwide locations between April 23-25, 2020. Click on image below to check out all registered locations. Unfortunately... ]]></description>
										<content:encoded><![CDATA[
<p>Global Azure 2020 has been announced and it will be held in many worldwide locations between April 23-25, 2020. Click on image below to check out all registered locations.</p>



<figure class="wp-block-image size-large"><a href="https://globalazure.net/" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="772" height="1024" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-10-772x1024.png" alt="" class="wp-image-514" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-10-772x1024.png 772w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-10-226x300.png 226w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-10-768x1018.png 768w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-10.png 961w" sizes="auto, (max-width: 772px) 100vw, 772px" /></a></figure>



<p>Unfortunately for Croatian Microsoft users, event fails right after large local conference, <a rel="noreferrer noopener" aria-label="Windays (opens in a new tab)" href="https://www.windays.hr/" target="_blank">Windays</a>, so this year I will probably skip organization of this event. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/01/17/global-azure-2020/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">512</post-id>	</item>
		<item>
		<title>Install, update and configure UiPath RPA Orchestrator in Azure via ARM template</title>
		<link>https://blog.frankovic.net/2020/01/11/install-and-update-uipath-in-azure-via-arm-template/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=install-and-update-uipath-in-azure-via-arm-template</link>
					<comments>https://blog.frankovic.net/2020/01/11/install-and-update-uipath-in-azure-via-arm-template/#comments</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Sat, 11 Jan 2020 10:40:20 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[Elasticsearch]]></category>
		<category><![CDATA[Orchestrator]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[RPA]]></category>
		<category><![CDATA[UiPath]]></category>
		<category><![CDATA[Webapp]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=476</guid>

					<description><![CDATA[Instalation I had an opportunity recently to install, update and configure UiPath RPA Orchestrator in Azure environment. Customer had a choice between setting it up in Azure VM or to... ]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Instalation</h2>



<p>I had an opportunity recently to install, update and configure <a rel="noreferrer noopener" aria-label="UiPath RPA Orchestrator  (opens in a new tab)" href="https://www.uipath.com/newsroom/uipath-speeds-rpa-implementations-on-microsoft-azure" target="_blank">UiPath RPA Orchestrator </a> in Azure environment. Customer had a choice between setting it up in Azure VM or to deploy it as Appservice (PaaS) ARM template. Upon discussing all options, customer decided to go with PaaS option.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-13"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/2020-01-11_11-52-57-1024x685.png"><img loading="lazy" decoding="async" width="1024" height="685" src="https://blog.frankovic.net/wp-content/uploads/2020/01/2020-01-11_11-52-57-1024x685.png" alt="" data-id="481" class="wp-image-481 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/2020-01-11_11-52-57-1024x685.png 1024w, https://blog.frankovic.net/wp-content/uploads/2020/01/2020-01-11_11-52-57-300x201.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/01/2020-01-11_11-52-57-768x513.png 768w, https://blog.frankovic.net/wp-content/uploads/2020/01/2020-01-11_11-52-57-600x400.png 600w, https://blog.frankovic.net/wp-content/uploads/2020/01/2020-01-11_11-52-57.png 1041w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li></ul></figure>



<p>There is marketplace ARM template that we choose to deploy, but for this customer we had to modify it a bit within VS Code to comply with naming conventions that we developed. At time of deployment, this template installs 19.4.4 version and latest one is 19.10.15. </p>



<p>Install process is pretty much strait forward. Small instance can handle up to 100 robots and this variable is related to SQL DB (Standard S1 in this case) size which can be later on changed. </p>



<p>Number of instances can be modified up to a 10 and can later on also be scaled if needed. Select your Azure subscription and empty resource group or create new one.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-14"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/image.png"><img loading="lazy" decoding="async" width="644" height="687" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image.png" alt="" data-id="488" class="wp-image-488 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image.png 644w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-281x300.png 281w" sizes="auto, (max-width: 644px) 100vw, 644px" /></a></figure></li></ul></figure>



<p>Next option is to set up HAA if you are using more than one instance of UiPath Orchestrator.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-15"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/image-1.png"><img loading="lazy" decoding="async" width="630" height="517" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-1.png" alt="" data-id="489" class="wp-image-489 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-1.png 630w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-1-300x246.png 300w" sizes="auto, (max-width: 630px) 100vw, 630px" /></a></figure></li></ul></figure>



<p>Setup SQL parameters</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-16"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/image-2.png"><img loading="lazy" decoding="async" width="637" height="508" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-2.png" alt="" data-id="491" class="wp-image-491 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-2.png 637w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-2-300x239.png 300w" sizes="auto, (max-width: 637px) 100vw, 637px" /></a></figure></li></ul></figure>



<p>Review your setup and buy the resources. </p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-17"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/image-3.png"><img loading="lazy" decoding="async" width="899" height="702" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-3.png" alt="" data-id="493" class="wp-image-493 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-3.png 899w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-3-300x234.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-3-768x600.png 768w" sizes="auto, (max-width: 899px) 100vw, 899px" /></a></figure></li></ul></figure>



<p> At this point you can also download template (red arrow) and cancel deployment. Manually modify downloaded template and deploy it via PowerShell when ready. More information on manual deployment via PowerShell can be found on this <a href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/deploy-powershell" target="_blank" rel="noreferrer noopener" aria-label="link (opens in a new tab)">link</a>.</p>



<p>After initial deployment of the template (takes about 10 minutes to finish), several Azure resources are created</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-18"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/image-4-1024x483.png"><img loading="lazy" decoding="async" width="1024" height="483" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-4-1024x483.png" alt="" data-id="496" class="wp-image-496 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-4-1024x483.png 1024w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-4-300x142.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-4-768x362.png 768w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-4.png 1202w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li></ul></figure>



<p>Website is up and running, and we can confirm that by connecting to provided Azure Appservice URL</p>



<p> </p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-19"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/image-5.png"><img loading="lazy" decoding="async" width="543" height="667" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-5.png" alt="" data-id="499" class="wp-image-499 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-5.png 543w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-5-244x300.png 244w" sizes="auto, (max-width: 543px) 100vw, 543px" /></a></figure></li></ul></figure>



<p>Customer used default username and password to login and insert required licence. Later on, customer contacted UiPath support to obtain tenant admin and create required tenant resurces.</p>



<h2 class="wp-block-heading">UiPath upgrade</h2>



<p>Since at the time of deployment Azure ARM template contained 19.4.4. version, we did manual upgrade to newest version.</p>



<p>To complete this successfully, we needed to do some prerequisites in Azure:</p>



<ol class="wp-block-list"><li>Register application in Azure AD</li><li>Add applications service principal to Contributor role of resource group where app is deployed</li><li>Create Client secret in Azure AD App registration</li></ol>



<p>Detailed upgrade steps can be found in UiPath <a rel="noreferrer noopener" aria-label="documentation (opens in a new tab)" href="https://docs.uipath.com/orchestrator/docs/updating-using-the-azure-script" target="_blank">documentation</a>.</p>



<p>This is sample script that we used and modified for our needs:</p>



<pre class="wp-block-code"><code lang="powershell" class="language-powershell">.\Publish-Orchestrator.ps1 `
-action Update `
-unattended `
-package "E:\Work\Orch\Setup\UiPath.Orchestrator.Web.zip" `
-stopApplicationBeforePublish `
-azureSubscriptionId "8e34be72-1937-4aa0-b70e-81bab19gbf0a" `
-azureAccountTenantId "f8350d2a-n153-4d17-8927-902c51f72797" `
-azureAccountApplicationId "$AzureApplicationId" `
-azureAccountPassword "$AzurePassword" `
-resourceGroupName "DocTest-Orch-RG" `
-appServiceName "DocTests123" `
-verbose</code></pre>



<p>Explanation of all script parameters can be found in <a rel="noreferrer noopener" aria-label="documentation (opens in a new tab)" href="https://docs.uipath.com/orchestrator/docs/publish-orchestrator-ps1-parameters" target="_blank">documentation</a>.</p>



<p>Upgrade process took about 5 minutes to complete.</p>



<h2 class="wp-block-heading">Post-configuration</h2>



<p>Additionally we have configured following settings:</p>



<ul class="wp-block-list"><li>Configure custom URL for application</li><li>Add HTTPS certificate</li><li>Restricted IP address blocks for external access</li><li>Azure AD identity integration</li></ul>



<h3 class="wp-block-heading">Custom URL and certificate</h3>



<p>I would recommend to add custom URL to the app and register it with application. Later on this custom domain name can be used as URI in Azure AD application registration. Certificate for HTTPS can be added on the same page and configured additional on TLS/SSL settings pane. For this case I opted for free App Service Managed Certificates that was created and issued via Azure portal.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-20"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.frankovic.net/wp-content/uploads/2020/01/image-6-1024x582.png"><img loading="lazy" decoding="async" width="1024" height="582" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-6-1024x582.png" alt="" data-id="507" class="wp-image-507 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-6-1024x582.png 1024w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-6-300x171.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-6-768x437.png 768w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-6.png 1117w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li></ul></figure>



<h3 class="wp-block-heading">IP restrictions</h3>



<p>Customer requires that application is available from the Internet so for initial deployment we decided to restrict access to specific IP ranges from outside. Later on we will probably add some WAF and other security solutions to the application Internet access.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-21"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="824" height="693" src="https://blog.frankovic.net/wp-content/uploads/2020/01/image-8.png" alt="" data-id="509" class="wp-image-509 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2020/01/image-8.png 824w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-8-300x252.png 300w, https://blog.frankovic.net/wp-content/uploads/2020/01/image-8-768x646.png 768w" sizes="auto, (max-width: 824px) 100vw, 824px" /></figure></li></ul></figure>



<h3 class="wp-block-heading">Azure AD integration</h3>



<p>More on this in my next blog post.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2020/01/11/install-and-update-uipath-in-azure-via-arm-template/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">476</post-id>	</item>
		<item>
		<title>Conferences season</title>
		<link>https://blog.frankovic.net/2019/10/07/conferences-season/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=conferences-season</link>
					<comments>https://blog.frankovic.net/2019/10/07/conferences-season/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Mon, 07 Oct 2019 16:28:54 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Disaster Recovery]]></category>
		<category><![CDATA[High Availability]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=457</guid>

					<description><![CDATA[End of the year is conference season for me and I am starting with Sinergija in Belgrade with very interesting session on Azure high availability but from Azure data center... ]]></description>
										<content:encoded><![CDATA[
<p>End of the year is conference season for me and  I am starting with Sinergija in Belgrade with very interesting session on Azure high availability but from Azure data center perspective and how it reflects on customers that need their workloads to be highly available or they want to utilize disaster recovery services offered by Azure public cloud.</p>



<p>Visit my session and lets discuss what is and what can be improved. Share your experiences from the field and hopefully learn something new. Jump over to official website and book your spot  <a href="https://sinergija.live/en/lectures/33/azure-i-arhitektura-visoke-dostupnosti">https://sinergija.live/en/lectures/33/azure-i-arhitektura-visoke-dostupnosti</a> .</p>



<p>One week later you can find me on Microsoft Community conference in Sarajevo. This is one of my favorite conferences where everything is in relaxed mode. I will be redelivering same session as in Belgrade, probably adjusted with attendees input from Sinergija. </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="113" src="https://blog.frankovic.net/wp-content/uploads/2019/10/image-1024x113.png" alt="" class="wp-image-460" srcset="https://blog.frankovic.net/wp-content/uploads/2019/10/image-1024x113.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/10/image-300x33.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/10/image-768x84.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/10/image.png 1192w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption><a href="http://www.mscommunity.ba/registracija/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">http://www.mscommunity.ba/registracija/</a></figcaption></figure>



<p>Register now because conference is free and number of seats is limited.</p>



<p>Last but not least, in December I have an honor to be co-organizer and technical reviewer for one of the best tech conferences in the region. Advanced technology Days steps boldly into 15th year of existence and it shows no wear or tear.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="164" src="https://blog.frankovic.net/wp-content/uploads/2019/10/image-1-1024x164.png" alt="" class="wp-image-461" srcset="https://blog.frankovic.net/wp-content/uploads/2019/10/image-1-1024x164.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/10/image-1-300x48.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/10/image-1-768x123.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/10/image-1.png 1083w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption><a href="https://advtechdays.com/prijava/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">https://advtechdays.com/prijava/</a></figcaption></figure>



<p>Register now and enjoy two days of pure tech fun!</p>



<p>Hope to see you on some of there conferences, feel free to stop by and talk.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2019/10/07/conferences-season/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">457</post-id>	</item>
		<item>
		<title>Azure Migrate</title>
		<link>https://blog.frankovic.net/2019/07/12/azure-migrate/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=azure-migrate</link>
					<comments>https://blog.frankovic.net/2019/07/12/azure-migrate/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Fri, 12 Jul 2019 08:54:01 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[DataBox]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[Migrate]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[VMware]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=309</guid>

					<description><![CDATA[Azure Migrate is out of a preview phase and is now available for all to use for free. Microsoft correctly decided to bundle some partner tools for analysis and data... ]]></description>
										<content:encoded><![CDATA[
<p><a href="https://azure.microsoft.com/en-us/blog/introducing-the-new-azure-migrate-a-hub-for-your-migration-needs/" target="_blank" rel="noreferrer noopener" aria-label="Azure Migrate (opens in a new tab)">Azure Migrate</a> is out of a preview phase and is now available for all to use for free. Microsoft correctly decided to bundle some partner tools for analysis and data collection also.</p>



<h4 class="wp-block-heading"><strong>Discover, assess and migrate servers</strong></h4>



<p>First tool is used to discover, asses an migrate servers, be it in VMware or Hyper-V environments. All one needs to do is select assessment and migration tools and deployment into subscription will begin.</p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-22"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="735" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Asses-tools2-1024x735.png" alt="" data-id="414" data-link="https://blog.frankovic.net/?attachment_id=414" class="wp-image-414" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Asses-tools2-1024x735.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Asses-tools2-300x215.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Asses-tools2-768x551.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Asses-tools2.png 1039w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption is-layout-flex wp-block-gallery-is-layout-flex">Assess</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="497" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Migrate-tools-1-1024x497.png" alt="" data-id="417" data-link="https://blog.frankovic.net/?attachment_id=417" class="wp-image-417" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Migrate-tools-1-1024x497.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Migrate-tools-1-300x146.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Migrate-tools-1-768x373.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Migrate-tools-1.png 1050w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption">Migrate</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="550" height="266" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Review-tools.png" alt="" data-id="416" data-link="https://blog.frankovic.net/?attachment_id=416" class="wp-image-416" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Review-tools.png 550w, https://blog.frankovic.net/wp-content/uploads/2019/07/Review-tools-300x145.png 300w" sizes="auto, (max-width: 550px) 100vw, 550px" /><figcaption class="blocks-gallery-item__caption">Review</figcaption></figure></li></ul></figure>



<p>After adding tools, we need to connect VMware or Hyper-V servers to assessment tools, be it Microsoft or 3rd party vendor tools and start the assessment process. We can change some assessment properties and run the process on discovered servers.</p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-23"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="761" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Azure-Migrate-Servers-1024x761.png" alt="" data-id="418" data-link="https://blog.frankovic.net/?attachment_id=418" class="wp-image-418" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Azure-Migrate-Servers-1024x761.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Azure-Migrate-Servers-300x223.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Azure-Migrate-Servers-768x571.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Azure-Migrate-Servers.png 1130w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption is-layout-flex wp-block-gallery-is-layout-flex">Selected tools</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="270" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Discovered-servers-1024x270.png" alt="" data-id="419" data-link="https://blog.frankovic.net/?attachment_id=419" class="wp-image-419" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Discovered-servers-1024x270.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Discovered-servers-300x79.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Discovered-servers-768x203.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Discovered-servers.png 1666w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption">Discovered servers</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="571" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Assessment-properties-1024x571.png" alt="" data-id="420" data-link="https://blog.frankovic.net/?attachment_id=420" class="wp-image-420" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Assessment-properties-1024x571.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Assessment-properties-300x167.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Assessment-properties-768x428.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Assessment-properties-740x414.png 740w, https://blog.frankovic.net/wp-content/uploads/2019/07/Assessment-properties-355x199.png 355w, https://blog.frankovic.net/wp-content/uploads/2019/07/Assessment-properties.png 1294w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption">Assessment options</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="516" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Select-servers-1024x516.png" alt="" data-id="421" data-link="https://blog.frankovic.net/?attachment_id=421" class="wp-image-421" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Select-servers-1024x516.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Select-servers-300x151.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Select-servers-768x387.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Select-servers.png 1648w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption">Selected servers for assessment</figcaption></figure></li></ul></figure>



<p>After the assessments is done, you get report on selected servers. More details are available if you click on Azure readiness or Cost details report pies.</p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-24"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="287" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-1-1024x287.png" alt="" data-id="422" data-link="https://blog.frankovic.net/?attachment_id=422" class="wp-image-422" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-1-1024x287.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-1-300x84.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-1-768x215.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-1.png 1480w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption is-layout-flex wp-block-gallery-is-layout-flex">Report overview</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="460" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-2-1024x460.png" alt="" data-id="423" data-link="https://blog.frankovic.net/?attachment_id=423" class="wp-image-423" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-2-1024x460.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-2-300x135.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-2-768x345.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-2.png 1666w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption">Azure readiness</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="464" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-3-1024x464.png" alt="" data-id="424" data-link="https://blog.frankovic.net/?attachment_id=424" class="wp-image-424" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-3-1024x464.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-3-300x136.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-3-768x348.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Server-report-3.png 1681w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption">Cost report</figcaption></figure></li></ul></figure>



<p>When you are happy with assessment results, you can proceed with your selected migration tool and start migrating machines to Azure. </p>



<h4 class="wp-block-heading">Azure migrate databases</h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p> Azure Database Migration Service enables seamless migrations from multiple database sources to Azure Data platforms with minimal downtime. The service uses the Data Migration Assistant to generate assessment reports that provide recommendations to guide you through the changes required prior to performing a migration. When you&#8217;re ready to begin the migration process, the Azure Database Migration Service performs all of the required steps. </p><cite> <a href="https://docs.microsoft.com/en-us/azure/dms/">https://docs.microsoft.com/en-us/azure/dms/</a> </cite></blockquote>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-25"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="446" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Database-1-1024x446.png" alt="" data-id="425" data-link="https://blog.frankovic.net/?attachment_id=425" class="wp-image-425" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Database-1-1024x446.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Database-1-300x131.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Database-1-768x335.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Database-1.png 1030w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption is-layout-flex wp-block-gallery-is-layout-flex">Database assessment tools</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="447" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Database-2-1024x447.png" alt="" data-id="426" data-link="https://blog.frankovic.net/?attachment_id=426" class="wp-image-426" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Database-2-1024x447.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Database-2-300x131.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Database-2-768x335.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Database-2.png 1028w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption">Database migration tools</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="568" height="396" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Database-3.png" alt="" data-id="427" data-link="https://blog.frankovic.net/?attachment_id=427" class="wp-image-427" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Database-3.png 568w, https://blog.frankovic.net/wp-content/uploads/2019/07/Database-3-300x209.png 300w" sizes="auto, (max-width: 568px) 100vw, 568px" /><figcaption class="blocks-gallery-item__caption">Review</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="800" height="826" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Database-4.png" alt="" data-id="428" data-link="https://blog.frankovic.net/?attachment_id=428" class="wp-image-428" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Database-4.png 800w, https://blog.frankovic.net/wp-content/uploads/2019/07/Database-4-291x300.png 291w, https://blog.frankovic.net/wp-content/uploads/2019/07/Database-4-768x793.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /><figcaption class="blocks-gallery-item__caption">Database assessment and migration service setup</figcaption></figure></li></ul></figure>



<p>Select your assessment and migration tools, download DMA tool to start your assessment. Detailed steps on assessment can be found <a rel="noreferrer noopener" aria-label="here (opens in a new tab)" href="https://go.microsoft.com/fwlink/?linkid=2090355" target="_blank">here</a>.</p>



<h4 class="wp-block-heading"><strong>Assess and migrate web apps to Azure</strong></h4>



<p>This tool is oriented into assessing web applications on public or private endpoints and giving you an option on migrating those applications to Azure App Service. It can assess .Net or PHP applications but it also supports Java, Ruby and other frameworks.</p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-26"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="493" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-0-1024x493.png" alt="" data-id="429" data-link="https://blog.frankovic.net/?attachment_id=429" class="wp-image-429" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-0-1024x493.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-0-300x144.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-0-768x369.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-0.png 1083w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption is-layout-flex wp-block-gallery-is-layout-flex">Select web assessment tool</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="843" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-1-1024x843.png" alt="" data-id="430" data-link="https://blog.frankovic.net/?attachment_id=430" class="wp-image-430" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-1-1024x843.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-1-300x247.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-1-768x632.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-1.png 1894w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption">Sample web assessment report</figcaption></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1003" height="632" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-2.png" alt="" data-id="431" data-link="https://blog.frankovic.net/?attachment_id=431" class="wp-image-431" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-2.png 1003w, https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-2-300x189.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Web-assess-2-768x484.png 768w" sizes="auto, (max-width: 1003px) 100vw, 1003px" /><figcaption class="blocks-gallery-item__caption">Assess internal web apps</figcaption></figure></li></ul></figure>



<h4 class="wp-block-heading"><strong>Migrate on-premises data to Azure</strong></h4>



<p>In case you need to migrate raw data to Azure from your on-premises data center, you can utilize Azure Data Box. After selecting source country and destination Azure region, you have an option to select type of data box or opt to send your own disks. All data is always encrypted and secured from any 3rd party access. More info on data box can be found <a href="https://azure.microsoft.com/en-in/services/databox/" target="_blank" rel="noreferrer noopener" aria-label="here (opens in a new tab)">here</a>.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-27"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="541" src="https://blog.frankovic.net/wp-content/uploads/2019/07/Data-box-1024x541.png" alt="" data-id="432" data-link="https://blog.frankovic.net/?attachment_id=432" class="wp-image-432" srcset="https://blog.frankovic.net/wp-content/uploads/2019/07/Data-box-1024x541.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/07/Data-box-300x159.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/07/Data-box-768x406.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/07/Data-box.png 1576w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="blocks-gallery-item__caption is-layout-flex wp-block-gallery-is-layout-flex">Select transfer method</figcaption></figure></li></ul></figure>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2019/07/12/azure-migrate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">309</post-id>	</item>
		<item>
		<title>Azure Bastion (preview)</title>
		<link>https://blog.frankovic.net/2019/06/19/azure-bastion-preview/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=azure-bastion-preview</link>
					<comments>https://blog.frankovic.net/2019/06/19/azure-bastion-preview/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Wed, 19 Jun 2019 09:30:27 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[RDP]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSH]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=387</guid>

					<description><![CDATA[Azure Bastion is available in preview. You can check it out here and try it yourself after punching in couple of PowerShell commands targeted to your Azure subscription. Architecture of... ]]></description>
										<content:encoded><![CDATA[
<p>Azure Bastion is available in preview. You can check it out <a rel="noreferrer noopener" aria-label="here  (opens in a new tab)" href="https://azure.microsoft.com/en-us/services/azure-bastion/" target="_blank">here </a>and try it yourself after punching in couple of PowerShell commands targeted to your Azure subscription.</p>



<p>Architecture of the solution is decipted in this image</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-28"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="843" height="474" src="https://blog.frankovic.net/wp-content/uploads/2019/06/diagram.jpg" alt="" data-id="398" data-link="https://blog.frankovic.net/?attachment_id=398" class="wp-image-398 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2019/06/diagram.jpg 843w, https://blog.frankovic.net/wp-content/uploads/2019/06/diagram-300x169.jpg 300w, https://blog.frankovic.net/wp-content/uploads/2019/06/diagram-768x432.jpg 768w, https://blog.frankovic.net/wp-content/uploads/2019/06/diagram-355x199.jpg 355w" sizes="auto, (max-width: 843px) 100vw, 843px" /></figure></li></ul></figure>



<p>I did just that and it more or less worked perfectly. I had one simple issue and that is when I tries to create Azure Bastion host in Azure Marketplace. I got an error stating that my subscription is not registered for bastion resource type, </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p> The subscription is not registered for the resource type &#8216;bastionHosts&#8217;. Please check that the resource type exists and re-register for this provider in order to have access to this resource type. </p></blockquote>



<p>

but it clearly shown as registered.

</p>



<pre class="wp-block-code"><code lang="powershell" class="language-powershell">PS Azure:\> Get-AzureRmProviderFeature -ProviderNamespace Microsoft.Network

FeatureName       ProviderName      RegistrationState
-----------       ------------      -----------------
AllowBastionHost  Microsoft.Network Registered
AllowCortexAccess Microsoft.Network Registered

Azure:/
PS Azure:\></code></pre>



<p>Since this is in preview state, it will be fixed. Also it is possible that my Azure subscription was just acting up. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> So what I did, I created a Azure Bastion host directly from target vNet and it worked as charm!</p>



<figure class="wp-block-gallery columns-1 is-cropped aligncenter wp-block-gallery-29"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="432" height="391" src="https://blog.frankovic.net/wp-content/uploads/2019/06/2019-06-19_11-20-57.png" alt="" data-id="393" class="wp-image-393 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2019/06/2019-06-19_11-20-57.png 432w, https://blog.frankovic.net/wp-content/uploads/2019/06/2019-06-19_11-20-57-300x272.png 300w" sizes="auto, (max-width: 432px) 100vw, 432px" /></figure></li></ul></figure>



<p>After successful HTTPS connection to your host, you get a screen like this</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-30"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.frankovic.net/wp-content/uploads/2019/06/2019-06-19_11-23-25-1024x576.png" alt="" data-id="395" data-link="https://blog.frankovic.net/?attachment_id=395" class="wp-image-395 is-layout-flex wp-block-gallery-is-layout-flex" srcset="https://blog.frankovic.net/wp-content/uploads/2019/06/2019-06-19_11-23-25-1024x576.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/06/2019-06-19_11-23-25-300x169.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/06/2019-06-19_11-23-25-768x432.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/06/2019-06-19_11-23-25-355x199.png 355w, https://blog.frankovic.net/wp-content/uploads/2019/06/2019-06-19_11-23-25.png 1918w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul></figure>



<p>Pricing information can be found <a href="https://azure.microsoft.com/en-us/pricing/details/azure-bastion/" target="_blank" rel="noreferrer noopener" aria-label="here (opens in a new tab)">here</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2019/06/19/azure-bastion-preview/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">387</post-id>	</item>
		<item>
		<title>Global Azure IT Pro Bootcamp 2019</title>
		<link>https://blog.frankovic.net/2019/03/16/global-azure-it-pro-bootcamp-2019/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=global-azure-it-pro-bootcamp-2019</link>
					<comments>https://blog.frankovic.net/2019/03/16/global-azure-it-pro-bootcamp-2019/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Sat, 16 Mar 2019 09:16:56 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[2019]]></category>
		<category><![CDATA[Bootcamp]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=353</guid>

					<description><![CDATA[Great news for all IT Pros in Croatia and beyond. We have a great event for you in Zagreb, Tehnološki park 15 on 27th of April, starting at 13:30. Join... ]]></description>
										<content:encoded><![CDATA[
<p>Great news for all IT Pros in Croatia and beyond. We have a great event for you in Zagreb, Tehnološki park 15 on 27th of April, starting at 13:30. Join us for a great time and great speakers, mingle with your peers and network with best of the best.</p>



<p>We will cover most important Azure topics, ranging from IaaS, PaaS, SaaS, security, migration and so on. This is a great opportunity to learn more and find out exciting new stuff that is coming your way.</p>



<p>Event is totally FREE and all you have to do is <a rel="noreferrer noopener" aria-label="register yourself (opens in a new tab)" href="https://azurebootcampzagreb.eventbrite.com/" target="_blank">register yourself</a>!  Soon more info and detailed agenda will be available at Azure Bootcamp Zagreb official page <a href="http://www.azurebootcamp.eu" target="_blank" rel="noreferrer noopener" aria-label="www.azurebootcamp.eu (opens in a new tab)">www.azurebootcamp.eu</a>. </p>



<p>This event is hosted by Tomislav from Nephos and Marin from Span. We would like to express our thanks to <a rel="noreferrer noopener" aria-label="www.zicer.hr (opens in a new tab)" href="http://www.zicer.hr" target="_blank">www.zicer.hr</a> for providing meeting space and Microsoft for getting us some gadgets and catering!</p>



<p>See you there!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2019/03/16/global-azure-it-pro-bootcamp-2019/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">353</post-id>	</item>
		<item>
		<title>Migrate outlook.com Live Domains domain to O365</title>
		<link>https://blog.frankovic.net/2019/02/10/migrate-outlook-com-live-domains-domain-to-o365/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=migrate-outlook-com-live-domains-domain-to-o365</link>
					<comments>https://blog.frankovic.net/2019/02/10/migrate-outlook-com-live-domains-domain-to-o365/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Sun, 10 Feb 2019 10:03:32 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Live Domain]]></category>
		<category><![CDATA[O365]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=334</guid>

					<description><![CDATA[About five year ago Microsoft discontinued one very cool feature called Live Domains (ZDnet article). This feature gave outlook.com or hotmail.com users to attach custom domains to their mail account... ]]></description>
										<content:encoded><![CDATA[
<p>About five year ago Microsoft discontinued one very cool feature called Live Domains (<a rel="noreferrer noopener" aria-label="ZDnet article (opens in a new tab)" href="https://www.zdnet.com/article/microsoft-ends-support-for-custom-domains-in-free-email-service/" target="_blank">ZDnet article</a>). This feature gave outlook.com or hotmail.com users to attach custom domains to their mail account and use them for email addresses or LiveID. So, instead of having email in form of name.surname@outlook.com you could have it as name.surname@customdomain.com and utilize outlook.com web mail client or on-prem Outlook installation to read and send emails. </p>



<figure class="wp-block-image"><img decoding="async" src="https://filestore.community.support.microsoft.com/api/images/28d3620d-0129-4c8e-9658-f5cc7613685f" alt=""/></figure>



<p>We can say that this was one of the predecessors of O365 service, and of course, as soon as Microsoft realized that this free feature may divert users from buying O365, they discontinued it. Pure business decision. </p>



<figure class="wp-block-image"><img decoding="async" src="https://zdnet2.cbsistatic.com/hub/i/r/2014/08/18/d7fbc57a-26c4-11e4-8c7f-00505685119a/resize/770xauto/03d74f91badd045f4688a719c633d89b/custom-domains-killed.png" alt=""/></figure>



<p>To be fair, if you are buying some of O365 personal/home subscriptions, you still have the option to add custom domain. Some very annoying limitations are that you can have only one domain attached, it must be managed by godaddy.com service and it has a limit of 5 email account.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.techspot.com/images2/news/bigimage/2017/02/2017-02-15-image-2.png" alt=""/></figure>



<p>After some time of contemplating and calculating, I decided to move my personal email domain from outlook.com to O365. Live Domains admin page is not available any more so I can not do it by myself and I was aware that I will have to contact Microsoft support to do this. After trying to add domain to O365 tenant this is a message you get:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="848" height="333" src="https://blog.frankovic.net/wp-content/uploads/2019/02/05844382-ed60-494a-b550-d8794ecc0e39.png" alt="" class="wp-image-335" srcset="https://blog.frankovic.net/wp-content/uploads/2019/02/05844382-ed60-494a-b550-d8794ecc0e39.png 848w, https://blog.frankovic.net/wp-content/uploads/2019/02/05844382-ed60-494a-b550-d8794ecc0e39-300x118.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/02/05844382-ed60-494a-b550-d8794ecc0e39-768x302.png 768w" sizes="auto, (max-width: 848px) 100vw, 848px" /></figure>



<p>At this point I created support ticket from my new O365 tenant and soon enough one of the support technicians contacted me. Nee I say that this one had no clue what Live Domains was and kept pointing me to login to that tenant and remove my domain. After 4 or 5 emails, I managed to skip first level support and move to next technician, who was smart enough to connect me to O365 Data protection team immediately .</p>



<p>The procedure with them was straight forward and consisted of few simple steps:</p>



<ol class="wp-block-list"><li> I had to prove that I owned the domain and had to add TXT record to domains DNS that support provided me</li><li>I had to prove that I own O365 tenant to which I was trying to add domain </li></ol>



<p>After this was confirmed, technician force removed my domain from msarealms.onmicrosoft.com tenant and I was able to add it to my O365 tenant. Bare in mind that this transfer may take up to 48 hours to propagate, so in that period you will not be able to receive or send emails from your domain. In my case, it took less than 6 hours for everything to start working.</p>



<p>Couple of things to have in mind before you start:</p>



<ol class="wp-block-list"><li>MS support is not aware of Live Domains (in my case)</li><li>No one can list you all email account on your outlook.com connected domain (tried to find this out while I was MS employee and later via support)</li><li>Your custom domain name is only an alias in outlook.com so make sure you know your primary alias for outlook.com</li><li>You will need your name.surname@outlook.com alias to login to OneDrive, Azure portal, outlook.com or wherever you used your custom domain alias to login by using a Microsoft Account (LiveID) feature. Look here or create new one <a rel="noreferrer noopener" aria-label="https://account.microsoft.com (opens in a new tab)" href="https://account.microsoft.com" target="_blank">https://account.microsoft.com</a>. </li><li>Backup all your email from outlook.com and restore it to 0365 once it is set up</li><li>My case took 2 weeks to resolve, but that is mostly because I was busy and did not have time to talk to support. I believe that this can be resolved in 2 days max.</li></ol>



<p>To put cherry on top of all that, I have 3 more domain connected to Microsoft Live Domains. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2019/02/10/migrate-outlook-com-live-domains-domain-to-o365/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">334</post-id>	</item>
		<item>
		<title>Pi-Hole in Azure Virtual Machine</title>
		<link>https://blog.frankovic.net/2019/01/03/pi-hole-in-azure-virtual-machine/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pi-hole-in-azure-virtual-machine</link>
					<comments>https://blog.frankovic.net/2019/01/03/pi-hole-in-azure-virtual-machine/#comments</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Thu, 03 Jan 2019 12:37:16 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Pi-Hole]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=301</guid>

					<description><![CDATA[As you may have noticed, lately I am spending lots of time trying out some Linux appliances and running them in Azure. One example would be FreeNAS appliance, couple of... ]]></description>
										<content:encoded><![CDATA[
<p>As you may have noticed, lately I am spending lots of time trying out some Linux appliances and running them in Azure. One example would be <a rel="noreferrer noopener" aria-label="FreeNAS appliance (opens in a new tab)" href="https://blog.frankovic.net/2018/12/18/running-freenas-on-azure/" target="_blank">FreeNAS appliance</a>, couple of weeks ago. </p>



<p>This mini project came out from me trying to install and setup <a rel="noreferrer noopener" aria-label="Pi-Hole (opens in a new tab)" href="https://pi-hole.net/" target="_blank">Pi-Hole</a> on a Synology in a Docker container. Since my Synology setup is bit complicated I opted for public cloud setup and decided not to mess with my home networking.</p>



<p>Public cloud setup has some advantages and disadvantages over local installation. Main disadvantages are that you are exposing inbound port 53 to the Internet and sometimes latency to cloud service providers can be high. First issue can be tackled in multiple ways, by configuring VPN for public cloud VM, which adds to the cost ,or by utilizing firewall rules to allow only certain clients to access port 53 on your Pi-Hole. Later one can be tricky if you have dynamic IP addresses.</p>



<p>One of the main advantages is that Pi-Hole server in public cloud can be used for multiple clients and scaled as needed.</p>



<p>Lets see what I did and how I solves some of the issues along way.  </p>



<h3 class="wp-block-heading">Installation</h3>



<p>In Azure portal I used already prepared Ubuntu image, selected standard disks, fixed IP address and  Standard A1 v2 (1 vcpus, 2 GB memory) compute size.  Initially I exposed only port 22 so I can administer the machine.</p>



<p>I then followed standard Pi-Hole <a rel="noreferrer noopener" aria-label="installation procedure (opens in a new tab)" href="https://docs.pi-hole.net/main/basic-install/" target="_blank">installation procedure</a> located on Pi-Hole document page. </p>



<p>I opted for Quad9 DNS provider although you can choose any other available or add custom. I did not modify any IP addresses of the VM since they are managed by Azure.</p>



<div class="wp-block-ugb-notification ugb-notification ugb-notification--type-warning"><p>Make sure you note your initial admin password at the end of the installation. </p></div>



<p>Password can be changed later on in command line with following command:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">$ pihole -a -p
Enter New Password (Blank for no password):
Confirm Password:
[✓] New password set</code></pre>



<p>After setup is complete you will be able to connect to your Pi-Hole admin page via http://ip-address/admin. </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="332" src="https://blog.frankovic.net/wp-content/uploads/2019/01/image-1024x332.png" alt="" class="wp-image-302" srcset="https://blog.frankovic.net/wp-content/uploads/2019/01/image-1024x332.png 1024w, https://blog.frankovic.net/wp-content/uploads/2019/01/image-300x97.png 300w, https://blog.frankovic.net/wp-content/uploads/2019/01/image-768x249.png 768w, https://blog.frankovic.net/wp-content/uploads/2019/01/image.png 1875w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Post setup configuration</h3>



<p>Task number one is to setup your clients to use Pie-Hole as DNS server. In my case, my home routers DHCP service is configuring all clients with 3 DNS servers, primary is Pie-Hole, secondary is 1.1.1.1 and tertiary is 8.8.8.8</p>



<p>Main issue in public cloud setup is port 53 which is opened for everyone. This is not good practice so you should employ some kind of protection. VPN adds cost so logical answer is firewall. Luckily, Ubuntu has iptables firewall which is easy to use and setup. </p>



<p>My issue was that I have dynamic IP address allocated from my ISP provides, so I had to devise a way to auto update firewall rules when my IP address changes. Ports that are needed are 22, 80 and 53. I decided to open port 22 for all so I do not have to worry on being blocked from accessing admin interface.</p>



<p>I created a small bash script and added it to cron so it runs every 5 minutes. Script looks like this:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">ip="$(ufw status | egrep 53 | awk '{ print $3 }' | head -1)"
ipnew="$(dig +short YourDyndnsName | grep -Eo '[0-9\.]{7,15}' | head -1)"
if [$ip != $ipnew]
then
for NUM in $(ufw status numbered | grep -e 53 -e 80 | awk -F"[][]" '{print $2}' | tr --delete [:blank:] | sort -rn); do
    yes | ufw delete $NUM
done
ufw allow from "$ipnew" to any port 80
ufw allow from "$ipnew" to any port 53
else
exit
fi</code></pre>



<p>First line gets current dynamic IP address stored in iptables rules list. Second one gets current IP address of my router which is connected to DynDns service. If those are different, script removes old IP address for ports 53 and 80 and then adds new rules with new IP address.</p>



<p>As mentioned, this runs as cron task every 5 minutes:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash"># m h  dom mon dow   command
*/5 * * * * /usr/local/sbin/ufwdynamichostupdate  2>&amp;1 > /dev/null</code></pre>



<p>Since script runs every 5 minutes, it is possible that at some point for some short time, clients will not be able to access Pi-Hole DNS. In that case, they will fall back to secondary DNS that is also provided by my home router. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2019/01/03/pi-hole-in-azure-virtual-machine/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">301</post-id>	</item>
		<item>
		<title>Running FreeNAS on Azure</title>
		<link>https://blog.frankovic.net/2018/12/18/running-freenas-on-azure/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=running-freenas-on-azure</link>
					<comments>https://blog.frankovic.net/2018/12/18/running-freenas-on-azure/#comments</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Tue, 18 Dec 2018 09:06:44 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[NAS]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=277</guid>

					<description><![CDATA[As stated on official page for FreeNAS&#160;(11.2), it is absolutely supported to virtualize this software on some virtualization platforms. Here is quote from their support site: When developing FreeNAS we... ]]></description>
										<content:encoded><![CDATA[
<p>As stated on official page for <a rel="noreferrer noopener" aria-label="FreeNAS (opens in a new tab)" href="https://www.freenas.org" target="_blank">FreeNAS&nbsp;(11.2)</a>, it is absolutely supported to virtualize this software on some virtualization platforms. Here is quote from their support site:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>When developing FreeNAS we run it as a VM. Our virtualization platform of choice is VMware, and it’s the platform in which the FreeNAS developers have the most experience. FreeNAS includes VMware tools as well. Our second choice for a virtualization platform is Citrix XenServer. FreeNAS has no tools built in for XenServer, but you get a solid virtualization experience nonetheless. Other hypervisors such as bhyve, KVM, and Hyper-V also work, but the development team does not use them on a daily basis.</p><cite>https://www.freenas.org/blog/yes-you-can-virtualize-freenas/</cite></blockquote>



<p>So lets try to do it in Azure. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> There are several steps involved and they are very logical and straight forward. All steps are covered with screenshots so you can try it yourself. </p>



<h2 class="wp-block-heading">Setting up FreeNAS on local Hyper-V host as virtual machine.</h2>



<p>First I created empty 20 GB fixed size VHD file that will be used for FreeNAS virtual machine in my Hyper-V host.</p>



<pre class="wp-block-code"><code lang="powershell" class="language-powershell">New-VHD -Path d:\FreeNAS-OS-Disk.vhd -Fixed -SizeBytes 20GB</code></pre>



<p>After that, I simply created new Gen1 virtual machine with 2 CPUs and 8 GB of RAM. It for this purpose does not need network connection. Before starting VM, I downloaded and mounted <a rel="noreferrer noopener" aria-label="FreeNAS ISO (opens in a new tab)" href="https://www.freenas.org/download-freenas-release/" target="_blank">FreeNAS ISO</a> image as boot device.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="704" height="533" src="https://blog.frankovic.net/wp-content/uploads/2018/12/image-2.png" alt="" class="wp-image-286" srcset="https://blog.frankovic.net/wp-content/uploads/2018/12/image-2.png 704w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-2-300x227.png 300w" sizes="auto, (max-width: 704px) 100vw, 704px" /><figcaption><br></figcaption></figure>



<div class="wp-block-ugb-notification ugb-notification ugb-notification--type-info"><p>Screenshot says 4 GB but I changed that to 8 GB of RAM later on and added one more CPU. </p></div>



<p>After starting virtual machine and booting into installation (option 1 in menu), couple of minutes later and few simple menu screens, FreeNAS was installed. At this point I turned off VM to start with next steps.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="635" height="498" src="https://blog.frankovic.net/wp-content/uploads/2018/12/image.png" alt="" class="wp-image-284" srcset="https://blog.frankovic.net/wp-content/uploads/2018/12/image.png 635w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-300x235.png 300w" sizes="auto, (max-width: 635px) 100vw, 635px" /></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="636" height="498" src="https://blog.frankovic.net/wp-content/uploads/2018/12/image-1.png" alt="" class="wp-image-285" srcset="https://blog.frankovic.net/wp-content/uploads/2018/12/image-1.png 636w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-1-300x235.png 300w" sizes="auto, (max-width: 636px) 100vw, 636px" /></figure>



<h2 class="wp-block-heading">Move FreeNAS VHD to Azure storage account</h2>



<p>I had two options here and as title suggests, I selected option two. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Option one was Azure Site Recovery, which I had already setup for some earlier PoC and testing but for some reason it gave me some errors when I tried to replicate FreeNAS VM from local Hyper-V to Azure.</p>



<p>Tool of choice for option 2 is of course <a rel="noreferrer noopener" aria-label="Azure Storage Explorer (opens in a new tab)" href="https://azure.microsoft.com/en-us/features/storage-explorer/" target="_blank">Azure Storage Explorer</a>. In Azure I created new storage account and one container in blob storage part for VHD. Upload took less than a minute.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="334" src="https://blog.frankovic.net/wp-content/uploads/2018/12/image-3-1024x334.png" alt="" class="wp-image-287" srcset="https://blog.frankovic.net/wp-content/uploads/2018/12/image-3-1024x334.png 1024w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-3-300x98.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-3-768x250.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-3.png 1779w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>After uploading VHD to Azure Blob storage, we need to convert this VHD to managed disk to be used in new VM in Azure. Go to Disks service and select Add option to add new disk.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="787" src="https://blog.frankovic.net/wp-content/uploads/2018/12/image-4-1024x787.png" alt="" class="wp-image-289" srcset="https://blog.frankovic.net/wp-content/uploads/2018/12/image-4-1024x787.png 1024w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-4-300x231.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-4-768x590.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-4.png 1153w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Most important part here is to choose VHD that you just uploaded as Source blob for new managed disk. In my case I choose Standard VHD and selected Linux as OS type in a disk.</p>



<div class="wp-block-ugb-notification ugb-notification ugb-notification--type-warning"><p>Uploaded VHD must have vhd extension and must be fixed size or creation will fail.</p></div>



<h2 class="wp-block-heading">Create new VM in Azure that boots from FreeNAS VHD</h2>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="382" src="https://blog.frankovic.net/wp-content/uploads/2018/12/image-5-1024x382.png" alt="" class="wp-image-291" srcset="https://blog.frankovic.net/wp-content/uploads/2018/12/image-5-1024x382.png 1024w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-5-300x112.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-5-768x286.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-5.png 1244w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Select newly created managed disk and select option Create VM. Mine is grayed out since I have already done that. </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="771" height="856" src="https://blog.frankovic.net/wp-content/uploads/2018/12/image-6.png" alt="" class="wp-image-292" srcset="https://blog.frankovic.net/wp-content/uploads/2018/12/image-6.png 771w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-6-270x300.png 270w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-6-768x853.png 768w" sizes="auto, (max-width: 771px) 100vw, 771px" /></figure>



<p>Make sure you select Azure VM with at least 8 GB of RAM and 2 CPU cores. After creation, VM will boot up.</p>



<h2 class="wp-block-heading">Post VM creation configuration</h2>



<p>Go to your virtual machine and select Boot diagnostics option, you should see something similar to this:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="954" height="694" src="https://blog.frankovic.net/wp-content/uploads/2018/12/image-7.png" alt="" class="wp-image-293" srcset="https://blog.frankovic.net/wp-content/uploads/2018/12/image-7.png 954w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-7-300x218.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-7-768x559.png 768w" sizes="auto, (max-width: 954px) 100vw, 954px" /></figure>



<p>Make sure to open required ports to your Azure VM (22 and 80 or 443). </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="637" src="https://blog.frankovic.net/wp-content/uploads/2018/12/image-8-1024x637.png" alt="" class="wp-image-294" srcset="https://blog.frankovic.net/wp-content/uploads/2018/12/image-8-1024x637.png 1024w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-8-300x187.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-8-768x478.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-8.png 1377w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>If everything went as expected, when connecting to VMs public IP you should see login screen. Enter your credentials that you created during initial configuration and login to your FreeNAS on Azure appliance. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="483" src="https://blog.frankovic.net/wp-content/uploads/2018/12/image-9-1024x483.png" alt="" class="wp-image-295" srcset="https://blog.frankovic.net/wp-content/uploads/2018/12/image-9-1024x483.png 1024w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-9-300x142.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-9-768x362.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/12/image-9.png 1804w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>FreeNAS uses FreeBSD as core operating system, and it is <a rel="noreferrer noopener" aria-label="available and supported in Azure (opens in a new tab)" href="https://docs.microsoft.com/en-us/azure/virtual-machines/linux/freebsd-intro-on-azure" target="_blank">available and supported in Azure</a>. This setup can be used in testing environments and for PoC purposes. FreeNAS development team has some caveats when virtualizing FreeNAS in any way due to possible issues with ZFS. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>If best practices and recommendations for running FreeNAS under virtualization are followed, FreeNAS and virtualization can be smooth sailing. However, failure to adhere to the recommendations and best practices below can result in catastrophic loss of your ZFS pool (and/or data) without warning. </p><cite>https://www.freenas.org/blog/yes-you-can-virtualize-freenas/</cite></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/12/18/running-freenas-on-azure/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">277</post-id>	</item>
		<item>
		<title>Migrating test SAP to Microsoft Azure</title>
		<link>https://blog.frankovic.net/2018/11/27/migrating-test-sap-to-microsoft-azure/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=migrating-test-sap-to-microsoft-azure</link>
					<comments>https://blog.frankovic.net/2018/11/27/migrating-test-sap-to-microsoft-azure/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Tue, 27 Nov 2018 10:05:13 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[ASR]]></category>
		<category><![CDATA[Migrate]]></category>
		<category><![CDATA[SAP]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=229</guid>

					<description><![CDATA[Recently I received a request to migrate test SAP instance to Microsoft Azure, again for testing purposes and validating selected Azure architecture.&#160; Selected method of migration at this point was... ]]></description>
										<content:encoded><![CDATA[
<p>Recently I received a request to migrate test <a rel="noreferrer noopener" aria-label="Recently I received a request to migrate several test SAP instances to Microsoft Azure, again for testing purposes and validating selected Azure architecture.&nbsp; (opens in a new tab)" href="https://azure.microsoft.com/en-us/solutions/sap/#sap-solution-offerings" target="_blank">SAP instance to Microsoft Azure</a>, again for testing purposes and validating selected Azure architecture.&nbsp;</p>



<p>Selected method of migration at this point was Azure Site Recovery service, since there where multiple steps to be taken and Azure Migrate as of time of writing this post still does not support migrating from Hyper-V (it is in private preview).</p>



<p>SAP virtual machines are currently residing on production Hyper-V host and are placed in separated test and dev VLAN. Since we can not install anything on production Hyper-V hosts, we have devised following solution:</p>



<ol class="wp-block-list"><li>Turn of all VMs and commit all changes</li><li>Copy VHDX files over network to test Hyper-V server</li><li>Recreate VMs on test Hyper-V server and use copied VHDX files</li><li>Setup ASR in Azure and install required agent on test Hyper-V</li><li>Migrate SAP VMs to my test and dev subscription</li></ol>



<p>I have setup new Azure Site Recovery vault and added test Hyper-V server to it.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="501" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-14-1024x501.png" alt="" class="wp-image-233" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-14-1024x501.png 1024w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-14-300x147.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-14-768x376.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-14.png 1458w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>During Azure Site Recovery replication setup I will create storage account for SAP virtual machines and virtual network that will be used to fail over machines to once replicated.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="376" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-15-1024x376.png" alt="" class="wp-image-235" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-15-1024x376.png 1024w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-15-300x110.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-15-768x282.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-15.png 1616w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Replication policy will be created and associated with site in Azure. After that, I configured replication of a SAP VM and started initial replication.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="908" height="528" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-16.png" alt="" class="wp-image-237" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-16.png 908w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-16-300x174.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-16-768x447.png 768w" sizes="auto, (max-width: 908px) 100vw, 908px" /></figure>



<p>Replication status can be monitored from Azure dashboard or from Hyper-V replication settings for selected virtual machine.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="679" height="420" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-17.png" alt="" class="wp-image-239" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-17.png 679w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-17-300x186.png 300w" sizes="auto, (max-width: 679px) 100vw, 679px" /></figure>



<p>I recommend you to do a test failover after migration. When VM boots, add public IP address and try to connect to it via RDP. If your environment requires more secure RDP connection, you can deploy VPN gateway in test VNET and connect to VM through VPN rather than through public IP.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="687" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-18-1024x687.png" alt="" class="wp-image-242" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-18-1024x687.png 1024w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-18-300x201.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-18-768x516.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-18.png 1168w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>When you are satisfied with results, go to your Recovery Services Vault, select your replicated VM and click on &#8220;Cleanup test failover&#8221; so you can do &#8220;Planned Failover&#8221; when ready.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="846" height="617" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-19.png" alt="" class="wp-image-246" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-19.png 846w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-19-300x219.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-19-768x560.png 768w" sizes="auto, (max-width: 846px) 100vw, 846px" /></figure>



<div style="color:#32373c;background-color:#209cef" class="wp-block-genesis-blocks-gb-notice gb-font-size-17 gb-block-notice" data-id="c76e38"><div class="gb-notice-title" style="color:#fff"><p>Recommendation</p></div><div class="gb-notice-text" style="border-color:#209cef"><p>It is recommended to select SAP verified virtual machine sizes when doing production failover to Azure so you can retain SAP support.</p><p></p></div></div>



<div style="color:#32373c;background-color:#ff3860" class="wp-block-genesis-blocks-gb-notice gb-font-size-17 gb-block-notice" data-id="0eaadb"><div class="gb-notice-title" style="color:#fff"><p>Warning</p></div><div class="gb-notice-text" style="border-color:#ff3860"><p>When migrating SAP machines to Azure and it is your production, all SAP licences are invalidated due to hardware changes. You will need to reactivate your licences. Thanks <a href="https://www.linkedin.com/in/rboban/" target="_blank" rel="noreferrer noopener" aria-label="When migrating SAP machines to Azure and it is your production, all SAP licences are invalidated due to hardware changes. You will need to reactivate your licences. Thanks Robert for heads up! (opens in a new tab)">Robert </a>for heads up!</p></div></div>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/11/27/migrating-test-sap-to-microsoft-azure/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">229</post-id>	</item>
		<item>
		<title>Install and run Azure Stack SDK on &#8220;bare metal&#8221; ; simple guide</title>
		<link>https://blog.frankovic.net/2018/11/05/install-and-run-azure-stack-sdk-on-bare-metal-simple-guide/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=install-and-run-azure-stack-sdk-on-bare-metal-simple-guide</link>
					<comments>https://blog.frankovic.net/2018/11/05/install-and-run-azure-stack-sdk-on-bare-metal-simple-guide/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Mon, 05 Nov 2018 10:30:08 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure Stack]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[iLO]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=184</guid>

					<description><![CDATA[As you may or may not know, I have already tried and after some failures, successfully installed Azure Stack on Azure VM. Since that setup is nice in regards of... ]]></description>
										<content:encoded><![CDATA[
<p>As you may or may not know, I have already tried and after some failures, successfully installed <a href="https://blog.frankovic.net/2018/10/09/running-azure-stack-on-azure/" target="_blank" rel="noreferrer noopener">Azure Stack on Azure VM</a>. Since that setup is nice in regards of giving access to other users and utilizing cloud, it is rather expensive and prone to many install and configuration failures.</p>



<p>Just about when I successfully installed Azure Stack on Azure VM, internal IT manager called me and informed me that we have one Gen8 HP server that became available and could now be utilized for Azure Stack on &#8220;bare metal&#8221; installation. I was delighted. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> make sure your hardware meets these <a href="https://docs.microsoft.com/en-us/azure/azure-stack/asdk/asdk-deploy-considerations" target="_blank" rel="noreferrer noopener">simple prerequisites</a>&nbsp;. I highly recommend you to run this <a href="https://gallery.technet.microsoft.com/Deployment-Checker-for-50e0f51b" target="_blank" rel="noreferrer noopener">Power Shell script</a> that will additionally check that your hardware is adequate for Azure Stack SDK.</p>



<h4 class="wp-block-heading">Preparation</h4>



<p>Server has two OS disk setup as mirror and additional five 900 GB disk that I had to setup as separate volumes. Also, I had at my disposal 2x 12 core Intel CPUs and 256 GB of RAM. Plenty of room to play with Azure Stack.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1205" height="347" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image.png" alt="" class="wp-image-191" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image.png 1205w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-300x86.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-768x221.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-1024x295.png 1024w" sizes="auto, (max-width: 1205px) 100vw, 1205px" /><figcaption>Prerequisites check</figcaption></figure>



<p>I immediately started with server preparation via iLO interface (which is simply fabulous tool) and came to my first obstacle. Disk controller lacked cache memory and was hence limited in creating of maximum two volumes per server. I asked my team lead to purchase cache memory (cca. 30€ per module) so I can proceed with installation. Two weeks later module was installed and setup was continued.</p>



<p>Before booting into cloudbuilder.vhdx and starting actual installation, make sure you have prepared Azure AD and know Azure AD global administrator username and password (I simply created new Azure AD in my existing Azure subscription). Also, select and test one <a href="https://www.pool.ntp.org/zone/europe" target="_blank" rel="noreferrer noopener">NTP server</a> IP address since this may lead to instant installation failure.</p>



<h4 class="wp-block-heading">Instalation</h4>



<p>Download and extract required files.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="888" height="644" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-1.png" alt="" class="wp-image-192" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-1.png 888w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-1-300x218.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-1-768x557.png 768w" sizes="auto, (max-width: 888px) 100vw, 888px" /><figcaption>Azure Stack SDK downloader</figcaption></figure>



<p>Start the installation process with following Power Shell commandlet</p>



<pre data-mode="powershell" data-theme="xcode" data-fontsize="14" data-lines="Infinity" class="wp-block-simple-code-block-ace">PS C:\AzureStack_Insaller> .\asdk-installer.ps1</pre>



<p></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="657" height="649" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-2.png" alt="" class="wp-image-193" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-2.png 657w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-2-300x296.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-2-80x80.png 80w" sizes="auto, (max-width: 657px) 100vw, 657px" /><figcaption>Browse to Cloudbuilder.vhdx location<br></figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="663" height="646" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-3.png" alt="" class="wp-image-194" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-3.png 663w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-3-300x292.png 300w" sizes="auto, (max-width: 663px) 100vw, 663px" /><figcaption>Enter local admin credentials</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="658" height="648" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-4.png" alt="" class="wp-image-195" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-4.png 658w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-4-300x295.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-4-80x80.png 80w" sizes="auto, (max-width: 658px) 100vw, 658px" /><figcaption>After preparation is finished, reboot host to cloudbuilder.vhdx image<br></figcaption></figure>



<p>Start the installer again</p>



<pre data-mode="powershell" data-theme="xcode" data-fontsize="14" data-lines="Infinity" class="wp-block-simple-code-block-ace">PS C:\AzureStack_Insaller> .\asdk-installer.ps1</pre>



<p></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1211" height="802" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-5.png" alt="" class="wp-image-196" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-5.png 1211w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-5-300x199.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-5-768x509.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-5-1024x678.png 1024w" sizes="auto, (max-width: 1211px) 100vw, 1211px" /><figcaption>Select Install option to start the installation process</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1214" height="803" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-7.png" alt="" class="wp-image-199" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-7.png 1214w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-7-300x198.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-7-768x508.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-7-1024x677.png 1024w" sizes="auto, (max-width: 1214px) 100vw, 1214px" /><figcaption><br>Select Identity provider type, enter AAD directory information and local admin password</figcaption></figure>



<p>After these settings you will need to define network card that is to be used with Azure Stack, IP addressing scheme (static or DHCP ), valid time server and VLAN ID if you use it. These settings will be applied to BGPNAT01 virtual machine in your azure stack environment. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Note: </p><cite>Make sure you select working IP address for NTP server and that you have either static IP address prepared or DHCP enabled in network. Failure to do so will result in failure of Azure Stack deployment. It is possible to rerun Azure Stack deployment after a failure just by running installation script again. Of course, make sure you rectify any errors before that. Since Azure Stack requires only one network card to be enabled on host, I disabled the wrong one so I had to restart the process. Also, first time around my selected time server was not responding so installation failed again. </cite></blockquote>



<p></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1217" height="804" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-8.png" alt="" class="wp-image-200" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-8.png 1217w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-8-300x198.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-8-768x507.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-8-1024x676.png 1024w" sizes="auto, (max-width: 1217px) 100vw, 1217px" /><figcaption>Final page with script code that will be run for this deployment</figcaption></figure>



<p>Deployment will take about 6 hours depending on hardware that you are using. At the end, if everything goes as planned, you should see screen similar to this one.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1004" height="930" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-9.png" alt="" class="wp-image-201" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-9.png 1004w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-9-300x278.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-9-768x711.png 768w" sizes="auto, (max-width: 1004px) 100vw, 1004px" /><figcaption>Deployment was successful</figcaption></figure>



<h4 class="wp-block-heading">Post installation configuration</h4>



<p>Most important post installation steps can be found on this <a href="https://docs.microsoft.com/en-us/azure/azure-stack/asdk/asdk-post-deploy" target="_blank" rel="noreferrer noopener">Microsoft page</a>. Make sure ti run Azure test Power Shell command to verify successful installation. </p>



<pre data-mode="powershell" data-theme="xcode" data-fontsize="14" data-lines="Infinity" class="wp-block-simple-code-block-ace">PS C:\>Enter-PSSession -ComputerName AzS-ERCS01 -ConfigurationName PrivilegedEndpoint
[AzS-ERCS01]: PS> Test-AzureStack</pre>



<p></p>



<p>Output should look like this</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="853" height="557" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-10.png" alt="" class="wp-image-203" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-10.png 853w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-10-300x196.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-10-768x501.png 768w" sizes="auto, (max-width: 853px) 100vw, 853px" /><figcaption>Output after successful Azure Stack test<br></figcaption></figure>



<p>You should now be able to connect to your Azure Stack portal and login with administrative credentials, https://adminportal.local.azurestack.external.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1195" height="609" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-13.png" alt="" class="wp-image-209" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-13.png 1195w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-13-300x153.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-13-768x391.png 768w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-13-1024x522.png 1024w" sizes="auto, (max-width: 1195px) 100vw, 1195px" /></figure>



<h4 class="wp-block-heading">Register your Azure Stack with Azure</h4>



<p>Install required tools and uninstall all non required or conflicting tools from Azure Stack host environment. Follow instructions on <a href="https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-powershell-install" target="_blank" rel="noreferrer noopener">this page</a> to do so.</p>



<p>Then register Azure Stack by running this script:</p>



<pre data-mode="powershell" data-theme="xcode" data-fontsize="14" data-lines="Infinity" class="wp-block-simple-code-block-ace"># Add the Azure cloud subscription environment name. 
# Supported environment names are AzureCloud, AzureChinaCloud or AzureUSGovernment depending which Azure subscription you are using.
Add-AzureRmAccount -EnvironmentName "AzureCloud"

# Register the Azure Stack resource provider in your Azure subscription
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.AzureStack

#Import the registration module that was downloaded with the GitHub tools
Import-Module C:\AzureStack-Tools-master\Registration\RegisterWithAzure.psm1

#Register Azure Stack
$AzureContext = Get-AzureRmContext
$CloudAdminCred = Get-Credential -UserName AZURESTACK\CloudAdmin -Message "Enter the credentials to access the privileged endpoint."
$RegistrationName = "&lt;unique-registration-name>"
$UsageReporting = $true # Set to $false if using the Capacity Billing model
Set-AzsRegistration `
-PrivilegedEndpointCredential $CloudAdminCred `
-PrivilegedEndpoint AzS-ERCS01 `
-BillingModel Development `
-RegistrationName $RegistrationName `
-UsageReportingEnabled:$UsageReporting</pre>



<p></p>



<p>It will take up to 10 minutes to complete the registration process. At the end you should see result like this</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="862" height="170" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-11.png" alt="" class="wp-image-206" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-11.png 862w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-11-300x59.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-11-768x151.png 768w" sizes="auto, (max-width: 862px) 100vw, 862px" /><figcaption>Successful registration message</figcaption></figure>



<p>Verify that you can access Azure Marketplace by opening <br> https://adminportal.local.azurestack.external, select &#8220;Marketplace management&#8221; and then select &#8220;Add from Azure&#8221;. Now you should see some marketplace items like bellow</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="830" height="661" src="https://blog.frankovic.net/wp-content/uploads/2018/11/image-12.png" alt="" class="wp-image-207" srcset="https://blog.frankovic.net/wp-content/uploads/2018/11/image-12.png 830w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-12-300x239.png 300w, https://blog.frankovic.net/wp-content/uploads/2018/11/image-12-768x612.png 768w" sizes="auto, (max-width: 830px) 100vw, 830px" /><figcaption>Add items from Azure Marketplace in your Azure Stack</figcaption></figure>



<h4 class="wp-block-heading">Final thoughts</h4>



<p>Configuration and installation of Azure Stack SDK is pretty much straight forward if you plan in advance. Most errors are related to IP addressing scheme, network card setup and local or AD credentials. </p>



<p>In some future posts I will describe how to add additional resource providers such as MySQL, MS SQL and Application service providers.</p>



<p>At the end of this article please note that there is specific way how to turn off Azure Stack environment in case you want to do some maintenance on host itself.</p>



<pre data-mode="powershell" data-theme="xcode" data-fontsize="14" data-lines="Infinity" class="wp-block-simple-code-block-ace">PS C:\>$cred = Get-Credential
PS C:\>Enter-PSSession -ComputerName azs-ercs01 -ConfigurationName PrivilegedEndpoint -Credential $cred
PS C:\>Stop-AzureStack</pre>



<p></p>



<p>This is going to take about 30 minutes since there are 15 VMs running in background. When Power Shell command completes Azure Stack shutdown of virtual machines it will shutdown Azure Stack host server.</p>



<p>To start it up again, just start Azure Stack host  and wait about 30 minutes for everything to boot up in it.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/11/05/install-and-run-azure-stack-sdk-on-bare-metal-simple-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">184</post-id>	</item>
		<item>
		<title>Architecting Azure Solutions</title>
		<link>https://blog.frankovic.net/2018/10/26/architecting-azure-solutions/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=architecting-azure-solutions</link>
					<comments>https://blog.frankovic.net/2018/10/26/architecting-azure-solutions/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Fri, 26 Oct 2018 20:48:56 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Sinergija18]]></category>
		<category><![CDATA[Youtube]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=173</guid>

					<description><![CDATA[As promised, I have uploaded recording of my session from Sinergija 18, Architecting Azure Solutions. I was bit surprised to see that room was full and people were standing around... ]]></description>
										<content:encoded><![CDATA[
<p>As promised, I have uploaded recording of my session from <a href="https://www.sinergija18.rs/sr/sinergija18/agenda/Pages/Predavac.aspx?pred=23" target="_blank" rel="noreferrer noopener">Sinergija 18</a>, Architecting Azure Solutions. I was bit surprised to see that room was full and people were standing around to hear this session because my description was poorly written due to lack of time from my side. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;</p>



<p>Please skip first couple of minutes (cca. 5) since it is a recording of me setting up my laptop and microphone. At the end I had to remove mic because it was to loud and interfered with sessions next door. I was not able to cut out this part because some technical difficulties with my recording software.</p>



<p>Recording is in Croatian language.&nbsp;</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">
<div class="jetpack-video-wrapper"><iframe loading="lazy" class="youtube-player" width="760" height="428" src="https://www.youtube.com/embed/pUJVtCHwr5k?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div>
</div><figcaption>Architecting Azure Solutions, Sinergija 18</figcaption></figure>



<p>Down bellow you can download presentation PDF.</p>



<div class="wp-block-file"><a href="https://blog.frankovic.net/wp-content/uploads/2018/10/Architecting-Azure-Solutions-Sinergija-18.pdf">Architecting Azure Solutions &#8211; Sinergija 18</a><a href="https://blog.frankovic.net/wp-content/uploads/2018/10/Architecting-Azure-Solutions-Sinergija-18.pdf" class="wp-block-file__button" download>Download</a></div>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/10/26/architecting-azure-solutions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">173</post-id>	</item>
		<item>
		<title>Running Azure Stack on Azure</title>
		<link>https://blog.frankovic.net/2018/10/09/running-azure-stack-on-azure/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=running-azure-stack-on-azure</link>
					<comments>https://blog.frankovic.net/2018/10/09/running-azure-stack-on-azure/#comments</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Tue, 09 Oct 2018 14:21:35 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure Stack]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=150</guid>

					<description><![CDATA[This is my 3rd time trying to deploy Azure Stack in Azure environment. First two attempts failed because I tried to deploy it directly at VM level. It is supposed... ]]></description>
										<content:encoded><![CDATA[
<p>This is my 3rd time trying to deploy Azure Stack in Azure environment. First two attempts failed because I tried to deploy it directly at VM level. It is supposed to work with some weird workarounds, but I did not have much time to troubleshoot.</p>



<p>So I decided to follow this great blog from <a href="https://nedinthecloud.com/2018/02/16/azurestack-on-azure-part-1/" target="_blank">Ned</a> and utilize his Azure ARM template and scripts (bit modified for my needs) to deploy Azure Stack in Azure VM. Preparation is key for success so be sure to read instructions carefully and follow steps all the way through.</p>



<p>I am awaiting hardware to arrive, but since I am bit impatient, I decided to go with Azure. One of the most important things is that this is not free and it will cost you significantly.</p>



<table class="wp-block-table"><tbody><tr><td>
  <strong>Premium specs</strong>
  </td><td>
  <strong>Standard specs</strong>
  </td></tr><tr><td>E32 v3 32 Cores <br>256GB RAM <br>5x 256GB Premium SSD <br>AHUB License <br>Estimated: $1,553.44/month</td><td>E16 v3 16 Cores <br>128GB RAM <br>5x 256GB Standard SSD <br>AHUB License <br>Estimated: $855.92/month</td></tr></tbody></table>



<p>This is test/demo environment, so it is recommended to de-allocate host VM in Azure when not needed.</p>



<p>Since this is not normal VM and you have Azure Stack running in it, de-allocating it from Azure portal before shutting down Azure Stack,&nbsp; is not recommended way to do it. You need some additional steps, so from the host, execute the following commands:</p>



<pre data-mode="powershell" data-theme="cobalt" data-fontsize="14" data-lines="Infinity" class="wp-block-simple-code-block-ace">$cred = Get-Credential
Enter-PSSession -ComputerName azs-ercs01 -ConfigurationName PrivilegedEndpoint -Credential $cred
Stop-AzureStack</pre>



<p></p>



<p>This is going to take about 30 minutes since there are 15 VMs running in background. When PowerShell command completes Azure Stack shutdown of virtual machines it will shutdown host VM.</p>



<p class="has-text-color has-vivid-red-color"><strong>You must de-allocate host VM from Azure portal to stop compute charges.</strong></p>



<p>To start it up again, just start Azure host VM and wait about 30 minutes for everything to boot up in it.</p>



<p>Please be aware that Microsoft does not support this scenario and in troubleshooting you are on your own. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Next step is to connect your Azure Stack to Azure marketplace. Follow Neds blog and you should be fine.</p>



<p>Happy Stacking! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/10/09/running-azure-stack-on-azure/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">150</post-id>	</item>
		<item>
		<title>Schedule LED on/off Unifi controller</title>
		<link>https://blog.frankovic.net/2018/10/03/schedule-led-on-off-unifi-controller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=schedule-led-on-off-unifi-controller</link>
					<comments>https://blog.frankovic.net/2018/10/03/schedule-led-on-off-unifi-controller/#comments</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Wed, 03 Oct 2018 08:16:41 +0000</pubDate>
				<category><![CDATA[SmartHome]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unifi]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=131</guid>

					<description><![CDATA[As you may or may not know by now, I am passionate Unifi user, and all of my networking equipment is based on their products. Recently, my son told me... ]]></description>
										<content:encoded><![CDATA[
<p>As you may or may not know by now, I am passionate Unifi user, and all of my networking equipment is based on their products. Recently, my son told me that LED light that was coming from LR Access Point mounted on the hallway wall is bothering him during night and that he can not sleep.</p>



<p>Of course, that was just lame attempt to not go to sleep <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> , but it got me thinking that it would definitely be cool feature to have in Unifi controller. My controller is running in Ubuntu virtual machine in Azure, so this was a case of creating two scripts that would use Cron to run and turn off and on all LED light on all APs.</p>



<p>My controller is set up to control LED status of all devices and devices are set up to obey controllers settings.</p>



<p>After some time on tinkering and searching I came up with viable solution that works, until UBQT exposes it in GUI of the controller. You can vote for this feature <a href="https://community.ubnt.com/t5/UniFi-Feature-Requests/Scheduled-LEDs/idi-p/1518711" target="_blank" rel="noopener noreferrer">here</a>.</p>



<p>Script to turn <strong>OFF</strong> LED lights:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">#!/bin/sh

username=Admin username
password=Admin password
baseurl=https://localhost:8443
site=default
cookie=/tmp/unifi_cookie

curl_cmd="curl --tlsv1 --silent --cookie ${cookie} --cookie-jar ${cookie} --insecure "
${curl_cmd} --data "{'username':'$username', 'password':'$password'}" $baseurl/api/login

${curl_cmd} --data "{ 'led_enabled': false}" $baseurl/api/s/$site/set/setting/mgmt</code></pre>



<p>Script to turn <strong>ON</strong> LED lights:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">#!/bin/sh

username=Admin username
password=Admin password
baseurl=https://localhost:8443
site=default
cookie=/tmp/unifi_cookie

curl_cmd="curl --tlsv1 --silent --cookie ${cookie} --cookie-jar ${cookie} --insecure "
${curl_cmd} --data "{'username':'$username', 'password':'$password'}" $baseurl/api/login

${curl_cmd} --data "{ 'led_enabled': true}" $baseurl/api/s/$site/set/setting/mgmt</code></pre>



<p>Notice the only difference is in line 12, true or false. If you want this to run on your first created site, value for variable site should <em>default.</em>&nbsp;If you want it to run on different site in controller, use site name for value.</p>



<p>I have created two files on Ubuntu and saved them as .sh so they can be executed. Nano is my preferred editor although I have been seen using vi editor in extreme situations :).</p>



<p>Do not forget to use&nbsp; chmod command so the file can be executed.</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">chmod +x filename.sh</code></pre>



<p>After that, by simple editing Crontab with</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">Crontab -e</code></pre>



<p>and adding these lines in it</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">0 21 * * * /PathToYourFiles/unifi_led_disabled.sh >/dev/null 2>&amp;1
0 8 * * * /PathToYourFiles/unifi_led_enabled.sh >/dev/null 2>&amp;1</code></pre>



<p>I have scheduled LED lights to go off every day at 21:00 and to turn on every day at 08:00.</p>



<p>If you are not familiar with Cron syntax I can recommend you this easy to use online <a href="https://crontab-generator.org/" target="_blank" rel="noopener noreferrer">Cron generator</a>. For some of these action you will need root privileges. Script can also be set at user level instead of root which is the recommended way.</p>



<p>Scripts could definitely be modified to turn on or off selected APs and not all of them, but I do not have that many so this works for me. Feel free to comment and add your input.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/10/03/schedule-led-on-off-unifi-controller/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">131</post-id>	</item>
		<item>
		<title>Advanced Technology Days 14</title>
		<link>https://blog.frankovic.net/2018/09/29/advanced-technology-days-14/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=advanced-technology-days-14</link>
					<comments>https://blog.frankovic.net/2018/09/29/advanced-technology-days-14/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Sat, 29 Sep 2018 07:04:42 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[ATD]]></category>
		<category><![CDATA[Microsoft]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=125</guid>

					<description><![CDATA[Approximately week from now starts this great conference in Zagreb. There is still time to submit your session (until 1.10.2018.) and become part of the advanced solutions. If you are... ]]></description>
										<content:encoded><![CDATA[
<p>Approximately week from now starts this great conference in Zagreb. There is still time to <a href="https://sessionize.com/atd14" target="_blank">submit </a>your session (until 1.10.2018.) and become part of the advanced solutions.</p>



<p>If you are attendee, please <a href="https://advtechdays.com/prijava/" target="_blank">register </a>as seats are limited and interest is huge. This year I am taking pat as organizer (member of session election committee) and hopefully as speaker also. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Location of the conference is at Plaza Event Center (ex. Hypo congress center.)&nbsp;</p>



<div class="wp-block-webfactory-map"><div class="wp-block-webfactory-map"><iframe loading="lazy" width="100%" height="400px" src="https://www.google.com/maps/embed/v1/place?q=Plaza%20Event&amp;maptype=roadmap&amp;zoom=15&amp;key=AIzaSyAjyDspiPfzEfjRSS5fQzm-3jHFjHxeXB4" frameborder="0"></iframe></div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/09/29/advanced-technology-days-14/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">125</post-id>	</item>
		<item>
		<title>Utilizing Microsoft OneDrive and Azure storage for personal data sync and backup</title>
		<link>https://blog.frankovic.net/2018/09/19/utilizing-microsoft-onedrive-and-azure-storage-for-personal-data-sync-and-backup/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=utilizing-microsoft-onedrive-and-azure-storage-for-personal-data-sync-and-backup</link>
					<comments>https://blog.frankovic.net/2018/09/19/utilizing-microsoft-onedrive-and-azure-storage-for-personal-data-sync-and-backup/#comments</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Wed, 19 Sep 2018 18:05:34 +0000</pubDate>
				<category><![CDATA[SmartHome]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure Backup]]></category>
		<category><![CDATA[Kodi]]></category>
		<category><![CDATA[OneDrive]]></category>
		<category><![CDATA[Roomba]]></category>
		<category><![CDATA[Synology]]></category>
		<category><![CDATA[Unifi]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=73</guid>

					<description><![CDATA[This post is somewhat different but it does show that some cloud services can be easily utilized for personal needs. I will show you my personal home network setup, how... ]]></description>
										<content:encoded><![CDATA[
<p>This post is somewhat different but it does show that some cloud services can be easily utilized for personal needs. I will show you my personal home network setup, how I utilize Synology storage and what else can be done with little bit of time and effort.</p>



<h4 class="wp-block-heading">Home network</h4>



<p>My home network is product of pure anger during one of everyday tasks, such as copying files from NAS to laptop via WiFi. As everybody else, I had some crappy router that my ISP provided to me. Every time I tried to copy large files over WiFi, everything else on network dies. So I decided to separate all functions of network and circumvent ISP router for local traffic altogether. </p>



<p>I decided to go with Ubiquity and its Unifi range of equipment. I purchased the following:<br/></p>



<ul class="wp-block-list"><li><a href="https://www.ubnt.com/unifi-switching/unifi-switch-8/" target="_blank">Unifi Switch 8 &#8211; 60W</a></li><li><a href="https://www.ubnt.com/unifi-routing/usg/" target="_blank">Unifi USG 3</a></li><li><a href="https://www.ubnt.com/unifi/unifi-ap-ac-pro/" target="_blank">Unifi AP AC Pro</a></li><li><a href="https://www.ubnt.com/unifi/unifi-ap-ac-lr/" target="_blank">Unifi AP AC LR</a></li></ul>



<p>ISP router is now configured in bridge mode and USG is dialing PPOE connection over FTTH with 200/100 speed. </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="744" height="293" src="https://blog.frankovic.net/wp-content/uploads/2018/09/Home-network.jpg" alt="" class="wp-image-82" srcset="https://blog.frankovic.net/wp-content/uploads/2018/09/Home-network.jpg 744w, https://blog.frankovic.net/wp-content/uploads/2018/09/Home-network-300x118.jpg 300w" sizes="auto, (max-width: 744px) 100vw, 744px" /><figcaption>Home network setup</figcaption></figure>



<h4 class="wp-block-heading">Storage and multimedia</h4>



<p>After setting up network part and tweaking it to my needs I initially purchased Synology <a href="https://www.synology.com/en-global/products/DS216play" target="_blank">DS216play </a>NAS, which after some time proved to be bad choice since it was under performing so I upgraded to <a href="https://www.synology.com/en-global/products/DS918+" target="_blank">DS918+</a> (setup as RAID 5 with four 4 TB disks). Main purpose for this device was to backup data on it, stream multimedia in local network and stream multimedia to remote locations. Multimedia players that would connect to NAS where ranging from Android TV and its Kodi application, native Synology DS Video app, Plex player and various versions of Chromecast device. Also, NAS was serving as Surveillance station for multiple Hikvision cameras.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="639" height="486" src="https://blog.frankovic.net/wp-content/uploads/2018/09/Home-storage-1.png" alt="" class="wp-image-90" srcset="https://blog.frankovic.net/wp-content/uploads/2018/09/Home-storage-1.png 639w, https://blog.frankovic.net/wp-content/uploads/2018/09/Home-storage-1-300x228.png 300w" sizes="auto, (max-width: 639px) 100vw, 639px" /><figcaption>Home storage and multimedia</figcaption></figure>



<p>Some devices are connected over Ethernet, some over WiFi and some over external Internet connection. Synology NAS is published securely to Internet so I can access it any time. It utilizes SSL cert, username and password and 2FA code. </p>



<h4 class="wp-block-heading">Sync and backup</h4>



<p>On the software side I am using <a href="https://www.microsoft.com/en-us/p/office-365-home/cfq7ttc0k5dm" target="_blank">Office 365 Home</a> for syncing my wife phone and my own, directly to OneDrive. O365 gives me 1 TB of storage for 5 users and Office licences for multiple devices.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="648" height="511" src="https://blog.frankovic.net/wp-content/uploads/2018/09/Home-Sync-Diagram-2.png" alt="" class="wp-image-100" srcset="https://blog.frankovic.net/wp-content/uploads/2018/09/Home-Sync-Diagram-2.png 648w, https://blog.frankovic.net/wp-content/uploads/2018/09/Home-Sync-Diagram-2-300x237.png 300w" sizes="auto, (max-width: 648px) 100vw, 648px" /><figcaption>Sync and backup scheme</figcaption></figure>



<p>For backup purposes, I am using <a href="https://allwaysync.com/" target="_blank">AllwaySync </a>software on my computers to do one way sync of data to Synology NAS.</p>



<p>Sync and backup workflow works like this:<br/></p>



<ol class="wp-block-list"><li>Both Android phones are setup so they sync all photos from local storage to OneDrive</li><li>On each PC I have AllwaySync software that syncs one way to NAS on scheduled basis and manually</li><li>Synology NAS pulls OneDrive data locally as items arrive in OneDrive</li><li>Synology creates backup every day in Azure Cool Storage. Besides OneDrive and PC backup data I also backup some additional folders from NAS</li><li>From time to time I manually backup Synology data to external USB (this is to be automated by attaching disk directly to NAS and setting up schedule for backup)</li></ol>



<h4 class="wp-block-heading">Price and conclusion</h4>



<p>Besides one time NAS and disks cost, there is additional cost which is monthly or yearly reoccurring. Azure Cool Storage in West Europe, LRS,  cost is $17 per month for cca. 500 GB of data. I am using 30 days retention. O365 Home subscription costs cca. $100 per year.</p>



<p>Besides these devices, I have also connected Playstation 4, Sony BD player, Netatmo smart thermostat, Air Condition and Roomba.</p>



<p>Main idea of this setup was to easily have backups of multiple devices (mainly images).  Also, regarding multimedia, I wanted to manage everything with one remote and to be able to stream my multimedia files anywhere (bedroom, hotel rooms, apartments and so on). One important need was ability to circumvent ISP router for local network and network to be managed (in this case via Unifi controller that is running in Azure as Linux VM). At some point, controller will be moved to <a href="https://azure.microsoft.com/en-us/services/container-instances/" target="_blank">Azure Container Instance</a>.</p>



<p>Feel free to comment below or contact me if you need more detailed setup instructions for any of these components.  </p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/09/19/utilizing-microsoft-onedrive-and-azure-storage-for-personal-data-sync-and-backup/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">73</post-id>	</item>
		<item>
		<title>Past conference recordings</title>
		<link>https://blog.frankovic.net/2018/09/19/past-conference-recordings/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=past-conference-recordings</link>
					<comments>https://blog.frankovic.net/2018/09/19/past-conference-recordings/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Wed, 19 Sep 2018 08:15:25 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure Backup]]></category>
		<category><![CDATA[Virtual Networks]]></category>
		<category><![CDATA[Youtube]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=67</guid>

					<description><![CDATA[Here are couple of past conference recordings. They are available on Youtube on my channel, put for promotional reasons I will but them here also. Both sessions are delivered in... ]]></description>
										<content:encoded><![CDATA[
<p>Here are couple of past conference recordings. They are available on Youtube on my channel, put for promotional reasons I will but them here also. Both sessions are delivered in Croatian language.</p>



<h4 class="wp-block-heading">Windays 18 Azure Virtual Networking</h4>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube">
<div class="jetpack-video-wrapper"><iframe loading="lazy" class="youtube-player" width="760" height="428" src="https://www.youtube.com/embed/yY6OXv_nauo?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;start=4&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div>
</figure>



<h4 class="wp-block-heading">MS Network 8 Azure Backup As A Service</h4>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube">
<div class="jetpack-video-wrapper"><iframe loading="lazy" class="youtube-player" width="760" height="428" src="https://www.youtube.com/embed/mddqPe8VIY4?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div>
</figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/09/19/past-conference-recordings/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">67</post-id>	</item>
		<item>
		<title>Upcoming conference appearances</title>
		<link>https://blog.frankovic.net/2018/09/17/upcoming-conference-appearances/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=upcoming-conference-appearances</link>
					<comments>https://blog.frankovic.net/2018/09/17/upcoming-conference-appearances/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Mon, 17 Sep 2018 14:14:55 +0000</pubDate>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=58</guid>

					<description><![CDATA[Conferences season has just started and first one that I will be attending and presenting at will be CrisCon 2018. It is its 2nd year and I am happy to... ]]></description>
										<content:encoded><![CDATA[
<p>Conferences season has just started and first one that I will be attending and presenting at will be CrisCon 2018. It is its 2nd year and I am happy to be part of it. You should definitely  attend it because it has a promising set of speakers and themes that can be very useful. Register <a href="http://criscon.krizevci.hr/Registration">here</a>.</p>



<p>My session will be about different <a href="http://criscon.krizevci.hr/Agenda/Speaker?id=3496">Azure scenarios </a>that you can use and how to use them in a proper way. If you are interested, please join me in Križevci, on 22.9.2018. at 14:45.</p>



<iframe loading="lazy" src="https://www.google.com/maps/d/embed?mid=1kY8O1KLKEj-Uw6hPXfGj8Cd2h4k" width="640" height="480"></iframe>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/09/17/upcoming-conference-appearances/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">58</post-id>	</item>
		<item>
		<title>Aaaaand I&#8217;m back!</title>
		<link>https://blog.frankovic.net/2018/09/17/aaaaand-im-back/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=aaaaand-im-back</link>
					<comments>https://blog.frankovic.net/2018/09/17/aaaaand-im-back/#respond</comments>
		
		<dc:creator><![CDATA[Marin]]></dc:creator>
		<pubDate>Mon, 17 Sep 2018 13:33:33 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Job]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Span]]></category>
		<guid isPermaLink="false">https://blog.frankovic.net/?p=39</guid>

					<description><![CDATA[It has been four long years since my last post. During that time I was part of Microsoft corporation working on Azure as Technical Solutions Professional covering anything between 10... ]]></description>
										<content:encoded><![CDATA[
<p>It has been four long years since my last post. During that time I was part of Microsoft corporation working on Azure as Technical Solutions Professional covering anything between 10 and 24 countries, depending on the fiscal year.</p>



<p>As always, during the reorganization, some employees are left behind, so I was looking for new opportunities in Croatia and elsewhere. Luckily, I managed to find new position within best Microsoft partner in region, Span, and now I hold a position of Senior Solutions Architect, covering cloud and infrastructure products and solutions and taking part is some very exciting projects. </p>



<p>I will revive this blog, but it will go in different direction this time. I will try to focus on architecting solutions based on Azure public cloud and related on-prem technologies in supported hybrid scenarios. From time to time I will also do videos and I will post my conference sessions. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.frankovic.net/2018/09/17/aaaaand-im-back/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">39</post-id>	</item>
	</channel>
</rss>
