Razor - DHCP and TFTP

This is part 2 of a series of posts on the new version of razor-server

  1. Installing Razor - Yes the New Version..
  2. Razor - DHCP and TFTP
  3. Installing the Razor client and creating a repository
  4. Installers, Policies and Tags
  5. Razor - What Lies Within the installer?
  6. Installing ESXi with Razor

In the previous part we installed the razor-server component.

But what use is razor without TFTP and DHCP servers that will allow you to boot your machines and install their OS? Because the architecture is modular, this can be done on different machines, or in this case - a single VM.

Here is my layout of my environment.

Environment

My razor server has two NICs - one for access to the outside world and the other to provision my nodes. The reason I did it this way was because I do not control the allocation of IP addresses outside of my network and here I needed full control.

Install dnsmasq

apt-get install dnsmasq -y

dnsmasq

The configuration files of dnsmasq needs to modified.

  • The first 3 lines take care of the iPXE boot.
  • Enable the TFTP Server.
  • Root directory where the boot files will be located.
  • Set a DHCP range (this should be customized according to your environment).

To add this basic configuration to the dnsmasq server you can use the following:

cat >> /etc/dnsmasq.conf << __DNSMASQ_CONF__

# This works for dnsmasq 2.45  
# iPXE sets option 175, mark it for network IPXEBOOT  
dhcp-match=IPXEBOOT,175  
dhcp-boot=net:IPXEBOOT,bootstrap.ipxe  
dhcp-boot=undionly.kpxe  
# TFTP setup  
enable-tftp  
tftp-root=/var/lib/tftpboot  
dhcp-range=192.168.1.50,192.168.1.150,12h

__DNSMASQ_CONF__
{< /highlight >}

[![dnsmasq.conf](https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_thumb_28.png "dnsmasq.conf")](https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_28.png)

The directory we defined above is not present by default - so it must be created, and then restart the dnsmasq service to start with the correct settings

<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-zsh" data-lang="zsh">mkdir -p /var/lib/tftpboot  
service dnsmasq restart
<span style="color:#f92672">{</span>&lt; /highlight &gt;<span style="color:#f92672">}</span>

<span style="color:#f92672">[</span>!<span style="color:#f92672">[</span>tftpboot directory<span style="color:#f92672">]</span><span style="color:#f92672">(</span>https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_thumb_29.png <span style="color:#e6db74">&#34;tftpboot directory&#34;</span><span style="color:#f92672">)</span><span style="color:#f92672">]</span><span style="color:#f92672">(</span>https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_29.png<span style="color:#f92672">)</span>

Get the iPXE boot firmware and put it in the tftpboot directory..

&lt;div class<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;highlight&#34;</span>&gt;&lt;pre style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;</span>&gt;&lt;code class<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;language-zsh&#34;</span> data-lang<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;zsh&#34;</span>&gt;cd /tmp  
curl -L -O &lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">[</span>&lt;/span&gt;https://boot.ipxe.org/undionly.kpxe&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">]</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">(</span>&lt;/span&gt;https://boot.ipxe.org/undionly.kpxe&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">)</span>&lt;/span&gt;  
mv undionly.kpxe /var/lib/tftpboot/
&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">{</span>&lt;/span&gt;&amp;lt; /highlight &amp;gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">}</span>&lt;/span&gt;

&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">[</span>&lt;/span&gt;!&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">[</span>&lt;/span&gt;iPXE&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">]</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">(</span>&lt;/span&gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_thumb_30.png &lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;iPXE&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_30.png&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;</span>

Create the razor iPXE bootstrap script. The &lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;<span style="color:#e6db74">`</span>&lt;/span&gt;nic_max&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;<span style="color:#e6db74">`</span>&lt;/span&gt; parameter indicates the maximum number of NICs &lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#66d9ef&#34;</span>&gt;for&lt;/span&gt; which &lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;<span style="color:#e6db74">`</span>&lt;/span&gt;bootstrap.ipxe&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;<span style="color:#e6db74">`</span>&lt;/span&gt; will report MAC&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#960050;background-color:#1e0010&#34;</span>&gt;&amp;<span style="color:#75715e">#39;&lt;/span&gt;s back to the razor server. In my &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; was enough. File is generated on the fly according to the URL and parameters passed.</span>  
**&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">(</span>&lt;/span&gt;In order to eliminate problems with name resolution - it is easier to use an IP address instead of a hostname&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">)</span>&lt;/span&gt;**

&amp;lt;div class&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;highlight&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;pre style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;code class&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;language-zsh&amp;#34;&lt;/span&gt; data-lang&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;zsh&amp;#34;&lt;/span&gt;&amp;gt;curl -L -O &amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&amp;lt;/span&amp;gt;https://192.168.1.5:8080/api/microkernel/bootstrap?nic_max&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;3&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&amp;lt;/span&amp;gt;https://192.168.1.5:8080/api/microkernel/bootstrap?nic_max&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;3&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&amp;lt;/span&amp;gt;</span>  
mv bootstrap&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#ae81ff&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\*&lt;/span&gt;&amp;lt;/span&amp;gt; /var/lib/tftpboot/bootstrap.ipxe</span>
&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;amp;lt; /highlight &amp;amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&amp;lt;/span&amp;gt;</span>

&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&amp;lt;/span&amp;gt;!&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&amp;lt;/span&amp;gt;bootstrap.ipxe&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&amp;lt;/span&amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_thumb_31.png &amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;bootstrap.ipxe&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_31.png&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;)&amp;lt;/span&amp;gt;&lt;/span&gt;</span>

Download and unpack the razor &amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&amp;lt;/span&amp;gt;microkernel&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&amp;lt;/span&amp;gt;https://github.com/puppetlabs/razor-el-mk&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&amp;lt;/span&amp;gt;. This will create a microkernel folder under the root directory of your repo-store.</span>

&amp;amp;lt;div class&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;highlight&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;lt;pre style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;lt;code class&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;language-zsh&amp;amp;#34;&amp;lt;/span&amp;gt; data-lang&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;zsh&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;curl -L -O &amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://links.puppetlabs.com/razor-microkernel-003.tar&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://links.puppetlabs.com/razor-microkernel-003.tar&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;)&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt; tar xf razor-microkernel-002.tar -C /var/lib/razor/repo-store/&lt;/span&gt;</span>  
rm -rf razor-microkernel-002.tar
&amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;{&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;amp;lt; /highlight &amp;amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;}&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&lt;/span&gt;</span>

&amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;!&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;microkernel&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_thumb_32.png &amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#e6db74&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;amp;&amp;lt;span style=&amp;#34;color:#75715e&amp;#34;&amp;gt;#34;microkernel&amp;amp;amp;#34;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;]&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;(&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_32.png&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;</span>

&amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;!&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;microkernel files&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_thumb_33.png &amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#e6db74&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;amp;&amp;lt;span style=&amp;#34;color:#75715e&amp;#34;&amp;gt;#34;microkernel files&amp;amp;amp;#34;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;]&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;(&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_33.png&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;</span>

So just to recap. You should now have a DHCP/TFTP server with the correct configuration, iPXE, the razor bootstrap and also the razor microkernel. You are now ready to PXE boot your first node.

When powering up a node and booting on the 192.168.1.0/24 network you should see something similar to the following.

&amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;!&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;boot process&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_thumb_34.png &amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#e6db74&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;amp;&amp;lt;span style=&amp;#34;color:#75715e&amp;#34;&amp;gt;#34;boot process&amp;amp;amp;#34;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;]&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;(&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_34.png&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;</span>

Here you can see that the node received an IP, contacted the TFTP server, and started the bootstrap file. It &amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#66d9ef&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;then&amp;amp;lt;/span&amp;amp;gt; contacts the razor server, and starts to boot the microkernel.&lt;/span&gt;</span>

Within a short time you will have booted into the microkernel and should end up at this screen

&amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;!&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;login&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_thumb_35.png &amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#e6db74&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;amp;&amp;lt;span style=&amp;#34;color:#75715e&amp;#34;&amp;gt;#34;login&amp;amp;amp;#34;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;]&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;(&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_35.png&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;</span>

How can you verify the that razor has recognized your node? Through the API.

Looking at the collection of nodes - &amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://razor:8080/api/collections/nodes&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://razor:8080/api/collections/nodes &amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#e6db74&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;amp;&amp;lt;span style=&amp;#34;color:#75715e&amp;#34;&amp;gt;#34;https://razor:8080/api/collections/nodes&amp;amp;amp;#34;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt; you should see the node you just brought up.&amp;lt;/span&amp;gt;&lt;/span&gt;</span>

&amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;!&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;node1&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_thumb_36.png &amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#e6db74&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;amp;&amp;lt;span style=&amp;#34;color:#75715e&amp;#34;&amp;gt;#34;node1&amp;amp;amp;#34;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;]&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;(&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_36.png&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;</span>

What does razor know about the node? - &amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://razor:8080/api/collections/nodes/node1&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://razor:8080/api/collections/nodes/node1&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;)&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&lt;/span&gt;</span> 

&amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;!&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;node1 details&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_thumb_37.png &amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#e6db74&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;amp;&amp;lt;span style=&amp;#34;color:#75715e&amp;#34;&amp;gt;#34;node1 details&amp;amp;amp;#34;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;]&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;(&amp;amp;lt;/span&amp;amp;gt;https://maishsk.com/blog/images/Razor---DHCP-and-TFTP_D1FF/image_37.png&amp;amp;lt;span style=&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;amp;gt;)&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;</span>

Of course we could send API calls all day through a web browser, but that is not so convenient.

In the &amp;amp;lt;span style&amp;lt;span style&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#f92672&#34;</span>&gt;<span style="color:#f92672">=</span>&lt;/span&gt;&lt;span style<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;color:#e6db74&#34;</span>&gt;&amp;<span style="color:#75715e">#34;color:#f92672&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;/span&amp;gt;&amp;lt;span style&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;color:#e6db74&amp;#34;&lt;/span&gt;&amp;gt;&amp;amp;&lt;span style=&#34;color:#75715e&#34;&gt;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;[&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;next post&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;]&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;(&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt;https://blog.technodrone.cloud/2013/11/razor-dhcp-and-tftp.html&amp;amp;lt;span style&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;#34;color:#e6db74&amp;#34;&amp;gt;&amp;amp;#34;color:#f92672&amp;amp;#34;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span style=&amp;#34;color:#f92672&amp;#34;&amp;gt;)&amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;amp;gt; we will install the razor-client and start create a installation repository.&amp;amp;lt;/code&amp;amp;gt;&amp;amp;lt;/pre&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</span></code></pre></div>