<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Initialize VMs with startup scripts on OpenShift Virtualization Training</title><link>/docs/initialize-vms-with-startup-scripts/</link><description>Recent content in Initialize VMs with startup scripts on OpenShift Virtualization Training</description><generator>Hugo</generator><language>en</language><atom:link href="/docs/initialize-vms-with-startup-scripts/index.xml" rel="self" type="application/rss+xml"/><item><title>Introduction</title><link>/docs/initialize-vms-with-startup-scripts/startup-introduction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/initialize-vms-with-startup-scripts/startup-introduction/</guid><description>&lt;p>When we create a virtual machine, we often want to configure the virtual machine to fit in our environment. To achieve this, OpenShift Virtualization
supports the assignment of startup scripts which are executed automatically when the VM initializes. They are typically used to
provide SSH keys, required configuration to run further configuration with ansible, deploy network configuration and so on.&lt;/p>
&lt;p>These startup script methods are supported:&lt;/p>
&lt;ul>
&lt;li>Cloud-init&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> and Ignition&lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref">2&lt;/a>&lt;/sup> which are targeting Linux and Unix systems&lt;/li>
&lt;li>Sysprep&lt;sup id="fnref:3">&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref">3&lt;/a>&lt;/sup> to initialize Windows-based VMs&lt;/li>
&lt;/ul>
&lt;p>Cloud-init is the most-widely adopted method, and you will find great support on cloud providers such as AWS, GCP and Azure.&lt;/p></description></item><item><title>Cloud-init</title><link>/docs/initialize-vms-with-startup-scripts/cloud-init/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/initialize-vms-with-startup-scripts/cloud-init/</guid><description>&lt;p>In this section we will use cloud-init to initialize a Fedora Cloud&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> VM. Cloud-init is the de-facto standard for providing
startup scripts to VMs.&lt;/p>
&lt;p>Cloud-init is widely adopted. Some of the known users of cloud-init are:&lt;/p>
&lt;ul>
&lt;li>Ubuntu&lt;/li>
&lt;li>Arch Linux&lt;/li>
&lt;li>CentOS&lt;/li>
&lt;li>Red Hat&lt;/li>
&lt;li>FreeBSD&lt;/li>
&lt;li>Fedora&lt;/li>
&lt;li>Gentoo Linux&lt;/li>
&lt;li>openSUSE&lt;/li>
&lt;/ul>
&lt;h2 id="supported-data-sources">Supported data sources&lt;/h2>
&lt;p>OpenShift Virtualization supports the &lt;code>cloudInitNoCloud&lt;/code> and &lt;code>cloudInitConfigDrive&lt;/code> data source methods.&lt;/p>


&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

As it is the simplest data source you should stick to &lt;code>cloudInitNoCloud&lt;/code> as the go-to data source. Only if &lt;code>cloudInitNoCloud&lt;/code> is not supported
by the cloud-init implementation you should switch to &lt;code>cloudInitConfigDrive&lt;/code>. For example the implementation of coreos-cloudinit was known to
require the &lt;code>cloudInitConfigDrive&lt;/code> data source. However, as CoreOS has built Ignition this implementation is superseded but there
may be more implementations.

&lt;/div>

&lt;h3 id="cloudinitnocloud-data-source">&lt;code>cloudInitNoCloud&lt;/code> data source&lt;/h3>
&lt;p>&lt;code>cloudInitNoCloud&lt;/code> is a flexible data source to configure an instance locally. It can work without network access but can also
fetch configuration from a remote server. The relevant configuration of a &lt;code>cloudInitNoCloud&lt;/code> data source in a VM looks like this:&lt;/p></description></item><item><title>Ignition</title><link>/docs/initialize-vms-with-startup-scripts/ignition/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/initialize-vms-with-startup-scripts/ignition/</guid><description>&lt;p>In the previous section we created a VM using a cloud-init configuration Secret. This time we will do something similar but with Ignition and Linux Fedora CoreOS.&lt;/p>
&lt;p>Known users of Ignition are:&lt;/p>
&lt;ul>
&lt;li>Fedora CoreOS&lt;/li>
&lt;li>Red Hat Enterprise Linux CoreOS&lt;/li>
&lt;li>Flatcar&lt;/li>
&lt;li>openSUSE MicroOS&lt;/li>
&lt;li>SUSE Linux Enterprise Micro&lt;/li>
&lt;/ul>
&lt;h2 id="supported-data-sources">Supported data sources&lt;/h2>
&lt;p>To provide Ignition data we have to use the &lt;code>cloudInitNoCloud&lt;/code> data source.&lt;/p>
&lt;h3 id="cloudinitnocloud-data-source">&lt;code>cloudInitNoCloud&lt;/code> data source&lt;/h3>
&lt;p>The relevant configuration of a &lt;code>cloudInitNoCloud&lt;/code> data source in a VM looks like this:&lt;/p></description></item><item><title>Sysprep</title><link>/docs/initialize-vms-with-startup-scripts/sysprep/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/initialize-vms-with-startup-scripts/sysprep/</guid><description>&lt;p>This lab is not yet implemented.
Please check the official &lt;a href="https://kubevirt.io/user-guide/user_workloads/startup_scripts/#sysprep" target="_blank" rel="noopener">documentation&lt;/a>
 for additional information.&lt;/p></description></item></channel></rss>