From 61c57b23213a6a2930667cfd47338347fbf6d921 Mon Sep 17 00:00:00 2001 From: gh-actions Date: Sat, 17 Feb 2024 09:42:54 +0000 Subject: [PATCH] Update main docs --- .../_sources/contents/configuration.rst.txt | 48 +++++----- .../main/_sources/contents/containers.rst.txt | 20 ++-- .../_sources/contents/initialization.rst.txt | 6 +- .../_sources/contents/installation.rst.txt | 60 ++++++------ .../main/_sources/contents/kernel.rst.txt | 30 +++--- .../main/_sources/contents/nodeconfig.rst.txt | 25 +++-- .../main/_sources/contents/profiles.rst.txt | 44 ++++----- .../docs/main/_sources/contents/setup.rst.txt | 2 +- .../main/_sources/contents/stateless.rst.txt | 11 +-- .../docs/main/_sources/contents/wwctl.rst.txt | 2 +- static/docs/main/_sources/index.rst.txt | 3 - static/docs/main/contents/configuration.html | 47 +++++----- static/docs/main/contents/containers.html | 20 ++-- static/docs/main/contents/initialization.html | 6 +- static/docs/main/contents/installation.html | 52 +++++------ static/docs/main/contents/kernel.html | 30 +++--- static/docs/main/contents/nodeconfig.html | 91 +++++++++---------- static/docs/main/contents/profiles.html | 44 ++++----- static/docs/main/contents/setup.html | 2 +- static/docs/main/contents/stateless.html | 11 +-- static/docs/main/contents/wwctl.html | 2 +- static/docs/main/searchindex.js | 2 +- 22 files changed, 268 insertions(+), 290 deletions(-) diff --git a/static/docs/main/_sources/contents/configuration.rst.txt b/static/docs/main/_sources/contents/configuration.rst.txt index c3b01c8d..9d92c174 100644 --- a/static/docs/main/_sources/contents/configuration.rst.txt +++ b/static/docs/main/_sources/contents/configuration.rst.txt @@ -10,14 +10,14 @@ warewulf.conf ============= The Warewulf configuration exists as follows in the current version of -Warewulf (4.3.0): +Warewulf (4.4.0): .. code-block:: yaml WW_INTERNAL: 43 - ipaddr: 192.168.200.1 - netmask: 255.255.255.0 - network: 192.168.200.0 + ipaddr: 10.0.0.1 + netmask: 255.255.252.0 + network: 10.0.0.0 warewulf: port: 9873 secure: false @@ -27,8 +27,8 @@ Warewulf (4.3.0): syslog: false dhcp: enabled: true - range start: 192.168.200.50 - range end: 192.168.200.99 + range start: 10.0.1.1 + range end: 10.0.1.255 systemd name: dhcpd tftp: enabled: true @@ -45,6 +45,10 @@ Warewulf (4.3.0): mount options: defaults mount: false systemd name: nfs-server + container mounts: + - source: /etc/resolv.conf + dest: /etc/resolv.conf + readonly: true Generally you can leave this file as is, as long as you set the appropriate networking information. Specifically the following @@ -64,16 +68,12 @@ configurations: network, failures will occur. This specifies the range of addresses you want DHCP to use. -.. note:: - - The network configuration listed above assumes the network layout - in the [Background](background.md) portion of the documentation. - The other configuration options are usually not touched, but they are explained as follows: -* ``*:enabled``: This disables Warewulf's control of an external - service. This is useful if you want to manage that service directly. +* ``*:enabled``: This can be used to disable Warewulf's control of a + system service. This is useful if you want to manage that service + directly. * ``*:systemd name``: This is so Warewulf can control some of the host's services. For the distributions that we've built and tested @@ -111,8 +111,12 @@ explained as follows: to syslog or are written directly to a log file. (e.g., ``/var/log/warewulfd.log``) -* ``nfs:export paths``: Warewulf will automatically set up the NFS - exports if you wish for it to do this. +* ``nfs:export paths``: Warewulf can automatically set up these NFS + exports. + +* ``container mounts``: These paths are mounted into the container + during ``container exec`` or ``container shell``, typically to allow + them to operate in the host environment prior to deployment. nodes.conf ========== @@ -130,18 +134,18 @@ command. .. note:: - This configuration is not written at install time, but the - first time you attempt to run ``wwctl``, this file will be generated - if it does not exist already. + This configuration is not written at install time; but, the first + time you attempt to run ``wwctl``, this file will be generated if + it does not exist already. defaults.conf ============= The ``defaults.conf`` file configures default values used when none -are specified. For example: if a node does not have a "runtime -overlay" specified, the respective value from ``defaultnode`` is -used. If a network device does not specify a "device," the device -value of the ``dummy`` device is used. +are specified in ``nodes.conf``. For example: if a node does not have +a "runtime overlay" specified, the respective value from +``defaultnode`` is used. If a network device does not specify a +"device," the device value of the ``dummy`` device is used. If ``defaults.conf`` does not exist, the following values are used as compiled into Warewulf at build-time: diff --git a/static/docs/main/_sources/contents/containers.rst.txt b/static/docs/main/_sources/contents/containers.rst.txt index d7e67980..a802f98b 100644 --- a/static/docs/main/_sources/contents/containers.rst.txt +++ b/static/docs/main/_sources/contents/containers.rst.txt @@ -11,21 +11,21 @@ Warewulf control node (e.g. a ``chroot()``). In hindsight, we've been using containers all along, but the buzzword just didn't exist. Over the last 5-6 years, the enterprise has created a lot of tooling and standards around defining, building, -distributing, securing, and managing containers, so Warewulf (as of -v4.0) now integrates directly within the container ecosystem to -facilitate the process of VNFS image management. +distributing, securing, and managing containers, so Warewulf v4 now +integrates directly within the container ecosystem to facilitate the +process of VNFS image management. If you are not currently leveraging the container ecosystem in any other way, you can still build your own chroot directories and use -Warewulf as you always have. +Warewulf as before. It is important to understand that Warewulf is not running a container -runtime on the nodes. While that is absolutely possible to run -containers from the booted hosts, Warewulf is provisioning the -container image to the bare metal and booting it. This container will -be used as the base operating system and by default it will run -stateless in memory. This means when you reboot the node, the node -persists no information about Warewulf or how it booted. +runtime on cluster nodes. While it is absolutely possible to run +containers on cluster nodes, Warewulf is provisioning the container +image to the bare metal and booting it. This container will be used as +the base operating system and, by default, it will run entirely in +memory. This means that when you reboot the node, the node retains no +information about Warewulf or how it booted. Container Tools =============== diff --git a/static/docs/main/_sources/contents/initialization.rst.txt b/static/docs/main/_sources/contents/initialization.rst.txt index 4d54d13e..2e605901 100644 --- a/static/docs/main/_sources/contents/initialization.rst.txt +++ b/static/docs/main/_sources/contents/initialization.rst.txt @@ -42,8 +42,8 @@ Warewulf Service ================ The Warewulf installation attempts to register the Warewulf service -with Systemd, so it should be as easy to start/stop/check as any other -Systemd service: +with systemd, so it should be as easy to start/stop/check as any other +systemd service: .. code-block:: console @@ -58,7 +58,7 @@ command line program as follows: .. note:: - If the Warewulf service is running via Systemd, restarting + If the Warewulf service is running via systemd, restarting stopping, and starting it from the ``wwctl`` command may result in unexpected results. diff --git a/static/docs/main/_sources/contents/installation.rst.txt b/static/docs/main/_sources/contents/installation.rst.txt index 0a1207f9..4ac7fcea 100644 --- a/static/docs/main/_sources/contents/installation.rst.txt +++ b/static/docs/main/_sources/contents/installation.rst.txt @@ -1,9 +1,9 @@ -##################### +===================== Warewulf Installation -##################### +===================== -There are multiple methods to install Warewulf, this page describes -the installation process of multiple methods: +There are multiple methods to install Warewulf. This page describes +the installation process for some of those methods. Binary RPMs =========== @@ -49,10 +49,9 @@ source code as follows: Release Tarball --------------- -When the Warewulf project releases stable versions, they are available -via source form here: - -`https://github.com/warewulf/warewulf/tags `_ +The Warewulf project releases source distributions alongside its +binary RPMs. You can obtain them from the `GitHub releases +`_ page. Select the version you wish to install and download the tarball to any location on the server, then follow these directions making the @@ -60,39 +59,38 @@ appropriate substitutions: .. code-block:: bash - # EDIT HERE - VERSION=4.2.0 - DOWNLOAD=/tmp/warewulf-${4.2.0}.tar.gz - - # COPY/PASTE THIS - mkdir ~/src - cd ~/src - tar xvf ${DOWNLOAD} + VERSION=4.4.0 + curl -LO https://github.com/hpcng/warewulf/releases/download/v${VERSION}/warewulf-${VERSION}.tar.gz + tar -xf warewulf-${VERSION}.tar.gz cd warewulf-${VERSION} make all && sudo make install Git --- -Warewulf is developed in "Git", a source code management platform that -allows collaborative development and revision control. From the Git -repository, you can download different versions of the project either -from tags or branches. By default, when you go to the GitHub page, you -will find the default branch entitled ``main``. The ``main`` branch is -where most of the active development occurs, so if you want to obtain -the latest and greatest version of Warewulf, this is where to go. But -be forewarned, using a snapshot from ``main`` is not guaranteed to be -stable or generally supported for production. If you are building for -production, it is best to download a release tarball from the main -site, the GitHub releases page, or from a Git tag. +Warewulf is developed in GitHub, a source code management platform +that allows collaborative development and revision control. From the +Git repository, you can download different versions of the project +either from tags or branches. By default, when you go to the GitHub +page, you will find the default branch entitled ``development``. The +``development`` branch is where most of the active development occurs, +so if you want to obtain the latest and greatest version of Warewulf, +this is where to go. But be forewarned, using a snapshot from +``development`` is not guaranteed to be stable or generally supported +for production. + +Alternatively, the ``main`` branch is more stable and is used as a +staging area for pending releases. + +If you are building for production, it is best to download a release +tarball from the main site, the GitHub releases page, or from a Git +tag. .. code-block:: bash - mkdir ~/git - cd ~/git - git clone https://github.com/warewulf/warewulf.git + git clone https://github.com/hpcng/warewulf.git cd warewulf - git checkout main # or switch to a tag like '4.2.0' + git checkout development # or switch to a tag like 'v4.4.0' make all && sudo make install Runtime Dependencies diff --git a/static/docs/main/_sources/contents/kernel.rst.txt b/static/docs/main/_sources/contents/kernel.rst.txt index 05bde261..a2eb1715 100644 --- a/static/docs/main/_sources/contents/kernel.rst.txt +++ b/static/docs/main/_sources/contents/kernel.rst.txt @@ -6,8 +6,8 @@ Node Kernels ============ Warewulf nodes require a Linux kernel to boot. There are multiple ways -to do this, but the default, and easiest way is to install the kernel -you wish to use for a particular container, into the container. +to do this, but the default and easiest way is to install the kernel +you wish to use for a particular container into the container. Warewulf will locate the kernel automatically within the container and by default use that kernel for any node configured to use that @@ -19,15 +19,14 @@ You can see what kernel is included in a container by using the .. code-block:: console # wwctl container list - CONTAINER NAME NODES KERNEL VERSION - alpine 0 - rocky 0 4.18.0-348.12.2.el8_5.x86_64 - rocky_updated 1 4.18.0-348.23.1.el8_5.x86_64 + CONTAINER NAME NODES KERNEL VERSION CREATION TIME MODIFICATION TIME SIZE + alpine 0 05 Jun 23 20:02 MDT 05 Jun 23 20:02 MDT 17.9 MiB + rocky-8 1 4.18.0-372.13.1.el8_6.x86_64 17 Jan 23 23:48 MST 06 Apr 23 09:40 MDT 2.4 GiB Here you will notice the alpine contianer that was imported has no -kernel within it, and each of the rocky containers include a kernel. +kernel within it, and the rocky container includes a kernel. -This model was introduced in Warewulf 4.3.0. Previously, Warewulf +This model was introduced in Warewulf v4.3. Previously, Warewulf managed the kernel and the container separately, which made it hard to build and distribute containers that have custom drivers and/or configurations included (e.g. OFED, GPUs, etc.). @@ -35,12 +34,11 @@ configurations included (e.g. OFED, GPUs, etc.). Kernel Overrides ================ -It is still possible to specify a kernel to a container if it doesn't +It is still possible to specify a kernel for a container if it doesn't include it's own kernel, or if you wish to override the default kernel by using the ``kernel override`` capability. -You can specify this option either within the ``nodes.conf`` directly -or via the command line with the ``--kerneloverride`` option to +You can specify this option with the ``--kerneloverride`` option to ``wwctl node set`` or ``wwctl profile set`` commands. In this case you will also need to import a kernel specifically into @@ -53,7 +51,7 @@ follows: 4.18.0-305.3.1.el8_4.x86_64: Done This process will import not only the kernel image itself, but also -all of the kernel modules and firmware associated to this kernel. +all of the kernel modules and firmware associated with this kernel. Listing All Imported Kernels ---------------------------- @@ -67,5 +65,9 @@ following command: VNFS NAME NODES 4.18.0-305.3.1.el8_4.x86_64 0 -Once a kernel has been imported and showing up in this list you can -configure it to boot compute nodes. + # wwctl kernel list + KERNEL NAME KERNEL VERSION NODES + 4.18.0-305.3.1.el8_4.x86_64 0 + +Once a kernel has been imported you can configure it to boot compute +nodes. diff --git a/static/docs/main/_sources/contents/nodeconfig.rst.txt b/static/docs/main/_sources/contents/nodeconfig.rst.txt index 83780429..539b4aef 100644 --- a/static/docs/main/_sources/contents/nodeconfig.rst.txt +++ b/static/docs/main/_sources/contents/nodeconfig.rst.txt @@ -22,7 +22,7 @@ Creating a new node is as simple as running the following command: .. code-block:: console - # wwctl node add n001 -I 172.16.1.11 + # wwctl node add n001 -I 10.0.2.1 Added node: n001 Adding several nodes @@ -33,18 +33,17 @@ given. An additional IP address will incremented. So the command .. code-block:: console - # wwctl node add n00[2-4] -I 172.16.1.12 + # wwctl node add n00[2-4] -I 10.0.2.2 Added node: n002 Added node: n003 Added node: n004 # wwctl node list -n n00[1-4] NODE NAME NAME HWADDR IPADDR GATEWAY DEVICE - ========================================================================================== - n001 default -- 172.16.1.11 -- (eth0) - n002 default -- 172.16.1.12 -- (eth0) - n003 default -- 172.16.1.13 -- (eth0) - n004 default -- 172.16.1.14 -- (eth0) + n001 default -- 10.0.2.1 -- (eth0) + n002 default -- 10.0.2.2 -- (eth0) + n003 default -- 10.0.2.3 -- (eth0) + n004 default -- 10.0.2.4 -- (eth0) has added 4 nodes with the incremented IP addresses. @@ -74,17 +73,15 @@ their attributes as follows: # wwctl node list NODE NAME PROFILES NETWORK - ================================================================================ - n001 default + n001 default You can also see the node's full attribute list by specifying the ``-a`` option (all): -.. code-block:: bash +.. code-block:: console # wwctl node list -a n001 NODE FIELD PROFILE VALUE - ===================================================================================== n001 Id -- n001 n001 comment default This profile is automatically included for each node n001 cluster -- -- @@ -155,7 +152,7 @@ And you can check that the container name is set for ``n001``: Configuring the Node's Kernel ----------------------------- -While the recommended method for assigning a kernel in 4.3 and beyond +While the recommended method for assigning a kernel in v4.3 and beyond is to include it in the container / node image, a kernel can still be specified as an override at the node or profile. To illustrate this, we import the most recent kernel from a openSUSE Tumbleweed release. @@ -190,7 +187,7 @@ container, kernel, and network: .. code-block:: console # wwctl node list -a n001 - ===================================================================================== + NODE FIELD PROFILE VALUE n001 Id -- n001 n001 comment default This profile is automatically included for each node n001 cluster -- -- @@ -264,7 +261,7 @@ Node Discovery -------------- The hwaddr of a node can be automatically discovered by setting -`--discoverable` on a node. If a node attempts to provision against +``--discoverable`` on a node. If a node attempts to provision against Warewulf using an interface that is unknown to Warewulf, that address is associated with the first discoverable node. (Multiple discoverable nodes are sorted lexically, first by cluster, then by ID.) diff --git a/static/docs/main/_sources/contents/profiles.rst.txt b/static/docs/main/_sources/contents/profiles.rst.txt index 0f3a2eae..ba790e1d 100644 --- a/static/docs/main/_sources/contents/profiles.rst.txt +++ b/static/docs/main/_sources/contents/profiles.rst.txt @@ -28,7 +28,6 @@ follows: # wwctl profile list PROFILE NAME COMMENT/DESCRIPTION - ================================================================================ default This profile is automatically included for each node And with the ``-a`` flag: @@ -36,25 +35,24 @@ And with the ``-a`` flag: .. code-block:: console # wwctl profile list -a - ################################################################################ - PROFILE NAME FIELD VALUE - default Id default - default Comment This profile is automatically included for each node - default Cluster -- - default Container -- - default Kernel -- - default KernelArgs -- - default Init -- - default Root -- - default RuntimeOverlay -- - default SystemOverlay -- - default Ipxe -- - default IpmiIpaddr -- - default IpmiNetmask -- - default IpmiPort -- - default IpmiGateway -- - default IpmiUserName -- - default IpmiInterface -- + PROFILE FIELD PROFILE VALUE + default Id -- default + default Comment -- This profile is automatically included for each node + default Cluster -- -- + default Container -- -- + default Kernel -- -- + default KernelArgs -- -- + default Init -- -- + default Root -- -- + default RuntimeOverlay -- -- + default SystemOverlay -- -- + default Ipxe -- -- + default IpmiIpaddr -- -- + default IpmiNetmask -- -- + default IpmiPort -- -- + default IpmiGateway -- -- + default IpmiUserName -- -- + default IpmiInterface -- -- As you can see here, there is only one attribute set by default in this profile, and that is the "Comment" field. That Comment is @@ -65,7 +63,6 @@ configuration attribute there: .. code-block:: console # wwctl node list -a | head -n 5 - ################################################################################ NODE FIELD PROFILE VALUE n0000 Id -- n0000 n0000 Comment default This profile is automatically included for each node @@ -88,7 +85,6 @@ demonstrate how to use this second profile. # wwctl profile add test_profile # wwctl profile list PROFILE NAME COMMENT/DESCRIPTION - ================================================================================ default This profile is automatically included for each node test_profile -- @@ -115,7 +111,6 @@ And you can now verify that the node has both profile configurations: .. code-block:: console # wwctl node list -a | head -n 6 - ################################################################################ NODE FIELD PROFILE VALUE n0000 Id -- n0000 n0000 Comment default This profile is automatically included for each node @@ -134,7 +129,6 @@ configurations. We can also overwrite configurations as follows: Are you sure you want to modify 1 profile(s): y # wwctl node list -a | head -n 6 - ################################################################################ NODE FIELD PROFILE VALUE n0000 Id -- n0000 n0000 Comment test_profile test comment @@ -150,7 +144,6 @@ And if we delete the superseded profile attribute from Are you sure you want to modify 1 profile(s): y # wwctl node list -a | head -n 6 - ################################################################################ NODE FIELD PROFILE VALUE n0000 Id -- n0000 n0000 Comment default This profile is automatically included for each node @@ -175,7 +168,6 @@ as can be seen here: Are you sure you want to modify 1 nodes(s): y # wwctl node list -a | head -n 6 - ################################################################################ NODE FIELD PROFILE VALUE n0000 Id -- n0000 n0000 Comment SUPERSEDED This value takes precedent diff --git a/static/docs/main/_sources/contents/setup.rst.txt b/static/docs/main/_sources/contents/setup.rst.txt index 0d292721..1c11f03d 100644 --- a/static/docs/main/_sources/contents/setup.rst.txt +++ b/static/docs/main/_sources/contents/setup.rst.txt @@ -60,7 +60,7 @@ to organize the address allocations. Below is a recommended IP addressing scheme which we will use for the rest of this document. * ``10.0.0.1``: Private network address IP -* ``255.255.252.0``: Private network subnet mask +* ``255.255.252.0``: Private network subnet mask (``10.0.0.0/22``) Here is an example of how the cluster's address can be divided for a 255 node cluster: diff --git a/static/docs/main/_sources/contents/stateless.rst.txt b/static/docs/main/_sources/contents/stateless.rst.txt index c08c9418..28b19307 100644 --- a/static/docs/main/_sources/contents/stateless.rst.txt +++ b/static/docs/main/_sources/contents/stateless.rst.txt @@ -14,9 +14,9 @@ of scale became apparent. Of course in HPC, there are many scalability factors which needed to be overcome as we continued to scale up clusters. Pretty early on was the "administrative scaling" which is the factor that full time systems administrators could only maintain -so many servers. While homogenous configurations were able to help +so many servers. While homogeneous configurations were able to help that, we still had the problem that every installed server became a -point of administration, version creep, and debugging. The larger the +point of administration, version drift, and debugging. The larger the cluster, the harder this problem was to solve. Warewulf was created to help with exactly this. @@ -40,8 +40,7 @@ management of these systems completely changed the paradigm. There were several cluster provision and management toolkits already available when Warewulf was created and while these tools absolutely -helped, there was even more optimization to be had. Stateless -computing. +helped, there was even more optimization to be had. Why Stateless Provisioning ========================== @@ -55,8 +54,8 @@ This is Warewulf. Stateless provisioning is realizing you never have to install another compute node. Think of it like booting a LiveOS or LiveISO on nodes over the network. This means that no node individually is a point of -system administration, but rather the entire cluster, inclusively is -administrated as a single unit. +system administration, but rather the entire cluster is administrated +as a single unit. If all cluster nodes are booting the same OS image (or set of OS images), then any individual nodes that have problems is diff --git a/static/docs/main/_sources/contents/wwctl.rst.txt b/static/docs/main/_sources/contents/wwctl.rst.txt index 5fa8ee48..dad05cb8 100644 --- a/static/docs/main/_sources/contents/wwctl.rst.txt +++ b/static/docs/main/_sources/contents/wwctl.rst.txt @@ -6,7 +6,7 @@ Warewulf's command-line interface is based primarily around the ``wwctl`` command. This command has sub-commands for each major component of Warewulf's functionality. -* ``configure`` configures external services that Warewulf depends on +* ``configure`` configures system services that Warewulf depends on * ``container`` configures containers (node images) * ``kernel`` configures override kernels * ``node`` manages nodes in the cluster diff --git a/static/docs/main/_sources/index.rst.txt b/static/docs/main/_sources/index.rst.txt index 0d8d7249..f59944dd 100644 --- a/static/docs/main/_sources/index.rst.txt +++ b/static/docs/main/_sources/index.rst.txt @@ -57,6 +57,3 @@ Welcome to the Warewulf User Guide! :glob: reference/* - - - diff --git a/static/docs/main/contents/configuration.html b/static/docs/main/contents/configuration.html index d4d010f8..14944379 100644 --- a/static/docs/main/contents/configuration.html +++ b/static/docs/main/contents/configuration.html @@ -126,11 +126,11 @@

Warewulf Configuration

warewulf.conf

The Warewulf configuration exists as follows in the current version of -Warewulf (4.3.0):

+Warewulf (4.4.0):

Generally you can leave this file as is, as long as you set the @@ -176,16 +180,12 @@

warewulf.conf -

Note

-

The network configuration listed above assumes the network layout -in the [Background](background.md) portion of the documentation.

-

The other configuration options are usually not touched, but they are explained as follows:

@@ -231,18 +234,18 @@

nodes.conf

Note

-

This configuration is not written at install time, but the -first time you attempt to run wwctl, this file will be generated -if it does not exist already.

+

This configuration is not written at install time; but, the first +time you attempt to run wwctl, this file will be generated if +it does not exist already.

defaults.conf

The defaults.conf file configures default values used when none -are specified. For example: if a node does not have a “runtime -overlay” specified, the respective value from defaultnode is -used. If a network device does not specify a “device,” the device -value of the dummy device is used.

+are specified in nodes.conf. For example: if a node does not have +a “runtime overlay” specified, the respective value from +defaultnode is used. If a network device does not specify a +“device,” the device value of the dummy device is used.

If defaults.conf does not exist, the following values are used as compiled into Warewulf at build-time:

--
diff --git a/static/docs/main/contents/containers.html b/static/docs/main/contents/containers.html
index 6523ad84..e8ecd7f6 100644
--- a/static/docs/main/contents/containers.html
+++ b/static/docs/main/contents/containers.html
@@ -145,19 +145,19 @@ 

Container ManagementIn hindsight, we’ve been using containers all along, but the buzzword just didn’t exist. Over the last 5-6 years, the enterprise has created a lot of tooling and standards around defining, building, -distributing, securing, and managing containers, so Warewulf (as of -v4.0) now integrates directly within the container ecosystem to -facilitate the process of VNFS image management.

+distributing, securing, and managing containers, so Warewulf v4 now +integrates directly within the container ecosystem to facilitate the +process of VNFS image management.

If you are not currently leveraging the container ecosystem in any other way, you can still build your own chroot directories and use -Warewulf as you always have.

+Warewulf as before.

It is important to understand that Warewulf is not running a container -runtime on the nodes. While that is absolutely possible to run -containers from the booted hosts, Warewulf is provisioning the -container image to the bare metal and booting it. This container will -be used as the base operating system and by default it will run -stateless in memory. This means when you reboot the node, the node -persists no information about Warewulf or how it booted.

+runtime on cluster nodes. While it is absolutely possible to run +containers on cluster nodes, Warewulf is provisioning the container +image to the bare metal and booting it. This container will be used as +the base operating system and, by default, it will run entirely in +memory. This means that when you reboot the node, the node retains no +information about Warewulf or how it booted.

Container Tools

There are different container managment tools available. Docker is diff --git a/static/docs/main/contents/initialization.html b/static/docs/main/contents/initialization.html index b515af76..e9d2b67a 100644 --- a/static/docs/main/contents/initialization.html +++ b/static/docs/main/contents/initialization.html @@ -157,8 +157,8 @@

System Services

Warewulf Service

The Warewulf installation attempts to register the Warewulf service -with Systemd, so it should be as easy to start/stop/check as any other -Systemd service:

+with systemd, so it should be as easy to start/stop/check as any other +systemd service:

# systemctl enable --now warewulfd
 
@@ -169,7 +169,7 @@

Warewulf Service

Note

-

If the Warewulf service is running via Systemd, restarting +

If the Warewulf service is running via systemd, restarting stopping, and starting it from the wwctl command may result in unexpected results.

diff --git a/static/docs/main/contents/installation.html b/static/docs/main/contents/installation.html index a5991335..a10c8122 100644 --- a/static/docs/main/contents/installation.html +++ b/static/docs/main/contents/installation.html @@ -127,8 +127,8 @@

Warewulf Installation

-

There are multiple methods to install Warewulf, this page describes -the installation process of multiple methods:

+

There are multiple methods to install Warewulf. This page describes +the installation process for some of those methods.

Binary RPMs

The Warewulf project builds binary RPMs as part of its CI/CD @@ -165,20 +165,14 @@

Compiled Source code

Release Tarball

-

When the Warewulf project releases stable versions, they are available -via source form here:

-

https://github.com/warewulf/warewulf/tags

+

The Warewulf project releases source distributions alongside its +binary RPMs. You can obtain them from the GitHub releases page.

Select the version you wish to install and download the tarball to any location on the server, then follow these directions making the appropriate substitutions:

-
# EDIT HERE
-VERSION=4.2.0
-DOWNLOAD=/tmp/warewulf-${4.2.0}.tar.gz
-
-# COPY/PASTE THIS
-mkdir ~/src
-cd ~/src
-tar xvf ${DOWNLOAD}
+
VERSION=4.4.0
+curl -LO https://github.com/hpcng/warewulf/releases/download/v${VERSION}/warewulf-${VERSION}.tar.gz
+tar -xf warewulf-${VERSION}.tar.gz
 cd warewulf-${VERSION}
 make all && sudo make install
 
@@ -186,22 +180,24 @@

Release Tarball

Git

-

Warewulf is developed in “Git”, a source code management platform that -allows collaborative development and revision control. From the Git -repository, you can download different versions of the project either -from tags or branches. By default, when you go to the GitHub page, you -will find the default branch entitled main. The main branch is -where most of the active development occurs, so if you want to obtain -the latest and greatest version of Warewulf, this is where to go. But -be forewarned, using a snapshot from main is not guaranteed to be -stable or generally supported for production. If you are building for -production, it is best to download a release tarball from the main -site, the GitHub releases page, or from a Git tag.

-
mkdir ~/git
-cd ~/git
-git clone https://github.com/warewulf/warewulf.git
+

Warewulf is developed in GitHub, a source code management platform +that allows collaborative development and revision control. From the +Git repository, you can download different versions of the project +either from tags or branches. By default, when you go to the GitHub +page, you will find the default branch entitled development. The +development branch is where most of the active development occurs, +so if you want to obtain the latest and greatest version of Warewulf, +this is where to go. But be forewarned, using a snapshot from +development is not guaranteed to be stable or generally supported +for production.

+

Alternatively, the main branch is more stable and is used as a +staging area for pending releases.

+

If you are building for production, it is best to download a release +tarball from the main site, the GitHub releases page, or from a Git +tag.

+
git clone https://github.com/hpcng/warewulf.git
 cd warewulf
-git checkout main # or switch to a tag like '4.2.0'
+git checkout development # or switch to a tag like 'v4.4.0'
 make all && sudo make install
 
diff --git a/static/docs/main/contents/kernel.html b/static/docs/main/contents/kernel.html index 9f3dad70..ffb13c7c 100644 --- a/static/docs/main/contents/kernel.html +++ b/static/docs/main/contents/kernel.html @@ -124,34 +124,32 @@

Kernel Management

Node Kernels

Warewulf nodes require a Linux kernel to boot. There are multiple ways -to do this, but the default, and easiest way is to install the kernel -you wish to use for a particular container, into the container.

+to do this, but the default and easiest way is to install the kernel +you wish to use for a particular container into the container.

Warewulf will locate the kernel automatically within the container and by default use that kernel for any node configured to use that container image.

You can see what kernel is included in a container by using the wwctl container list command:

# wwctl container list
-CONTAINER NAME            NODES  KERNEL VERSION
-alpine                    0
-rocky                     0      4.18.0-348.12.2.el8_5.x86_64
-rocky_updated             1      4.18.0-348.23.1.el8_5.x86_64
+  CONTAINER NAME  NODES  KERNEL VERSION                 CREATION TIME        MODIFICATION TIME    SIZE
+  alpine          0                                     05 Jun 23 20:02 MDT  05 Jun 23 20:02 MDT  17.9 MiB
+  rocky-8         1      4.18.0-372.13.1.el8_6.x86_64   17 Jan 23 23:48 MST  06 Apr 23 09:40 MDT  2.4 GiB
 

Here you will notice the alpine contianer that was imported has no -kernel within it, and each of the rocky containers include a kernel.

-

This model was introduced in Warewulf 4.3.0. Previously, Warewulf +kernel within it, and the rocky container includes a kernel.

+

This model was introduced in Warewulf v4.3. Previously, Warewulf managed the kernel and the container separately, which made it hard to build and distribute containers that have custom drivers and/or configurations included (e.g. OFED, GPUs, etc.).

Kernel Overrides

-

It is still possible to specify a kernel to a container if it doesn’t +

It is still possible to specify a kernel for a container if it doesn’t include it’s own kernel, or if you wish to override the default kernel by using the kernel override capability.

-

You can specify this option either within the nodes.conf directly -or via the command line with the --kerneloverride option to +

You can specify this option with the --kerneloverride option to wwctl node set or wwctl profile set commands.

In this case you will also need to import a kernel specifically into Warewulf for this purpose using the wwctl kernel import command as @@ -161,7 +159,7 @@

Kernel Overrides

Listing All Imported Kernels

Once the kernel has been imported, you can list them all with the @@ -169,10 +167,14 @@

Listing All Imported Kernels
# wwctl kernel list
 VNFS NAME                           NODES
 4.18.0-305.3.1.el8_4.x86_64             0
+
+# wwctl kernel list
+KERNEL NAME                              KERNEL VERSION            NODES
+4.18.0-305.3.1.el8_4.x86_64                                             0
 

-

Once a kernel has been imported and showing up in this list you can -configure it to boot compute nodes.

+

Once a kernel has been imported you can configure it to boot compute +nodes.

diff --git a/static/docs/main/contents/nodeconfig.html b/static/docs/main/contents/nodeconfig.html index 9e9ade44..44a3d3cb 100644 --- a/static/docs/main/contents/nodeconfig.html +++ b/static/docs/main/contents/nodeconfig.html @@ -146,7 +146,7 @@

The Node Configuration DB

Adding a New Node

Creating a new node is as simple as running the following command:

-
# wwctl node add n001 -I 172.16.1.11
+
# wwctl node add n001 -I 10.0.2.1
 Added node: n001
 
@@ -154,18 +154,17 @@

Adding a New Node

Several nodes can be added with a single command if a node range is given. An additional IP address will incremented. So the command

-
# wwctl node add n00[2-4] -I 172.16.1.12
+
# wwctl node add n00[2-4] -I 10.0.2.2
 Added node: n002
 Added node: n003
 Added node: n004
 
 # wwctl node list -n n00[1-4]
 NODE NAME              NAME     HWADDR             IPADDR          GATEWAY         DEVICE
-==========================================================================================
-n001                   default  --                 172.16.1.11     --              (eth0)
-n002                   default  --                 172.16.1.12     --              (eth0)
-n003                   default  --                 172.16.1.13     --              (eth0)
-n004                   default  --                 172.16.1.14     --              (eth0)
+n001                   default  --                 10.0.2.1        --              (eth0)
+n002                   default  --                 10.0.2.2        --              (eth0)
+n003                   default  --                 10.0.2.3        --              (eth0)
+n004                   default  --                 10.0.2.4        --              (eth0)
 

has added 4 nodes with the incremented IP addresses.

@@ -191,47 +190,45 @@

Listing Nodes
# wwctl node list
 NODE NAME              PROFILES                   NETWORK
-================================================================================
-n001                            default
+n001                                              default
 

You can also see the node’s full attribute list by specifying the -a option (all):

-
# wwctl node list -a n001
-NODE                 FIELD              PROFILE      VALUE
-=====================================================================================
-n001                 Id                 --           n001
-n001                 comment            default      This profile is automatically included for each node
-n001                 cluster            --           --
-n001                 container          default      sle-micro-5.3
-n001                 ipxe               --           (default)
-n001                 runtime            --           (generic)
-n001                 wwinit             --           (wwinit)
-n001                 root               --           (initramfs)
-n001                 discoverable       --           --
-n001                 init               --           (/sbin/init)
-n001                 asset              --           --
-n001                 kerneloverride     --           --
-n001                 kernelargs         --           (quiet crashkernel=no vga=791 net.naming-scheme=v238)
-n001                 ipmiaddr           --           --
-n001                 ipminetmask        --           --
-n001                 ipmiport           --           --
-n001                 ipmigateway        --           --
-n001                 ipmiuser           --           --
-n001                 ipmipass           --           --
-n001                 ipmiinterface      --           --
-n001                 ipmiwrite          --           --
-n001                 profile            --           default
-n001                 default:type       --           (ethernet)
-n001                 default:onboot     --           --
-n001                 default:netdev     --           (eth0)
-n001                 default:hwaddr     --           --
-n001                 default:ipaddr     --           172.16.1.11
-n001                 default:ipaddr6    --           --
-n001                 default:netmask    --           (255.255.255.0)
-n001                 default:gateway    --           --
-n001                 default:mtu        --           --
-n001                 default:primary    --           true
+
# wwctl node list -a n001
+NODE                 FIELD              PROFILE      VALUE
+n001                 Id                 --           n001
+n001                 comment            default      This profile is automatically included for each node
+n001                 cluster            --           --
+n001                 container          default      sle-micro-5.3
+n001                 ipxe               --           (default)
+n001                 runtime            --           (generic)
+n001                 wwinit             --           (wwinit)
+n001                 root               --           (initramfs)
+n001                 discoverable       --           --
+n001                 init               --           (/sbin/init)
+n001                 asset              --           --
+n001                 kerneloverride     --           --
+n001                 kernelargs         --           (quiet crashkernel=no vga=791 net.naming-scheme=v238)
+n001                 ipmiaddr           --           --
+n001                 ipminetmask        --           --
+n001                 ipmiport           --           --
+n001                 ipmigateway        --           --
+n001                 ipmiuser           --           --
+n001                 ipmipass           --           --
+n001                 ipmiinterface      --           --
+n001                 ipmiwrite          --           --
+n001                 profile            --           default
+n001                 default:type       --           (ethernet)
+n001                 default:onboot     --           --
+n001                 default:netdev     --           (eth0)
+n001                 default:hwaddr     --           --
+n001                 default:ipaddr     --           172.16.1.11
+n001                 default:ipaddr6    --           --
+n001                 default:netmask    --           (255.255.255.0)
+n001                 default:gateway    --           --
+n001                 default:mtu        --           --
+n001                 default:primary    --           true
 
@@ -265,7 +262,7 @@

Configuring the Node’s Container Image

Configuring the Node’s Kernel

-

While the recommended method for assigning a kernel in 4.3 and beyond +

While the recommended method for assigning a kernel in v4.3 and beyond is to include it in the container / node image, a kernel can still be specified as an override at the node or profile. To illustrate this, we import the most recent kernel from a openSUSE Tumbleweed release.

@@ -293,7 +290,7 @@

Configuring the Node’s Network
# wwctl node list -a n001
-=====================================================================================
+NODE                 FIELD              PROFILE      VALUE
 n001                 Id                 --           n001
 n001                 comment            default      This profile is automatically included for each node
 n001                 cluster            --           --
@@ -360,7 +357,7 @@ 

Additional networks

Node Discovery

The hwaddr of a node can be automatically discovered by setting -–discoverable on a node. If a node attempts to provision against +--discoverable on a node. If a node attempts to provision against Warewulf using an interface that is unknown to Warewulf, that address is associated with the first discoverable node. (Multiple discoverable nodes are sorted lexically, first by cluster, then by ID.)

diff --git a/static/docs/main/contents/profiles.html b/static/docs/main/contents/profiles.html index 4c19140d..48ec8a4a 100644 --- a/static/docs/main/contents/profiles.html +++ b/static/docs/main/contents/profiles.html @@ -141,31 +141,29 @@

An Introduction To Profiles
# wwctl profile list
 PROFILE NAME         COMMENT/DESCRIPTION
-================================================================================
 default              This profile is automatically included for each node
 

And with the -a flag:

# wwctl profile list -a
-################################################################################
-PROFILE NAME         FIELD              VALUE
-default              Id                 default
-default              Comment            This profile is automatically included for each node
-default              Cluster            --
-default              Container          --
-default              Kernel             --
-default              KernelArgs         --
-default              Init               --
-default              Root               --
-default              RuntimeOverlay     --
-default              SystemOverlay      --
-default              Ipxe               --
-default              IpmiIpaddr         --
-default              IpmiNetmask        --
-default              IpmiPort           --
-default              IpmiGateway        --
-default              IpmiUserName       --
-default              IpmiInterface      --
+PROFILE              FIELD              PROFILE  VALUE
+default              Id                 --       default
+default              Comment            --       This profile is automatically included for each node
+default              Cluster            --       --
+default              Container          --       --
+default              Kernel             --       --
+default              KernelArgs         --       --
+default              Init               --       --
+default              Root               --       --
+default              RuntimeOverlay     --       --
+default              SystemOverlay      --       --
+default              Ipxe               --       --
+default              IpmiIpaddr         --       --
+default              IpmiNetmask        --       --
+default              IpmiPort           --       --
+default              IpmiGateway        --       --
+default              IpmiUserName       --       --
+default              IpmiInterface      --       --
 

As you can see here, there is only one attribute set by default in @@ -174,7 +172,6 @@

An Introduction To Profiles
# wwctl node list -a | head -n 5
-################################################################################
 NODE                 FIELD              PROFILE      VALUE
 n0000                Id                 --           n0000
 n0000                Comment            default      This profile is automatically included for each node
@@ -194,7 +191,6 @@ 

Multiple Profiles
# wwctl profile add test_profile
 # wwctl profile list
 PROFILE NAME         COMMENT/DESCRIPTION
-================================================================================
 default              This profile is automatically included for each node
 test_profile         --
 
@@ -215,7 +211,6 @@

Multiple Profiles
# wwctl node list -a | head -n 6
-################################################################################
 NODE                 FIELD              PROFILE      VALUE
 n0000                Id                 --           n0000
 n0000                Comment            default      This profile is automatically included for each node
@@ -232,7 +227,6 @@ 

Cascading ProfilesAre you sure you want to modify 1 profile(s): y # wwctl node list -a | head -n 6 -################################################################################ NODE FIELD PROFILE VALUE n0000 Id -- n0000 n0000 Comment test_profile test comment @@ -246,7 +240,6 @@

Cascading ProfilesAre you sure you want to modify 1 profile(s): y # wwctl node list -a | head -n 6 -################################################################################ NODE FIELD PROFILE VALUE n0000 Id -- n0000 n0000 Comment default This profile is automatically included for each node @@ -268,7 +261,6 @@

Overriding ProfilesAre you sure you want to modify 1 nodes(s): y # wwctl node list -a | head -n 6 -################################################################################ NODE FIELD PROFILE VALUE n0000 Id -- n0000 n0000 Comment SUPERSEDED This value takes precedent diff --git a/static/docs/main/contents/setup.html b/static/docs/main/contents/setup.html index 25ac9c0d..d87e9c5e 100644 --- a/static/docs/main/contents/setup.html +++ b/static/docs/main/contents/setup.html @@ -171,7 +171,7 @@

Addressing
  • 10.0.0.1: Private network address IP

  • -
  • 255.255.252.0: Private network subnet mask

  • +
  • 255.255.252.0: Private network subnet mask (10.0.0.0/22)

  • Here is an example of how the cluster’s address can be divided for a 255 node cluster:

    diff --git a/static/docs/main/contents/stateless.html b/static/docs/main/contents/stateless.html index e2f519ee..f0ec8c9a 100644 --- a/static/docs/main/contents/stateless.html +++ b/static/docs/main/contents/stateless.html @@ -129,9 +129,9 @@

    Why is Provisioning Important

    There were several cluster provision and management toolkits already available when Warewulf was created and while these tools absolutely -helped, there was even more optimization to be had. Stateless -computing.

    +helped, there was even more optimization to be had.

    Why Stateless Provisioning

    @@ -163,8 +162,8 @@

    Why Stateless Provisioningwwctl command. This command has sub-commands for each major component of Warewulf’s functionality.

      -
    • configure configures external services that Warewulf depends on

    • +
    • configure configures system services that Warewulf depends on

    • container configures containers (node images)

    • kernel configures override kernels

    • node manages nodes in the cluster

    • diff --git a/static/docs/main/searchindex.js b/static/docs/main/searchindex.js index 049b2da4..23cda5d6 100644 --- a/static/docs/main/searchindex.js +++ b/static/docs/main/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["contents/background", "contents/boot-management", "contents/configuration", "contents/containers", "contents/disks", "contents/dnsmasq", "contents/glossary", "contents/initialization", "contents/installation", "contents/introduction", "contents/ipmi", "contents/kernel", "contents/nodeconfig", "contents/overlays", "contents/profiles", "contents/provisioning", "contents/security", "contents/setup", "contents/stateless", "contents/templating", "contents/wwctl", "contributing/contributing", "contributing/debugging", "contributing/development-environment-kvm", "contributing/development-environment-vagrant", "contributing/development-environment-vbox", "contributing/documentation", "index", "quickstart/debian12", "quickstart/el8", "quickstart/el9", "quickstart/suse15"], "filenames": ["contents/background.rst", "contents/boot-management.rst", "contents/configuration.rst", "contents/containers.rst", "contents/disks.rst", "contents/dnsmasq.rst", "contents/glossary.rst", "contents/initialization.rst", "contents/installation.rst", "contents/introduction.rst", "contents/ipmi.rst", "contents/kernel.rst", "contents/nodeconfig.rst", "contents/overlays.rst", "contents/profiles.rst", "contents/provisioning.rst", "contents/security.rst", "contents/setup.rst", "contents/stateless.rst", "contents/templating.rst", "contents/wwctl.rst", "contributing/contributing.rst", "contributing/debugging.rst", "contributing/development-environment-kvm.rst", "contributing/development-environment-vagrant.rst", "contributing/development-environment-vbox.rst", "contributing/documentation.rst", "index.rst", "quickstart/debian12.rst", "quickstart/el8.rst", "quickstart/el9.rst", "quickstart/suse15.rst"], "titles": ["Background", "Boot Management", "Warewulf Configuration", "Container Management", "Disk Management", "Dnsmasq", "Glossary", "Warewulf Initialization", "Warewulf Installation", "Introduction", "IPMI", "Kernel Management", "Node Configuration", "Warewulf Overlays", "Node Profiles", "Node Provisioning", "Security", "Control Server Setup", "Stateless Provisioning", "Templating", "Controlling Warewulf (wwctl)", "Contributing", "Debugging", "Development Environment (KVM)", "Development Environment (Vagrant)", "Development Environment (VirtualBox)", "Documentation", "User Guide", "Debian 12 Quickstart", "EL8 Quickstart (Rocky Linux and RHEL)", "EL9 Quickstart (Rocky Linux and RHEL)", "openSUSE Leap and SLES 15 Quickstart"], "terms": {"warewulf": [0, 1, 3, 4, 5, 6, 10, 11, 12, 14, 15, 16, 17, 18, 19, 22, 25, 27], "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "base": [0, 3, 7, 17, 18, 20, 21, 23, 25, 26], "design": [0, 9, 13, 14, 16, 18, 28, 29, 30, 31], "origin": [0, 2, 18, 19, 21], "beowulf": 0, "cluster": [0, 2, 6, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20, 23, 24, 25, 28, 29, 30, 31], "thu": [0, 3], "name": [0, 2, 3, 5, 10, 11, 13, 14, 17, 19, 21, 22, 23, 24, 25, 28, 29, 30, 31], "soft": [0, 10, 16], "ware": 0, "implement": [0, 3, 13, 16, 17, 27], "beo": 0, "wulf": 0, "The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 13, 16, 17, 18, 19, 21, 22, 25, 26, 27, 28, 29, 30, 31], "wa": [0, 4, 11, 12, 14, 16, 18, 31], "develop": [0, 8, 16, 21, 22, 27, 29, 30], "1996": 0, "dr": 0, "thoma": 0, "sterl": 0, "donald": 0, "becker": 0, "nasa": 0, "architectur": [0, 3, 9, 17], "defin": [0, 2, 3, 12, 16, 19, 20, 24, 27], "group": [0, 3, 8, 12, 13, 14, 18, 23, 24, 25, 28, 29, 30, 31], "similar": [0, 2, 3], "comput": [0, 2, 3, 6, 9, 11, 13, 15, 16, 17, 18, 21, 25, 27, 28, 29, 30, 31], "worker": [0, 6], "node": [0, 1, 3, 4, 6, 7, 9, 13, 16, 17, 18, 20, 22, 23, 25, 27], "all": [0, 2, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "connect": [0, 2, 10, 16, 17], "togeth": [0, 3, 14, 18, 22], "us": [0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "standard": [0, 3, 6, 9, 13, 25, 31], "commod": 0, "equip": 0, "privat": [0, 2, 9, 17, 25, 28, 29, 30, 31], "network": [0, 1, 2, 8, 13, 14, 15, 18, 19, 24, 25, 27, 28, 29, 30, 31], "segment": 0, "control": [0, 2, 3, 4, 6, 7, 8, 10, 13, 15, 19, 23, 25, 27], "histor": [0, 6, 16], "refer": [0, 12, 15, 20, 28, 29, 30, 31], "master": [0, 3, 6, 21], "head": [0, 6, 14, 27], "dual": [0, 17], "home": [0, 2, 17, 22, 24, 25, 28, 29, 30, 31], "ha": [0, 1, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 16, 17, 20, 21, 24, 31], "two": [0, 3, 13, 14, 17, 25, 31], "interfac": [0, 2, 10, 12, 13, 17, 19, 20, 22, 25, 28, 29, 30, 31], "card": [0, 15, 17], "one": [0, 3, 10, 12, 14, 16, 17, 18, 25, 28, 29, 30, 31], "attach": [0, 25], "upstream": [0, 21], "public": [0, 3, 17, 19], "other": [0, 2, 3, 7, 8, 12, 13, 14, 15, 18, 21, 22], "which": [0, 1, 2, 3, 4, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 28, 29, 30, 31], "seen": [0, 14, 15], "figur": [0, 17], "below": [0, 10, 17, 25, 28, 29, 30, 31], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 28, 29, 30, 31], "simpl": [0, 9, 12, 13, 16], "topologi": 0, "foundat": 0, "creat": [0, 4, 5, 7, 9, 12, 14, 18, 21, 25, 26, 27], "everi": [0, 1, 3, 4, 10, 13, 14, 15, 18, 19], "scalabl": [0, 9, 12, 13, 14, 18], "hpc": [0, 3, 9, 16, 17, 18], "resourc": [0, 6, 9, 17, 21], "even": [0, 3, 9, 16, 17, 18, 22], "todai": [0, 18], "almost": [0, 3, 16, 17, 26], "30": [0, 17], "year": [0, 3, 9], "after": [0, 3, 4, 5, 12, 17, 19, 28, 29, 30, 31], "incept": [0, 3], "baselin": 0, "tradit": [0, 9, 21], "system": [0, 1, 2, 3, 4, 6, 8, 9, 10, 15, 16, 18, 19, 21, 23, 25, 27], "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 28, 29, 30, 31], "built": [0, 2, 3, 13, 20], "consider": [0, 27], "work": [0, 3, 4, 9, 15, 16, 21, 26], "type": [0, 2, 6, 9, 10, 12, 16, 17, 19, 22, 23, 24, 28, 29, 30, 31], "storag": [0, 6, 25, 27], "schedul": [0, 17], "manag": [0, 2, 6, 8, 9, 10, 13, 14, 16, 17, 18, 20, 23, 24, 27, 29, 30, 31], "monitor": [0, 17], "interact": [0, 3], "etc": [0, 2, 3, 4, 5, 6, 7, 11, 13, 14, 16, 17, 19, 23, 24, 25, 28, 29, 30, 31], "For": [0, 2, 3, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 26], "smaller": [0, 14], "much": 0, "requir": [0, 2, 3, 8, 11, 12, 14, 15, 16, 17, 27], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 25, 26, 28, 29, 30, 31], "from": [0, 1, 2, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 27, 28, 29, 30], "singl": [0, 1, 3, 4, 10, 12, 13, 14, 18, 22], "scale": [0, 9, 18, 31], "mai": [0, 2, 3, 4, 7, 8, 15, 16, 17, 18, 21, 28, 29, 30], "need": [0, 1, 2, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 25, 28, 29, 30], "have": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 28, 29, 30, 31], "dedic": [0, 17], "differ": [0, 3, 8, 9, 10, 13, 14, 15, 16, 18, 25, 31], "servic": [0, 2, 4, 5, 8, 13, 17, 19, 20, 21, 23, 24, 25, 27], "easili": [0, 4], "capabl": [0, 9, 11, 16, 24, 25], "build": [0, 2, 5, 8, 11, 25, 27], "turnkei": [0, 9], "giant": 0, "massiv": [0, 9], "complex": 0, "multi": [0, 16], "purpos": [0, 2, 3, 11, 13, 14], "through": [0, 10, 13, 15, 16, 22], "next": [0, 4, 12, 17, 18, 21, 22, 25, 28, 29, 30, 31], "gener": [0, 2, 3, 8, 9, 10, 12, 15, 16, 17, 19, 21, 22, 26, 31], "platform": [0, 3, 4, 8, 9, 18], "anytim": 0, "your": [0, 2, 8, 9, 10, 14, 15, 16, 17, 22, 23, 24, 25, 28, 29, 30, 31], "tool": [0, 8, 9, 15, 18, 24, 27, 29, 30], "default": [1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 22, 24, 25, 27], "As": [1, 3, 4, 5, 9, 12, 13, 14, 17, 21], "tech": 1, "preview": 1, "support": [1, 3, 4, 8, 9, 12, 13, 15, 16, 20, 21, 31], "also": [1, 2, 3, 4, 7, 8, 11, 12, 13, 14, 15, 16, 17, 21, 25, 28, 29, 30, 31], "avail": [1, 3, 4, 8, 13, 18, 22, 24, 25, 31], "add": [1, 4, 12, 13, 14, 17, 18, 21, 22, 23, 24, 25, 27], "bootload": 1, "replac": [1, 21], "technologi": 1, "instead": [1, 4, 5, 14, 16, 18], "starter": 1, "combin": [1, 5, 9, 22, 27], "advantag": [1, 12, 14, 18], "That": [1, 10, 13, 14, 16], "mean": [1, 3, 9, 12, 16, 17, 18, 21], "onli": [1, 2, 3, 4, 9, 11, 13, 14, 15, 16, 17, 18, 19, 25], "sign": 1, "kernel": [1, 2, 3, 6, 13, 14, 15, 16, 17, 20, 22, 23, 25, 27], "distribut": [1, 2, 3, 4, 8, 9, 11, 17, 21, 28, 29, 30, 31], "huge": [1, 21], "benefit": [1, 9], "some": [1, 2, 3, 8, 9, 13, 14, 16, 25, 28, 29, 30, 31], "scenario": 1, "In": [1, 2, 3, 5, 8, 11, 12, 13, 14, 16, 17, 18, 21, 22, 25], "order": [1, 3, 5, 15, 25], "enabl": [1, 2, 4, 5, 7, 9, 16, 19, 23, 24, 25, 27], "method": [1, 8, 12, 14], "conf": [1, 3, 5, 7, 11, 12, 13, 17, 22, 23, 24, 25, 27, 28, 29, 30, 31], "known": [1, 9, 16], "server": [1, 2, 3, 5, 7, 8, 9, 13, 15, 16, 18, 19, 24, 25, 27, 28, 29, 30, 31], "host": [1, 2, 5, 7, 16, 17, 19, 25, 27, 28, 29, 30, 31], "If": [1, 2, 3, 4, 7, 8, 10, 12, 13, 15, 16, 18, 19, 21, 22, 24, 28, 29, 30, 31], "step": [1, 3, 17, 18, 22, 25], "signatur": [1, 3], "check": [1, 3, 4, 7, 12, 15, 17, 21, 24], "process": [1, 2, 3, 4, 8, 10, 11, 13, 16, 17, 18, 23, 25, 27, 31], "fail": [1, 4, 22], "typic": [1, 3, 6, 8, 17], "includ": [1, 5, 10, 11, 12, 13, 14, 15, 17, 21, 22, 23, 25, 27], "kei": [1, 7, 10, 13, 23, 25], "oper": [1, 3, 7, 8, 9, 15, 16, 18, 27, 28, 29, 30, 31], "each": [1, 4, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 22, 24, 28, 29, 30], "separ": [1, 11, 20], "execut": [1, 3, 15, 21, 22, 25], "extract": 1, "binari": [1, 4, 7, 22, 27], "contain": [1, 2, 4, 6, 9, 10, 11, 13, 14, 15, 16, 19, 20, 22, 23, 24, 25, 27], "unknown": [1, 12], "t": [1, 3, 4, 5, 11, 13, 15, 16, 19, 22, 31], "identifi": [1, 4, 17], "dure": [1, 2, 13, 15, 16, 31], "tftp": [1, 2, 5, 7, 8, 15, 17, 23, 24, 25, 28, 29, 30, 31], "phase": 1, "run": [1, 2, 3, 5, 7, 9, 10, 12, 13, 14, 15, 21, 23, 25, 27, 28, 29, 30, 31], "must": [1, 2, 3, 4, 5, 13, 14, 16, 17, 28, 29, 30, 31], "wwctl": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15, 16, 17, 23, 24, 25, 27, 28, 29, 30, 31], "shell": [1, 3, 7, 21, 24], "leap15": [1, 17, 31], "5": [1, 3, 10, 12, 14, 17, 20, 24], "zypper": [1, 4, 5, 8, 31], "grub2": 1, "rocky9": 1, "dnf": [1, 3, 4, 8, 23, 24, 29, 30], "x64": 1, "x86_64": [1, 8, 11, 23, 24, 25], "These": [1, 4, 8, 13, 22], "packag": [1, 3, 8, 22, 23, 24, 25, 31], "discoveri": 1, "modern": [1, 3, 28, 29, 30, 31], "possibl": [1, 3, 4, 5, 10, 11, 13, 16, 17, 18], "directli": [1, 2, 3, 4, 11, 12, 15, 17, 18, 21, 22], "per": [1, 2, 7, 13], "flow": [1, 21], "diagram": 1, "follow": [1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 17, 19, 21, 24, 28, 29, 30, 31], "deliv": [1, 3], "initi": [1, 9, 15, 27], "via": [1, 2, 3, 5, 7, 8, 11, 13, 15, 16, 21, 25, 28, 29, 30], "taken": 1, "": [1, 2, 3, 6, 7, 8, 9, 11, 13, 14, 15, 17, 20, 21, 22, 24, 27, 28, 29, 30, 31], "assign": [1, 10, 12, 25], "instal": [2, 3, 4, 7, 11, 16, 18, 25, 27], "put": [2, 14, 18, 25], "file": [2, 4, 5, 6, 7, 9, 12, 13, 15, 16, 17, 21, 22, 23, 25, 28, 29, 30, 31], "you": [2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31], "find": [2, 4, 8, 15, 19], "primari": [2, 10, 12, 17, 19], "exist": [2, 3, 4, 9, 13, 19], "current": [2, 3, 4, 8, 10, 22, 26], "version": [2, 3, 8, 9, 11, 12, 15, 16, 17, 18, 21, 24, 31], "4": [2, 3, 8, 11, 12, 15, 24, 25, 28, 31], "3": [2, 10, 11, 12, 17, 20], "0": [2, 3, 8, 10, 11, 12, 17, 19, 22, 23, 24, 25, 28, 29, 30, 31], "ww_intern": [2, 24, 28, 29, 30, 31], "43": [2, 24, 28, 29, 30], "ipaddr": [2, 10, 12, 17, 19, 22, 24, 25, 28, 29, 30, 31], "192": [2, 10, 24, 28, 29, 30, 31], "168": [2, 10, 24, 28, 29, 30, 31], "200": [2, 24, 25, 28, 29, 30, 31], "1": [2, 4, 8, 10, 11, 12, 13, 14, 15, 17, 20, 22, 23, 24, 25, 28, 29, 30, 31], "netmask": [2, 10, 12, 17, 22, 24, 25, 28, 29, 30, 31], "255": [2, 10, 12, 17, 24, 25, 28, 29, 30, 31], "port": [2, 10, 17, 22, 24, 25, 28, 29, 30, 31], "9873": [2, 17, 24, 25, 28, 29, 30, 31], "secur": [2, 3, 9, 17, 24, 25, 27, 28, 29, 30, 31], "fals": [2, 10, 19, 24, 28, 29, 30, 31], "updat": [2, 3, 7, 12, 13, 15, 21, 24, 25, 28, 29, 30, 31], "interv": [2, 24, 25, 28, 29, 30, 31], "60": [2, 24, 25, 28, 29, 30, 31], "autobuild": [2, 24, 28, 29, 30, 31], "overlai": [2, 4, 5, 6, 7, 10, 15, 17, 19, 20, 23, 24, 25, 27, 28, 29, 30], "true": [2, 3, 4, 10, 12, 17, 19, 24, 25, 28, 29, 30, 31], "syslog": [2, 24, 28, 29, 30, 31], "dhcp": [2, 5, 7, 8, 13, 15, 17, 19, 24, 25, 27, 28, 29, 30, 31], "rang": [2, 3, 12, 13, 17, 20, 22, 24, 25, 28, 29, 30, 31], "start": [2, 3, 7, 22, 23, 24, 25, 27], "50": [2, 10, 17, 22, 24, 28, 29, 30, 31], "end": [2, 13, 17, 19, 24, 25, 28, 29, 30, 31], "99": [2, 24, 28, 29, 30, 31], "systemd": [2, 3, 4, 5, 7, 13, 24, 25, 28, 29, 30, 31], "dhcpd": [2, 5, 7, 13, 17, 23, 24, 25, 29, 30, 31], "nf": [2, 3, 7, 8, 13, 18, 23, 24, 25, 28, 29, 30, 31], "export": [2, 3, 7, 13, 23, 24, 25, 28, 29, 30, 31], "path": [2, 3, 4, 13, 22, 24, 28, 29, 30, 31], "option": [2, 4, 5, 9, 11, 12, 13, 15, 16, 25, 28, 29, 30, 31], "rw": [2, 24, 28, 29, 30, 31], "sync": [2, 3, 18, 24, 28, 29, 30, 31], "mount": [2, 3, 4, 24, 25, 28, 29, 30, 31], "opt": [2, 24, 28, 29, 30, 31], "ro": [2, 24, 28, 29, 30, 31], "no_root_squash": [2, 24, 28, 29, 30, 31], "leav": 2, "long": [2, 13], "set": [2, 3, 4, 11, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25, 27], "appropri": [2, 6, 7, 8, 16, 19, 28, 29, 30, 31], "inform": [2, 3, 4, 12, 13, 14, 15, 17, 26], "specif": [2, 3, 4, 10, 11, 13, 14, 15, 16, 23, 25, 31], "match": [2, 3, 4, 12, 16], "ip": [2, 10, 12, 13, 14, 17, 19, 24, 25, 28, 29, 30, 31], "address": [2, 3, 9, 10, 12, 13, 14, 15, 19, 25, 27, 28, 29, 30, 31], "subnet": [2, 17], "mask": [2, 17], "abov": [2, 3, 10, 12, 16, 17, 25, 28, 29, 30, 31], "outsid": [2, 16], "failur": 2, "occur": [2, 8, 15, 17], "specifi": [2, 4, 5, 11, 12, 13], "want": [2, 3, 8, 10, 12, 13, 14, 21, 26, 31], "list": [2, 4, 10, 14, 17, 20, 22, 23, 25, 27, 28, 29, 30, 31], "assum": [2, 12, 28, 29, 30, 31], "layout": [2, 17], "background": [2, 15, 27], "md": [2, 21], "portion": [2, 7], "document": [2, 16, 17, 19, 21, 22, 27], "usual": [2, 17], "touch": 2, "thei": [2, 3, 8, 10, 12, 15, 18, 21, 31], "explain": 2, "disabl": [2, 3, 5, 16, 23, 24, 25, 31], "an": [2, 3, 4, 6, 8, 9, 10, 12, 13, 15, 16, 17, 18, 19, 23, 25, 26, 27, 28], "extern": [2, 20], "so": [2, 3, 4, 7, 8, 12, 13, 14, 18, 21, 25, 26, 28, 29, 30, 31], "we": [2, 3, 6, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 26, 28, 29, 30, 31], "ve": [2, 3, 12, 14, 21, 23, 25, 28, 29, 30, 31], "test": [2, 3, 12, 14, 21, 27], "chang": [2, 5, 9, 13, 14, 15, 16, 17, 18, 27, 28, 29, 30, 31], "web": [2, 9, 21], "listen": [2, 23, 28], "It": [2, 3, 4, 10, 11, 13, 14, 16, 17, 21], "recommend": [2, 4, 8, 12, 13, 17], "misalign": 2, "expect": [2, 3, 4, 15], "how": [2, 3, 9, 10, 13, 15, 17, 21, 27], "contact": [2, 15], "when": [2, 3, 8, 10, 13, 15, 16, 18, 21, 31], "limit": [2, 3, 16, 21], "respond": [2, 15], "runtim": [2, 3, 10, 12, 15, 16, 18, 19, 31], "request": [2, 15, 16, 18, 26], "privileg": 2, "prevent": [2, 3], "non": [2, 23], "root": [2, 3, 4, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 22, 23], "user": [2, 3, 7, 9, 13, 16, 18, 21, 22, 24, 25, 31], "sensit": [2, 3], "wwclient": [2, 13, 15, 16], "tcp": 2, "987": 2, "rebuild": [2, 3, 13], "reboot": [2, 3, 18, 28, 29, 30], "them": [2, 3, 7, 8, 11, 12, 13, 14, 15, 16, 21, 28, 29, 30, 31], "frequenc": 2, "second": [2, 12, 14, 17, 25], "client": [2, 3, 15, 25], "fetch": 2, "determin": 2, "whether": [2, 4, 22], "automat": [2, 3, 10, 11, 12, 14, 17, 18, 21, 22, 23, 25, 27], "rebuilt": [2, 3], "e": [2, 3, 8, 11, 12, 17, 18, 19, 20, 23, 25, 28], "g": [2, 3, 8, 11, 12, 17, 18, 19, 20, 23, 25, 28], "underli": [2, 4, 9], "special": 2, "appli": [2, 14, 20], "depend": [2, 4, 7, 9, 15, 17, 20, 23, 25, 27], "log": [2, 3, 4, 16], "go": [2, 8, 14, 15, 16, 18, 21, 22, 23, 25, 31], "written": [2, 7, 10, 13, 16, 19], "var": [2, 7, 24, 25, 28, 29, 30, 31], "warewulfd": [2, 7, 23, 24, 25, 28, 29, 30, 31], "up": [2, 3, 10, 11, 13, 16, 17, 18, 19, 23, 25, 27], "wish": [2, 8, 11, 12, 14, 15, 18, 28, 29, 30, 31], "do": [2, 3, 5, 7, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 24, 28, 29, 30, 31], "databas": [2, 3], "flat": 2, "text": [2, 13, 15, 19, 31], "yaml": [2, 12], "command": [2, 3, 4, 5, 7, 11, 12, 13, 14, 15, 20, 22, 24, 27, 28, 29, 30, 31], "site": [2, 8], "infrastructur": [2, 9, 17], "being": [2, 3, 6, 9, 10, 13, 14, 16, 18, 31], "veri": [2, 9, 12, 14, 15, 26, 31], "light": 2, "weight": [2, 3, 13], "make": [2, 4, 5, 8, 15, 16, 18, 22, 23, 24, 25, 27, 28, 29, 30, 31], "easi": [2, 7, 9], "matter": 2, "what": [2, 11, 15, 16, 21], "paradigm": [2, 18], "detail": [2, 3, 10, 22], "format": [2, 4, 6, 13, 16, 23], "edit": [2, 8, 12, 17, 19, 23, 25, 26, 28, 29, 30, 31], "time": [2, 3, 13, 17, 18, 19, 21], "first": [2, 8, 12, 13, 16, 17, 28, 29, 30, 31], "attempt": [2, 7, 12, 15], "doe": [2, 3, 4, 13, 15, 16, 25], "alreadi": [2, 18], "valu": [2, 10, 12, 14, 15, 17, 19, 22], "none": 2, "exampl": [2, 3, 6, 12, 13, 14, 16, 17, 20, 25, 27], "respect": [2, 20], "defaultnod": 2, "devic": [2, 3, 4, 12, 13, 15, 19, 25, 28, 29, 30, 31], "dummi": [2, 17], "compil": [2, 13, 27, 31], "wwinit": [2, 4, 10, 12, 17, 22], "arg": [2, 17, 22], "quiet": [2, 10, 12, 13, 17], "crashkernel": [2, 10, 12, 17], "vga": [2, 10, 12, 17], "791": [2, 10, 12, 17], "net": [2, 3, 10, 12, 17, 23], "scheme": [2, 10, 12, 17], "v238": [2, 10, 12, 17], "init": [2, 10, 12, 13, 14, 15, 17, 22, 31], "sbin": [2, 10, 12, 15, 17, 22, 31], "initramf": [2, 6, 10, 12, 16, 17, 22], "ipx": [2, 3, 7, 10, 12, 14, 15, 17, 19, 22, 25, 27], "templat": [2, 3, 4, 5, 6, 7, 17, 25, 27, 31], "profil": [2, 4, 7, 11, 12, 13, 16, 17, 20, 22, 23, 24, 25, 27], "eth0": [2, 10, 12, 13, 23, 25, 28, 29, 30, 31], "ethernet": [2, 10, 12, 17, 28, 29, 30, 31], "There": [2, 3, 8, 9, 10, 11, 14, 17, 18, 28, 29, 30, 31], "should": [2, 3, 4, 7, 8, 9, 13, 14, 15, 17, 21, 25], "never": [2, 18], "local": [2, 15, 19, 22, 23], "paramet": [2, 10, 23, 25, 28, 29, 30], "either": [2, 5, 8, 11, 13, 17, 20], "sinc": [3, 9], "over": [3, 8, 9, 10, 12, 15, 17, 18, 19], "20": [3, 9, 12, 17], "ago": 3, "model": [3, 9, 11, 16, 18], "virtual": [3, 6, 9, 25, 27], "vnf": [3, 6, 11, 23, 25, 27], "imag": [3, 4, 6, 9, 11, 13, 15, 18, 20, 23, 24, 27], "golden": [3, 9], "except": [3, 4], "within": [3, 9, 11, 13, 18, 19, 22, 25], "directori": [3, 7, 13, 22, 27], "chroot": [3, 6], "hindsight": 3, "been": [3, 6, 7, 9, 11, 12, 18, 21, 28, 29, 30], "along": 3, "buzzword": 3, "just": [3, 9, 12, 14, 16, 17, 18, 21, 28, 29, 30, 31], "didn": [3, 4], "last": [3, 4, 9, 13, 14, 15], "6": [3, 12, 14, 20], "enterpris": [3, 8, 9], "lot": [3, 10, 14], "around": [3, 9, 18, 20], "v4": [3, 8, 9, 16, 18, 24, 28], "now": [3, 5, 7, 12, 14, 15, 17, 24, 28, 29, 30, 31], "integr": [3, 6, 17, 21], "ecosystem": 3, "facilit": [3, 13, 14, 18], "leverag": [3, 9, 16], "ani": [3, 6, 7, 8, 9, 11, 13, 14, 15, 16, 18, 21, 28, 29, 30], "wai": [3, 9, 10, 11, 13, 14, 16, 17, 18, 21], "still": [3, 11, 12, 16, 18, 28, 29, 30], "own": [3, 9, 11], "alwai": [3, 9, 14, 16, 17, 21, 28, 29, 30, 31], "understand": [3, 21], "while": [3, 9, 12, 13, 16, 18, 28, 29, 30, 31], "absolut": [3, 4, 13, 18], "boot": [3, 4, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 27, 28, 29, 30, 31], "provis": [3, 6, 9, 12, 13, 17, 19, 24, 27, 31], "bare": 3, "metal": [3, 4], "stateless": [3, 9, 13, 27], "memori": [3, 18, 24, 25], "persist": [3, 12, 13, 17, 25], "about": [3, 21, 22, 27], "docker": [3, 6, 12, 23, 24, 25, 28, 29, 30, 31], "probabl": [3, 16, 21, 28], "most": [3, 8, 9, 12, 15, 16, 18], "recogniz": 3, "anoth": [3, 14, 18, 21], "gain": [3, 16], "traction": 3, "rhel": [3, 9, 23, 24, 25, 27], "util": [3, 8, 13, 16, 23, 24, 25, 28, 29, 30], "later": 3, "oci": [3, 6], "compliant": [3, 9], "here": [3, 7, 8, 10, 11, 14, 15, 16, 17, 21, 22, 24, 28, 29, 30, 31], "hub": [3, 6, 28, 29, 30, 31], "ghcr": [3, 23, 24, 25, 28, 29, 30], "io": [3, 6, 17, 23, 24, 25, 28, 29, 30], "rockylinux": [3, 24, 29, 30], "8": [3, 12, 23, 25, 29], "rocki": [3, 9, 11, 12, 15, 27], "get": [3, 9, 13, 15, 16, 17, 19, 21, 22, 28], "sourc": [3, 9, 15, 19, 21, 26, 27, 29, 30, 31], "copi": [3, 8, 13, 18, 21], "blob": [3, 7], "d7f16ed6f451": 3, "done": [3, 11, 12, 13, 16, 21, 28, 29, 30, 31], "config": [3, 4, 12, 19, 24, 29, 30], "da2ca70704": 3, "write": [3, 7, 10, 18, 21, 22], "manifest": 3, "destin": 3, "store": [3, 7, 13], "info": [3, 24, 29, 30], "unpack": 3, "layer": [3, 16], "sha256": 3, "d7f16ed6f45129c7f4adb3773412def4ba2bf9902de42e86e77379a65d90a984": 3, "resolv": [3, 7, 29, 30, 31], "bootabl": [3, 15], "lighter": 3, "reason": [3, 14, 16, 26], "don": [3, 16], "debian": [3, 9, 15, 27], "properli": [3, 7, 28, 29, 30], "stuck": 3, "mode": [3, 13, 16, 19], "http": [3, 8, 15, 17, 21, 23, 24, 25, 28, 29, 30, 31], "com": [3, 8, 21, 22, 23, 24, 25, 28, 29, 30, 31], "u": [3, 4, 16, 22, 31], "would": [3, 6, 10, 15, 17, 18, 21], "password": [3, 22, 25], "protect": 3, "tl": 3, "choic": [3, 9, 17], "handl": 3, "credenti": 3, "environment": 3, "variabl": [3, 13, 22, 31], "login": [3, 23, 25], "pleas": [3, 15], "note": [3, 12, 17, 21, 28, 29, 30, 31], "warewulf_oci_usernam": 3, "warewulf_oci_password": 3, "warewulf_oci_nohttp": 3, "privateus": 3, "super": 3, "secret": 3, "token": [3, 16], "privatereg": 3, "befor": [3, 4, 5, 8, 13, 26, 31], "environ": [3, 9, 18, 27], "share": [3, 24, 26, 28, 29, 30, 31], "show": [3, 10, 11, 19, 31], "bash": [3, 23], "histori": 3, "save": 3, "tar": [3, 8], "archiv": [3, 13], "alpin": [3, 11], "latest": [3, 8, 12, 22, 31], "sandbox": [3, 27], "sudo": [3, 8, 16, 23, 24, 25, 28, 29, 30, 31], "At": [3, 4, 21, 28, 29, 30], "uid": [3, 13], "gid": [3, 13], "mismatch": 3, "print": [3, 19, 22, 28, 29, 30, 31], "out": [3, 9, 12, 15, 17, 18, 21, 26], "warn": [3, 22], "By": [3, 8, 13, 16, 25], "flag": [3, 12, 13, 14, 19], "advis": 3, "try": [3, 4, 15, 22], "syncron": 3, "passwd": [3, 13], "belon": 3, "trigger": 3, "With": [3, 9, 13, 19], "describ": [3, 8, 17, 21], "onc": [3, 7, 8, 11, 12, 13, 15, 16, 20, 21, 22, 28, 29, 30], "configur": [3, 5, 7, 8, 11, 13, 14, 15, 16, 17, 18, 20, 23, 24, 25, 27], "minim": 3, "insid": [3, 16, 25], "exec": [3, 15], "bin": [3, 22, 24, 29, 30], "sh": [3, 7, 13], "cat": [3, 24], "releas": [3, 9, 12, 23, 24, 25, 29, 30], "linux": [3, 9, 11, 15, 17, 18, 23, 27, 28, 31], "green": 3, "obsidian": 3, "exit": 3, "skip": [3, 18], "bind": 3, "tmp": [3, 8, 24], "mnt": 3, "both": [3, 4, 12, 13, 14, 19, 20, 28, 29, 30, 31], "target": [3, 4, 16, 19, 22], "why": [3, 22, 27], "locat": [3, 8, 11, 23, 31], "present": [3, 15, 19], "empti": [3, 13, 19], "prescrib": 3, "lsb": 3, "hierarchi": 3, "complet": [3, 13, 14, 16, 18, 23], "anyth": [3, 14], "static": [3, 13, 17, 19, 25, 28, 29, 30, 31], "object": [3, 27], "were": [3, 9, 18], "addit": [3, 13, 17, 26], "confirm": 3, "section": [3, 12, 14, 15, 26], "reduc": 3, "unnecessari": 3, "pattern": [3, 5, 31], "read": [3, 21, 22], "itself": [3, 4, 11, 16, 17], "usr": [3, 4, 24, 29, 30, 31], "geoip": 3, "filepath": 3, "script": [3, 10, 13, 18, 25], "container_exit": 3, "prior": [3, 22], "re": [3, 4, 5, 7, 15, 21, 22], "final": 3, "deliveri": [3, 17], "remov": [3, 13, 19, 22, 23], "cach": [3, 4, 13], "session": 3, "clean": [3, 24, 29, 30, 31], "repositori": [3, 8, 21, 26], "those": [3, 15, 16, 28, 29, 30, 31], "previou": [3, 14, 16, 18, 21], "did": 3, "rpm": [3, 23, 24, 25, 27], "well": [3, 4, 7, 13, 16, 18, 19], "variant": [3, 23], "bootstrap": [3, 15, 17], "mini": 3, "yum": [3, 8, 23, 25], "someth": [3, 31], "like": [3, 8, 13, 14, 15, 16, 17, 18, 21, 25, 26, 28, 31], "installroot": 3, "newroot": 3, "basesystem": 3, "chkconfig": 3, "coreutil": 3, "e2fsprog": 3, "ethtool": 3, "filesystem": 3, "findutil": 3, "gawk": 3, "grep": [3, 12, 13, 14, 24], "initscript": 3, "iprout": 3, "iputil": 3, "pam": 3, "psmisc": 3, "rsync": 3, "sed": [3, 24], "setup": [3, 7, 10, 13, 16, 22, 27, 28, 29, 30, 31], "shadow": 3, "rsyslog": 3, "tzdata": 3, "word": 3, "zlib": 3, "less": [3, 31], "gzip": [3, 13], "openssh": 3, "dhclient": 3, "pciutil": 3, "vim": 3, "strace": 3, "croni": 3, "crontab": 3, "cpio": [3, 13], "wget": [3, 23], "ipmitool": [3, 23, 25], "networkmanag": [3, 13], "apt": [3, 28], "debootstrap": 3, "stabl": [3, 8], "ftp": 3, "org": [3, 8, 12, 24, 25, 31], "modifi": [3, 12, 13, 14, 17, 23, 25], "new": [3, 13, 14, 16, 22, 25, 27], "containernam": [3, 17, 22], "perform": [3, 9, 16, 17], "intens": 3, "applic": 3, "sever": [3, 4, 13, 17, 18], "recip": 3, "found": [3, 19], "github": [3, 8, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31], "tree": 3, "main": [3, 5, 8, 21, 28], "point": [3, 4, 13, 18, 22, 28, 29, 30], "ad": [3, 4, 13, 14, 17, 19, 27, 28, 29, 30, 31], "post": [3, 16, 21, 28, 29, 30, 31], "epel": [3, 24, 29, 30], "def": [3, 22], "dockerfil": 3, "opensus": [3, 12, 15, 27], "leap": [3, 27], "f": [3, 13, 23], "containerfil": [3, 12], "tag": [3, 8, 16, 17, 21, 22, 28], "ww": [3, 5, 7, 13, 17, 23, 25, 31], "localhost": [3, 24, 25], "o": [3, 13, 18, 22, 23, 25], "quit": 3, "small": [3, 12], "few": [3, 4, 14], "hundr": [3, 9, 14, 18], "megabyt": 3, "grow": [3, 18], "quickli": [3, 7], "larger": [3, 12, 17, 18], "issu": [3, 10, 13, 18, 26, 27], "imped": 3, "than": [3, 14, 17], "gigabyt": 3, "workaround": 3, "circumst": 3, "legaci": [3, 13], "bio": [3, 15], "32": 3, "bit": [3, 13, 16], "cannot": 3, "more": [3, 6, 12, 17, 18, 19, 22, 26], "4gb": [3, 25], "decompress": 3, "compress": [3, 13], "report": 3, "No": [3, 19], "space": [3, 18], "left": [3, 26], "34182006": 3, "best": [3, 8, 9, 12, 14, 16], "switch": [3, 4, 8, 13, 16, 17, 28], "uefi": 3, "64": 3, "significantli": 3, "though": 3, "sometim": [3, 4, 19], "led": 3, "artifici": 3, "due": [3, 15, 16], "integ": 3, "critic": [3, 16, 17, 28, 29, 30, 31], "initrd": 3, "code": [3, 26, 27], "imgextract": 3, "allow": [3, 8, 13, 22, 25], "rather": [3, 14, 16, 18], "firmwar": [3, 11, 15, 16], "retain": 3, "hole": 3, "featur": [3, 5, 14, 16, 18, 21, 22, 26, 27], "reserv": 3, "1mb": 3, "block": [3, 4, 13, 19], "15mb": 3, "16mb": 3, "interfer": 3, "Not": 3, "enough": 3, "error": [3, 7, 12, 22, 28, 29, 30], "container_nam": 3, "duplicated_container_nam": 3, "kind": 3, "look": [3, 14, 18, 25], "canari": 3, "partit": 4, "provid": [4, 8, 9, 12, 14, 15, 16, 17, 20, 21, 24, 26], "structur": [4, 31], "moment": [4, 21], "swap": [4, 18], "scratch": [4, 18, 27], "creation": 4, "sgdisk": 4, "gdisk": 4, "gptfdisk": 4, "inspir": 4, "butan": 4, "where": [4, 8, 10, 19, 21], "hold": 4, "map": [4, 22, 25], "A": [4, 13, 17, 19, 22], "its": [4, 5, 8, 9, 12, 13, 15, 18], "bool": 4, "indic": 4, "tabl": [4, 10, 25], "overwritten": [4, 14], "desir": 4, "label": 4, "number": [4, 9, 13, 18, 28, 29, 30, 31], "omit": [4, 17, 28, 29, 30, 31], "without": [4, 13, 14, 18], "size": [4, 27], "mib": 4, "given": [4, 12, 13, 19, 21, 22], "maximum": 4, "should_exist": 4, "wipe_partition_entri": 4, "prefer": [4, 19, 22], "dev": [4, 24, 28], "partlabel": 4, "valid": [4, 10, 27], "btrf": 4, "ext3": 4, "ext4": 4, "xf": 4, "wipe_filesystem": 4, "wipe": 4, "reli": [4, 16, 28, 29, 30, 31], "dbu": 4, "notif": 4, "necessari": [4, 12, 13, 15, 21], "json": [4, 24], "function": [4, 15, 20, 21, 22, 26, 31], "createignitionjson": 4, "ww4": [4, 5, 17], "call": [4, 6, 13, 14, 15, 19, 21, 22, 23, 31], "take": [4, 14, 16], "unit": [4, 18], "entri": [4, 12, 13, 19, 22, 31], "fstab": [4, 7, 23, 25], "no_auto": 4, "n01": 4, "disknam": 4, "vda": [4, 24], "diskwip": 4, "partnam": 4, "partcreat": 4, "fsname": 4, "fsformat": 4, "fspath": 4, "fswipe": 4, "1gig": 4, "partsiz": 4, "1024": 4, "partnumb": 4, "investig": 4, "log_level": 4, "debug": [4, 13, 18, 27], "rd": 4, "kernelarg": [4, 10, 12, 14], "abl": [4, 9, 12, 16, 18, 25], "verbos": 4, "journalctl": 4, "could": [4, 6, 18], "content": [4, 13, 19, 28, 29, 30, 31], "tinker": 4, "lib": [4, 24, 25, 28, 29, 30, 31], "dracut": 4, "modul": [4, 11, 15, 16], "d": [4, 5, 7, 10, 13, 17, 24, 29, 30], "30ignit": 4, "stage": [4, 15, 28, 29, 30], "stdout": 4, "iter": [4, 9, 19], "until": [4, 12, 15, 24], "sure": [4, 5, 12, 13, 14, 25], "unmount": 4, "partial": 4, "success": 4, "experiment": 5, "isc": [5, 17, 28], "act": 5, "keep": 5, "dir": 5, "systemctl": [5, 7, 23, 24, 25, 28, 29, 30, 31], "stop": [5, 7, 16, 23, 25, 31], "instruct": [5, 22, 28, 29, 30, 31], "doesn": [5, 11], "h": [5, 13], "singular": [6, 23], "maintain": [6, 9, 18, 21], "disk": [6, 9, 15, 18, 23, 25, 27], "bundl": [6, 18], "registeri": 6, "respons": [6, 15], "administr": [6, 9, 18, 21], "feel": [6, 26], "term": 6, "descript": [6, 14, 24], "role": [6, 12], "gpu": [6, 11], "prefix": [6, 24, 29, 30, 31], "readi": [7, 15, 23, 24, 25], "associ": [7, 11, 12, 17], "To": [7, 12, 21, 23, 27, 28], "thing": [7, 13, 14, 15, 16, 18], "restart": [7, 28, 29, 30], "under": [7, 9, 12, 25, 27], "hostfil": 7, "ssh": [7, 13, 16, 20, 23, 25], "passwordless": 7, "addion": 7, "ssh_setup": [7, 13], "csh": [7, 13], "pxe": [7, 15, 16, 17, 23, 24, 25], "watch": [7, 23, 25, 28, 29, 30, 31], "output": [7, 12, 13, 21, 23, 25], "carefulli": 7, "manual": 7, "regist": [7, 15, 28, 29, 30], "line": [7, 11, 17, 19, 20, 22, 23, 25], "program": [7, 13], "statu": [7, 10, 21, 23, 25, 27], "result": [7, 13, 15, 17, 19], "unexpect": 7, "multipl": [8, 10, 11, 12, 16, 20, 27, 28, 29, 30, 31], "page": 8, "project": [8, 15, 21, 31], "part": [8, 13, 14, 28, 29, 30], "ci": [8, 9], "cd": [8, 21, 23, 24, 25, 28, 29, 30, 31], "obtain": [8, 13, 21], "download": [8, 13, 15, 16, 23, 25], "git_afcdb21": 8, "el8": [8, 27], "suse": [8, 9], "lp153": 8, "golang": [8, 23, 24, 25, 28, 29, 30], "recent": [8, 12], "dl": [8, 24], "entir": [8, 18], "groupinstal": [8, 24, 29, 30], "form": 8, "select": [8, 13, 25], "direct": [8, 15, 21], "substitut": [8, 22], "2": [8, 10, 11, 12, 17, 20, 22, 25], "gz": [8, 15], "past": [8, 18], "mkdir": [8, 13, 24, 28], "src": 8, "xvf": 8, "collabor": 8, "revis": 8, "branch": [8, 24], "entitl": 8, "activ": [8, 16], "greatest": 8, "But": [8, 14, 16, 18], "forewarn": 8, "snapshot": 8, "guarante": 8, "product": [8, 17], "clone": [8, 21, 23, 24, 25, 28, 29, 30, 31], "checkout": [8, 24, 28], "vendor": [8, 9, 15, 16, 21], "compat": 8, "had": [9, 16, 18], "tenet": 9, "remain": 9, "same": [9, 10, 13, 18], "howev": [9, 12, 16], "state": [9, 10], "flexibl": [9, 18, 31], "overview": [9, 27], "produc": 9, "deploy": 9, "simplic": 9, "2001": 9, "becom": [9, 21, 24], "popular": 9, "open": [9, 15, 21, 22, 26, 27], "agnost": 9, "global": [9, 23], "commun": [9, 15, 16, 17, 27], "central": 9, "thousand": [9, 13, 18], "ident": [9, 13, 26], "pipelin": 9, "dockerhub": 9, "gitlab": 9, "high": [9, 16, 17, 25], "cloud": [9, 24], "hyperscal": 9, "princip": 9, "larg": [9, 14, 17], "mani": [9, 13, 14, 17, 18, 20, 21], "task": 9, "case": [9, 11, 16, 17, 18], "everyth": [9, 10, 13, 23], "render": [9, 13], "farm": 9, "kubernet": 9, "bring": [9, 13, 25], "experi": [9, 18, 25], "lightweight": [9, 12], "hobbyist": 9, "research": 9, "scientist": 9, "engin": [9, 13, 19], "becaus": [9, 16, 17, 18, 28, 29, 30, 31], "highli": [9, 12], "lab": 9, "graphic": [9, 23], "workstat": 9, "desk": 9, "supercomput": 9, "center": 9, "hardwar": [9, 16, 18, 27], "arm": 9, "x86": 9, "ato": 9, "dell": 9, "cento": [9, 25, 27], "selinux": [9, 13, 15, 23, 24, 25, 27, 28, 29, 30], "box": [9, 27], "rest": [9, 15, 17], "continu": [9, 13, 18, 21, 22], "bmc": 10, "discuss": [10, 13, 21], "common": [10, 16, 17, 31], "level": [10, 17], "field": [10, 12, 13, 14, 17], "individu": [10, 13, 18, 19, 28, 29, 30, 31], "ipmiwrit": [10, 12], "happen": [10, 19], "overrid": [10, 12, 20, 22, 27], "outlin": 10, "ipmiaddr": [10, 12], "ipminetmask": [10, 12, 14], "ipmiport": [10, 12, 14], "623": 10, "ipmigatewai": [10, 12, 14], "ipmius": [10, 12], "ipmipass": [10, 12], "ipmiinterfac": [10, 12, 14], "lan": 10, "lanplu": 10, "ipmiescapechar": 10, "charact": 10, "down": [10, 22, 25], "id": [10, 12, 14, 17, 19, 22], "comment": [10, 12, 14, 17, 22], "sle": [10, 12, 27], "micro": [10, 12], "discover": [10, 12, 22, 23, 24, 25, 28, 29, 30, 31], "asset": [10, 12, 16], "onboot": [10, 12, 17, 25], "netdev": [10, 12, 17, 19, 22, 23, 24, 25, 28, 29, 30, 31], "hwaddr": [10, 12, 19], "ipaddr6": [10, 12, 19], "gatewai": [10, 12, 19, 22, 24, 25, 28, 29, 30, 31], "mtu": [10, 12], "n001": [10, 12], "kerneloverrid": [10, 11, 12], "tw": [10, 12], "11": [10, 12], "22": [10, 12, 25], "33": [10, 12], "44": [10, 12], "55": [10, 12, 22], "66": [10, 12], "10": [10, 12, 17, 19, 21, 25], "252": [10, 12, 17], "connecton": 10, "usernam": [10, 21, 22], "hwadmin": 10, "n002": [10, 12], "12": [10, 11, 12, 27], "n003": [10, 12], "13": [10, 12], "n004": [10, 12], "14": [10, 12], "cycl": [10, 19], "turn": [10, 20, 27, 28, 29, 30], "off": [10, 20, 25, 27], "reset": [10, 15], "shutdown": [10, 23], "gracefulli": 10, "serial": 10, "sol": 10, "easiest": 11, "particular": [11, 12, 14, 18], "see": [11, 12, 14, 15, 21, 24, 26, 28, 29, 30, 31], "18": 11, "348": 11, "el8_5": 11, "rocky_upd": 11, "23": 11, "notic": 11, "contian": 11, "introduc": 11, "previous": 11, "made": [11, 16, 21], "hard": [11, 16, 18, 25], "custom": [11, 13, 14, 16], "driver": 11, "OFED": 11, "unam": [11, 23, 25], "r": [11, 13, 23, 25], "305": 11, "el8_4": 11, "mention": 12, "prone": 12, "backend": 12, "datastor": 12, "000": 12, "yield": 12, "latenc": [12, 17], "felt": 12, "toler": 12, "172": 12, "16": [12, 15], "increment": 12, "n00": 12, "n": [12, 13, 14], "n0000": [12, 14, 23, 25, 28, 29, 30, 31], "complic": 12, "compris": 12, "descriptor": 12, "domain": 12, "cluster01": [12, 14], "equival": 12, "glob": 12, "string": [12, 16, 19, 22], "valuabl": [12, 18], "full": [12, 18, 24, 27, 28, 29, 30, 31], "parenthesi": 12, "overridden": 12, "grant": 12, "usabl": 12, "minimum": 12, "reachabl": 12, "help": [12, 14, 15, 16, 18, 20, 21, 22, 28, 29, 30, 31], "y": [12, 13, 14, 19, 23, 24, 25, 31], "And": [12, 13, 14, 16, 26], "beyond": [12, 17], "illustr": 12, "import": [12, 17, 21, 23, 24, 25, 27, 28, 29, 30, 31], "tumblewe": 12, "registri": [12, 31], "scienc": [12, 31], "dc": 12, "pick": 12, "bond": 12, "link": [12, 15, 19, 21], "aggreagt": 12, "netnam": [12, 17, 25, 31], "bond0_member_1": 12, "eth2": 12, "slave": 12, "bond0_member_2": 12, "eth3": 12, "bond0": 12, "9000": 12, "member": [12, 21], "interterfac": 12, "_": [12, 22], "ib0": 12, "aa": 12, "bb": 12, "cc": 12, "dd": 12, "ee": 12, "ff": 12, "iband": 12, "infiniband": [12, 17], "discov": 12, "against": 12, "sort": 12, "lexic": 12, "clear": 12, "unset": 12, "undef": [12, 14, 22], "li": 13, "problem": [13, 18], "solv": [13, 18], "hostnam": [13, 19, 24], "Or": 13, "peopl": 13, "choos": [13, 15, 25], "heavi": 13, "solut": [13, 17], "period": [13, 31], "nesscesari": 13, "besid": 13, "wick": 13, "el": 13, "udev": 13, "rule": [13, 25, 31], "loop": [13, 31], "warwulf": 13, "ipmi": [13, 17, 22, 27], "regular": [13, 22], "basi": 13, "minut": [13, 15], "addition": [13, 16], "authorized_kei": 13, "dynam": [13, 17, 19], "slurm": 13, "unlik": 13, "backup": [13, 19], "wwbackup": [13, 19], "suffix": [13, 19, 31], "subsequ": 13, "won": [13, 15, 19], "overwrit": [13, 14], "scrip": 13, "manipul": 13, "receiv": 13, "welcom": [13, 27], "systemoverlai": [13, 14, 17, 22], "insert": 13, "condit": 13, "manner": 13, "tell": [13, 16], "pars": 13, "attribut": [13, 14, 16, 22, 27], "drop": [13, 25], "ownership": 13, "permiss": 13, "nodepattern": 13, "argument": [13, 14, 31], "interpret": 13, "restrict": 13, "filenam": [13, 15, 19], "subcommand": [13, 20], "forc": 13, "parent": 13, "m": [13, 21, 23, 25], "p": [13, 23, 24, 25], "header": 13, "noupdat": 13, "place": [13, 21], "l": [13, 23, 25, 31], "shown": 13, "displai": [13, 22], "q": 13, "nodenam": [13, 15], "mandatori": 13, "suppress": 13, "redund": 14, "inherit": 14, "handi": 14, "hw": [14, 15, 28, 29, 30, 31], "mac": [14, 15], "view": [14, 28, 29, 30, 31], "summari": [14, 27], "runtimeoverlai": [14, 17, 22], "ipmiipaddr": 14, "ipmiusernam": 14, "demonstr": [14, 17], "let": [14, 21], "test_profil": 14, "lastli": 14, "our": [14, 16, 18, 21, 26], "addprofil": 14, "verifi": [14, 19, 25], "delet": 14, "supersed": [14, 28, 29, 30, 31], "deal": 14, "subset": 14, "preced": 14, "noth": [14, 16], "inher": 14, "fix": [14, 21, 22, 31], "sub": [14, 20], "might": [14, 17, 18, 22, 25, 28, 29, 30], "cluster_nam": 14, "preconfigur": 15, "ask": 15, "rack": 15, "credit": 15, "certifi": 15, "stack": 15, "ensur": [15, 16, 23, 25, 28, 29, 30, 31], "rom": 15, "finish": 15, "bootp": 15, "reach": 15, "els": [15, 22], "unifi": 15, "daemon": [15, 23, 25], "sleep": 15, "exactli": [15, 18, 21], "whole": 15, "sent": 15, "lastseen": 15, "c001": 15, "runtime_overlai": 15, "img": [15, 23], "system_overlai": 15, "thank": 15, "between": [15, 17], "counter": 15, "exterior": 16, "gushi": 16, "interior": 16, "free": 16, "roam": 16, "tend": [16, 26], "posix": 16, "practic": [16, 28], "kill": 16, "vpn": 16, "bastion": 16, "factor": [16, 18], "authent": 16, "mfa": 16, "malici": 16, "access": [16, 25], "onion": 16, "accur": 16, "predomin": 16, "ground": 16, "further": [16, 21], "certain": 16, "parallel": [16, 18, 20], "librari": 16, "lower": 16, "threshold": 16, "strive": 16, "blocker": 16, "enforc": [16, 24, 28, 29, 30], "firewal": [16, 17, 19, 23, 25, 28, 29, 30], "fulli": 16, "whatev": 16, "hand": [16, 31], "ramf": 16, "extend": [16, 17], "tmpf": 16, "sysconfig": [16, 23, 25, 31], "insecur": 16, "land": 16, "spoof": 16, "raw": 16, "materi": 16, "inspect": [16, 24], "transfer": [16, 17], "trust": [16, 17], "enact": 16, "vlan": [16, 25], "consult": 16, "physic": 16, "simpli": 16, "assetkei": [16, 22], "shim": 16, "grub": [16, 27], "distributor": 16, "compli": 16, "load": [16, 22, 24], "postur": 16, "perhap": 16, "increas": 16, "provision": 16, "organiz": 16, "polici": 16, "job": [16, 18], "predetermin": 17, "asid": 17, "pai": 17, "attent": 17, "temporari": 17, "band": 17, "conflict": 17, "perspect": 17, "impli": 17, "least": 17, "revers": 17, "nat": [17, 25], "scope": [17, 22], "speed": 17, "low": 17, "data": [17, 19], "inter": 17, "three": 17, "protocol": 17, "accomplish": [17, 18], "intern": [17, 22], "100": [17, 28, 29, 30, 31], "organ": 17, "alloc": 17, "divid": 17, "router": 17, "achiv": 17, "dnsmasq": [17, 27], "accordingli": 17, "trivial": 17, "deliverynet": 17, "250": 17, "deliver1": 17, "nettagadd": 17, "dynstart": 17, "dynend": 17, "deliver2": 17, "definit": [17, 18], "primarynetdev": [17, 22], "allnod": [17, 19], "eq": [17, 19], "max": 17, "leas": 17, "120": 17, "6h": 17, "carri": 17, "pool": 18, "necess": 18, "back": [18, 21], "2000": 18, "becam": 18, "appar": 18, "Of": 18, "cours": [18, 22], "overcom": 18, "pretti": 18, "earli": 18, "homogen": 18, "creep": 18, "harder": 18, "onto": 18, "drive": [18, 25], "autom": [18, 22], "bulk": 18, "iso": [18, 23, 25], "usb": 18, "thumb": 18, "obvious": [18, 21], "toolkit": 18, "optim": 18, "ever": 18, "realiz": 18, "think": 18, "liveo": 18, "liveiso": 18, "inclus": 18, "softwar": [18, 26], "drift": 18, "fall": 18, "neighbor": 18, "abil": 18, "hybrid": 18, "core": 18, "piec": 18, "overlaid": 18, "obsolet": 18, "easier": 18, "far": 18, "simplest": 18, "convert": 19, "auto": 19, "popul": 19, "demand": 19, "tmpl": 19, "come": [19, 25, 28, 29, 30, 31], "soon": 19, "break": [19, 22], "front": 19, "element": 19, "arrai": [19, 31], "devnam": 19, "inc": 19, "dec": 19, "acc": 19, "foo": 19, "index": 19, "baar": 19, "ifcfg": [19, 25], "networknam": 19, "xml": [19, 23], "buildhost": 19, "buildtim": 19, "buildsourc": 19, "autogener": 19, "ipv4": 19, "arp": 19, "ipcidr": 19, "rout": 19, "nexthop": 19, "ipv6": 19, "privaci": 19, "accept": 19, "redirect": 19, "snippet": 19, "modif": 19, "emit": 19, "getb": 19, "isn": 19, "intend": [19, 21], "behavior": 19, "substr": 19, "x": [19, 23], "b": [19, 21], "c": [19, 23, 25, 31], "payload": 19, "primarili": 20, "major": 20, "compon": 20, "power": [20, 27], "basic": [20, 23, 25, 27, 29, 30, 31], "syntax": 20, "express": 20, "comma": 20, "numer": 20, "expand": 20, "node1": 20, "node2": 20, "node3": 20, "node5": 20, "node6": 20, "challeng": 21, "grate": 21, "offer": 21, "endeavor": 21, "greatli": 21, "appreci": 21, "onlin": [21, 25], "great": 21, "talk": 21, "workspac": 21, "bug": [21, 22], "pr": 21, "offici": 21, "conduct": 21, "account": [21, 25], "git": [21, 23, 24, 25, 26, 28, 29, 30, 31], "isol": 21, "On": [21, 23, 25, 28, 29, 30, 31], "nut": 21, "happi": 21, "commit": 21, "changed1": 21, "changed2": 21, "messag": [21, 28], "good": [21, 26, 28], "getconfig": 21, "csv": 21, "doc": [21, 24, 26, 29, 30], "close": 21, "referenc": 21, "merg": 21, "futur": 21, "hopefulli": 21, "revert": 21, "gui": 21, "regardless": 21, "convers": 21, "thread": 21, "suggest": [21, 26], "exact": 21, "date": [21, 31], "changesinto": 21, "event": 21, "remot": 21, "debugg": 22, "potent": 22, "guid": 22, "makefil": 22, "codebas": 22, "troubl": 22, "track": 22, "cmd": [22, 28, 29, 30], "dlv": 22, "test_getallnodeinfodefault": 22, "pkg": 22, "v": [22, 24], "breakpoint": 22, "0x26c0d0": 22, "nodeyaml_test": 22, "51": 22, "paus": 22, "hit": 22, "goroutin": 22, "35": 22, "total": 22, "pc": 22, "46": 22, "assert": 22, "nodeyaml": 22, "test_nod": 22, "47": 22, "equal": 22, "48": 22, "49": 22, "func": 22, "52": 22, "writeerr": 22, "writetestconfigfil": 22, "53": 22, "54": 22, "nil": 22, "56": 22, "defer": 22, "mark": 22, "proce": 22, "potenti": 22, "move": 22, "contextu": 22, "nodeinfo": 22, "417": 22, "0x267f18": 22, "newnodeinfo": 22, "19": 22, "412": 22, "defaultnodeconf": 22, "413": 22, "setdeffrom": 22, "414": 22, "415": 22, "416": 22, "normal": [22, 31], "nodeconf": 22, "418": 22, "419": 22, "420": 22, "len": 22, "421": 22, "setslic": 22, "422": 22, "0x267f24": 22, "423": 22, "424": 22, "425": 22, "0x267f3c": 22, "426": 22, "setfrom": 22, "0x267fec": 22, "427": 22, "428": 22, "429": 22, "430": 22, "defaultnetdevconf": 22, "431": 22, "0x268000": 22, "432": 22, "433": 22, "434": 22, "435": 22, "cap": 22, "altvalu": 22, "clusternam": 22, "kernelentri": 22, "0x4000158370": 22, "0x40001583c8": 22, "ipmientri": 22, "0x40001b6600": 22, "0x40001b6658": 22, "0x40001b66b0": 22, "0x40001b6708": 22, "0x40001b6760": 22, "0x40001b67b8": 22, "0x40001b6810": 22, "0x40001b6868": 22, "netdeventri": 22, "my": [23, 25], "desktop": [23, 25], "mirror": 23, "mobap": 23, "edu": 23, "2003": 23, "qemu": 23, "prealloc": 23, "metadata": [23, 24], "qcow2": 23, "32g": 23, "vm": [23, 24, 25], "virt": [23, 24], "centos7": [23, 25], "ram": 23, "8192": [23, 24], "vnc": 23, "noautoconsol": 23, "rhel7": [23, 25], "languag": [23, 25], "vi": [23, 25], "firewalld": [23, 24, 25, 27, 31], "virsh": 23, "destroi": 23, "fedora": 23, "prerequisit": [23, 25], "gpgme": [23, 24, 25, 29, 30], "devel": [23, 24, 25, 29, 30, 31], "libassuan": [23, 24, 25, 28, 29, 30], "repo": [23, 24, 25], "ctrliq": [23, 25], "ctrl": [23, 25], "singularityplu": [23, 25], "endpoint": [23, 25], "ser": 23, "approprit": [23, 25], "pull": [23, 25, 26, 27], "setdefault": [23, 25, 31], "k": [23, 25], "ww_server_subnet_mask": 23, "ww_server_ip": 23, "n0000_ip": 23, "review": [23, 25, 27], "hello_world": [23, 25, 31], "machin": [24, 25, 27], "testb": 24, "intel": 24, "vt": 24, "amd": 24, "lscpu": 24, "lsmod": 24, "ccp": 24, "118784": 24, "kvm_amd": 24, "1105920": 24, "irqbypass": 24, "16384": 24, "libguestf": 24, "virtio": 24, "win": 24, "guestf": 24, "icon": 24, "reg": 24, "top": 24, "libvirtd": 24, "usermod": 24, "ag": 24, "9090": 24, "socket": 24, "hashicorp": 24, "crb": [24, 30], "plugin": 24, "eof": 24, "20230513": 24, "url": 24, "pub": 24, "number_of_nod": 24, "env": 24, "box_vers": 24, "private_network": 24, "254": 24, "libvirt__network_nam": 24, "libvirt__dhcp_en": 24, "synced_fold": 24, "nfs_version": 24, "nfs_udp": 24, "cpu_mod": 24, "passthrough": 24, "machine_virtual_s": 24, "40": 24, "inlin": 24, "growpart": 24, "xfs_growf": 24, "vda5": 24, "bindir": [24, 29, 30], "sysconfdir": [24, 29, 30, 31], "datadir": [24, 29, 30], "localstatedir": [24, 29, 30, 31], "sharedstatedir": [24, 29, 30], "mandir": [24, 29, 30], "man": [24, 29, 30], "infodir": [24, 29, 30], "docdir": [24, 29, 30], "srvdir": [24, 29, 30], "tftpdir": [24, 29, 30, 31], "tftpboot": [24, 25, 28, 29, 30], "systemddir": [24, 29, 30], "bashcompdir": [24, 29, 30], "bash_complet": [24, 29, 30], "firewallddir": [24, 29, 30], "wwclientdir": [24, 29, 30], "tee": 24, "execstart": 24, "ye": [24, 25, 28, 29, 30], "eth1": 24, "n0001": 24, "101": 24, "n0002": 24, "102": 24, "n000": 24, "autostart": 24, "boot_network": 24, "wait": 24, "warewlf": 25, "turnoff": 25, "24": 25, "vboxmanag": 25, "natnetwork": 25, "wwnatnetwork": 25, "7": [25, 27], "wwdev": [25, 27], "adapt": 25, "suffici": 25, "sl7": 25, "optic": 25, "15": [25, 27], "forward": 25, "127": 25, "2222": 25, "guest": 25, "prompt": 25, "upgrad": 25, "v2": 25, "enp0s9": 25, "bootproto": 25, "150": 25, "tftproot": [25, 31], "instanc": 25, "bzimag": 25, "floppi": 25, "consol": [25, 27], "dilemma": 26, "focu": 26, "love": 26, "nobodi": 26, "contribut": 26, "rais": [26, 27], "improv": 26, "send": 26, "docusauru": 26, "procedur": 26, "introduct": 27, "vision": 27, "hostlist": 27, "syncus": 27, "duplic": 27, "db": 27, "un": 27, "cascad": [27, 28, 29, 30, 31], "effect": [27, 28], "ignit": 27, "troubleshoot": 27, "usag": [27, 28, 29, 30, 31], "el9": 27, "join": 27, "vet": 27, "suit": 27, "delv": 27, "vagrant": 27, "9": [27, 30], "vagrantfil": 27, "spin": 27, "kvm": 27, "master1": 27, "virtualbox": 27, "glossari": 27, "tftpd": 28, "hpa": 28, "concern": 28, "intarfac": 28, "dpkg": 28, "reconfigur": 28, "enter": 28, "enp2s0": 28, "essenti": 28, "curl": 28, "unzip": 28, "libnf": 28, "libgpgm": 28, "zone": [28, 29, 30], "reload": [28, 29, 30], "perman": [28, 29, 30], "fresh": [28, 29, 30], "context": [28, 29, 30], "restorecon": [28, 29, 30], "rv": [28, 29, 30], "affect": [28, 29, 30], "accord": [28, 29, 30, 31], "uniqu": [28, 29, 30, 31], "dot": [28, 29, 30, 31], "notat": [28, 29, 30, 31], "powertool": 29, "dest": [29, 30, 31], "readonli": [29, 30, 31], "devel_basi": 31, "srv": 31, "wrong": 31, "mv": 31, "warewulf4": 31, "openbuild": 31, "paramat": 31, "45": 31, "dhcp_interfac": 31, "prepopul": 31, "abid": 31, "extrem": 31, "acceler": 31}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"background": 0, "boot": 1, "manag": [1, 3, 4, 11], "ipx": 1, "grub": 1, "secur": [1, 16], "instal": [1, 5, 8, 17, 22, 23, 24, 28, 29, 30, 31], "shim": 1, "efi": 1, "http": 1, "warewulf": [2, 7, 8, 9, 13, 20, 21, 23, 24, 28, 29, 30, 31], "configur": [2, 4, 12, 28, 29, 30, 31], "conf": 2, "node": [2, 10, 11, 12, 14, 15, 19, 24, 28, 29, 30, 31], "default": [2, 23, 28, 29, 30, 31], "directori": 2, "contain": [3, 12, 28, 29, 30, 31], "tool": 3, "import": [3, 11, 13, 18], "privat": 3, "registri": 3, "local": 3, "file": [3, 19], "syncus": 3, "list": [3, 11, 12, 13], "all": [3, 11], "make": [3, 21], "chang": [3, 21], "To": [3, 14], "exclud": 3, "from": [3, 31], "prepar": 3, "build": [3, 13, 23, 28, 29, 30, 31], "creat": [3, 13, 19, 23, 24], "scratch": 3, "A": 3, "your": [3, 21], "host": [3, 13, 24], "us": [3, 13, 14, 22], "apptain": 3, "podman": 3, "size": 3, "consider": 3, "duplic": 3, "disk": 4, "requir": [4, 24], "rocki": [4, 8, 24, 29, 30], "linux": [4, 8, 24, 29, 30], "opensus": [4, 8, 31], "leap": [4, 8, 31], "storag": 4, "object": 4, "ignit": 4, "implement": 4, "exampl": [4, 19, 22], "troubleshoot": 4, "dnsmasq": 5, "usag": 5, "glossari": 6, "initi": 7, "system": [7, 13, 17, 24, 28, 29, 30, 31], "servic": [7, 28, 29, 30, 31], "log": 7, "binari": 8, "rpm": 8, "8": 8, "compil": 8, "sourc": 8, "code": [8, 21, 22], "releas": 8, "tarbal": 8, "git": 8, "runtim": [8, 13], "depend": [8, 28, 29, 30, 31], "introduct": [9, 14], "The": [9, 12, 15], "vision": 9, "about": 9, "featur": 9, "ipmi": 10, "set": [10, 12, 28, 29, 30, 31], "review": 10, "profil": [10, 14, 28, 29, 30, 31], "view": 10, "onli": 10, "power": 10, "command": [10, 19], "consol": 10, "kernel": [11, 12, 24, 28, 29, 30, 31], "overrid": [11, 14], "db": 12, "ad": 12, "new": [12, 21], "sever": 12, "name": 12, "attribut": 12, "": 12, "imag": 12, "network": [12, 17, 23], "addit": 12, "discoveri": 12, "un": 12, "overlai": [13, 31], "defin": 13, "wwinit": 13, "gener": 13, "combin": 13, "templat": [13, 19], "chmod": 13, "chown": 13, "delet": 13, "edit": 13, "show": 13, "an": [14, 21], "multipl": [14, 17, 19], "cascad": 14, "how": 14, "effect": 14, "provis": [15, 16, 18], "hardwar": 15, "setup": [15, 17, 24], "process": 15, "statu": 15, "selinux": 16, "summari": 16, "control": [17, 20, 28, 29, 30, 31], "server": [17, 23], "oper": 17, "address": 17, "stateless": 18, "why": 18, "i": 18, "overview": 18, "comment": 19, "rang": 19, "increment": 19, "variabl": 19, "In": 19, "loop": 19, "decrement": 19, "access": 19, "tag": 19, "special": 19, "includ": [19, 28, 29, 30], "includefrom": 19, "includeblock": 19, "abort": 19, "nobackup": 19, "split": 19, "specif": [19, 22], "wwctl": 20, "hostlist": 20, "contribut": [21, 27], "join": 21, "commun": 21, "slack": 21, "rais": 21, "issu": 21, "step": 21, "1": 21, "fork": 21, "repo": 21, "2": [21, 24], "checkout": 21, "branch": 21, "3": 21, "4": 21, "push": 21, "5": 21, "submit": 21, "pull": [21, 28, 29, 30, 31], "request": 21, "6": 21, "keep": 21, "sync": 21, "debug": 22, "valid": 22, "vet": 22, "run": 22, "full": 22, "test": 22, "suit": 22, "delv": 22, "against": 22, "session": 22, "develop": [23, 24, 25], "environ": [23, 24, 25], "kvm": [23, 24], "cento": 23, "7": 23, "virtual": [23, 24], "machin": 23, "under": 23, "turn": 23, "off": 23, "dhcp": 23, "master1": 23, "wwdev": 23, "vagrant": 24, "cpu": 24, "h": 24, "w": 24, "support": 24, "modul": 24, "9": 24, "qemu": 24, "libvirt": 24, "cockpit": 24, "option": 24, "plug": 24, "reload": 24, "box": 24, "vagrantfil": 24, "sandbox": 24, "spin": 24, "up": [24, 28, 29, 30, 31], "head": 24, "comput": 24, "virtualbox": 25, "document": 26, "user": 27, "guid": 27, "content": 27, "quickstart": [27, 28, 29, 30, 31], "debian": 28, "12": 28, "basic": 28, "firewalld": [28, 29, 30], "start": [28, 29, 30, 31], "enabl": [28, 29, 30, 31], "automat": [28, 29, 30, 31], "vnf": [28, 29, 30, 31], "add": [28, 29, 30, 31], "el8": 29, "rhel": [29, 30], "el9": 30, "sle": 31, "15": 31, "open": 31}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"Background": [[0, "background"]], "Boot Management": [[1, "boot-management"]], "Booting with iPXE": [[1, "booting-with-ipxe"]], "Booting with GRUB": [[1, "booting-with-grub"]], "Secure boot": [[1, "secure-boot"]], "Install shim and efi": [[1, "install-shim-and-efi"]], "http boot": [[1, "http-boot"]], "Warewulf Configuration": [[2, "warewulf-configuration"]], "warewulf.conf": [[2, "warewulf-conf"]], "nodes.conf": [[2, "nodes-conf"]], "defaults.conf": [[2, "defaults-conf"]], "Directories": [[2, "directories"]], "Container Management": [[3, "container-management"]], "Container Tools": [[3, "container-tools"]], "Importing Containers": [[3, "importing-containers"]], "Private Registry": [[3, "private-registry"]], "Local Files": [[3, "local-files"]], "Syncuser": [[3, "syncuser"]], "Listing All Imported Containers": [[3, "listing-all-imported-containers"]], "Making Changes To Containers": [[3, "making-changes-to-containers"]], "Excluding Files from a Container": [[3, "excluding-files-from-a-container"]], "Preparing a container for build": [[3, "preparing-a-container-for-build"]], "Creating Containers From Scratch": [[3, "creating-containers-from-scratch"]], "Building A Container From Your Host": [[3, "building-a-container-from-your-host"]], "Building A Container Using Apptainer": [[3, "building-a-container-using-apptainer"]], "Building A Container Using Podman": [[3, "building-a-container-using-podman"]], "Container Size Considerations": [[3, "container-size-considerations"]], "Duplicating a container": [[3, "duplicating-a-container"]], "Disk Management": [[4, "disk-management"]], "Requirements": [[4, "requirements"]], "Rocky Linux": [[4, "rocky-linux"]], "openSuse Leap": [[4, "opensuse-leap"], [8, "opensuse-leap"]], "Storage objects": [[4, "storage-objects"]], "Ignition Implementation": [[4, "ignition-implementation"]], "Example disk configuration": [[4, "example-disk-configuration"]], "Troubleshooting": [[4, "troubleshooting"]], "Dnsmasq": [[5, "dnsmasq"]], "Usage": [[5, "usage"]], "Installation": [[5, "installation"]], "Glossary": [[6, "glossary"]], "Warewulf Initialization": [[7, "warewulf-initialization"]], "System Services": [[7, "system-services"]], "Warewulf Service": [[7, "warewulf-service"]], "Logs": [[7, "logs"]], "Warewulf Installation": [[8, "warewulf-installation"]], "Binary RPMs": [[8, "binary-rpms"]], "Rocky Linux 8": [[8, "rocky-linux-8"]], "Compiled Source code": [[8, "compiled-source-code"]], "Release Tarball": [[8, "release-tarball"]], "Git": [[8, "git"]], "Runtime Dependencies": [[8, "runtime-dependencies"]], "Introduction": [[9, "introduction"]], "The Warewulf Vision": [[9, "the-warewulf-vision"]], "About Warewulf": [[9, "about-warewulf"]], "Features": [[9, "features"]], "IPMI": [[10, "ipmi"]], "IPMI Settings": [[10, "ipmi-settings"]], "Reviewing Settings": [[10, "reviewing-settings"]], "Profile View": [[10, "profile-view"]], "Node View": [[10, "node-view"]], "Review Only IPMI Settings": [[10, "review-only-ipmi-settings"]], "Power Commands": [[10, "power-commands"]], "Console": [[10, "console"]], "Kernel Management": [[11, "kernel-management"]], "Node Kernels": [[11, "node-kernels"]], "Kernel Overrides": [[11, "kernel-overrides"]], "Listing All Imported Kernels": [[11, "listing-all-imported-kernels"]], "Node Configuration": [[12, "node-configuration"]], "The Node Configuration DB": [[12, "the-node-configuration-db"]], "Adding a New Node": [[12, "adding-a-new-node"]], "Adding several nodes": [[12, "adding-several-nodes"]], "Node Names": [[12, "node-names"]], "Listing Nodes": [[12, "listing-nodes"]], "Setting Node Attributes": [[12, "setting-node-attributes"]], "Configuring the Node\u2019s Container Image": [[12, "configuring-the-node-s-container-image"]], "Configuring the Node\u2019s Kernel": [[12, "configuring-the-node-s-kernel"]], "Configuring the Node\u2019s Network": [[12, "configuring-the-node-s-network"]], "Additional networks": [[12, "additional-networks"]], "Node Discovery": [[12, "node-discovery"]], "Un-setting Node Attributes": [[12, "un-setting-node-attributes"]], "Warewulf Overlays": [[13, "warewulf-overlays"], [31, "warewulf-overlays"]], "Defined Overlays": [[13, "defined-overlays"]], "System or wwinit overlay": [[13, "system-or-wwinit-overlay"]], "Runtime Overlay or generic Overlay": [[13, "runtime-overlay-or-generic-overlay"]], "Host Overlay": [[13, "host-overlay"]], "Combining Overlays": [[13, "combining-overlays"]], "Templates": [[13, "templates"]], "Using Overlays": [[13, "using-overlays"]], "Build": [[13, "build"]], "Chmod": [[13, "chmod"]], "Chown": [[13, "chown"]], "Create": [[13, "create"]], "Delete": [[13, "delete"]], "Edit": [[13, "edit"]], "Import": [[13, "import"]], "List": [[13, "list"]], "Show": [[13, "show"]], "Node Profiles": [[14, "node-profiles"]], "An Introduction To Profiles": [[14, "an-introduction-to-profiles"]], "Multiple Profiles": [[14, "multiple-profiles"]], "Cascading Profiles": [[14, "cascading-profiles"]], "Overriding Profiles": [[14, "overriding-profiles"]], "How To Use Profiles Effectively": [[14, "how-to-use-profiles-effectively"]], "Node Provisioning": [[15, "node-provisioning"]], "Node Hardware Setup": [[15, "node-hardware-setup"]], "The Provisioning Process": [[15, "the-provisioning-process"]], "Node status": [[15, "node-status"]], "Security": [[16, "security"]], "SELinux": [[16, "selinux"]], "Provisioning Security": [[16, "provisioning-security"]], "Summary": [[16, "summary"]], "Control Server Setup": [[17, "control-server-setup"]], "Operating System Installation": [[17, "operating-system-installation"]], "Network": [[17, "network"]], "Addressing": [[17, "addressing"]], "Multiple networks": [[17, "multiple-networks"]], "Stateless Provisioning": [[18, "stateless-provisioning"]], "Why is Provisioning Important": [[18, "why-is-provisioning-important"]], "Provisioning Overview": [[18, "provisioning-overview"]], "Why Stateless Provisioning": [[18, "why-stateless-provisioning"]], "Templating": [[19, "templating"]], "Examples": [[19, "examples"]], "Comment": [[19, "comment"]], "Range": [[19, "range"]], "Increment Variable In Loop": [[19, "increment-variable-in-loop"]], "Decrement": [[19, "decrement"]], "Access Tag": [[19, "access-tag"]], "Create Multiple Files": [[19, "create-multiple-files"]], "Special Commands": [[19, "special-commands"]], "Include": [[19, "include"]], "IncludeFrom": [[19, "includefrom"]], "IncludeBlock": [[19, "includeblock"]], "Abort": [[19, "abort"]], "Nobackup": [[19, "nobackup"]], "Split": [[19, "split"]], "Node specific files": [[19, "node-specific-files"]], "Controlling Warewulf (wwctl)": [[20, "controlling-warewulf-wwctl"]], "Hostlists": [[20, "hostlists"]], "Contributing": [[21, "contributing"], [27, null]], "Join the community": [[21, "join-the-community"]], "Warewulf on Slack": [[21, "warewulf-on-slack"]], "Raise an Issue": [[21, "raise-an-issue"]], "Contribute to the code": [[21, "contribute-to-the-code"]], "Step 1. Fork the repo": [[21, "step-1-fork-the-repo"]], "Step 2. Checkout a new branch": [[21, "step-2-checkout-a-new-branch"]], "Step 3. Make your changes": [[21, "step-3-make-your-changes"]], "Step 4. Push your branch to your fork": [[21, "step-4-push-your-branch-to-your-fork"]], "Step 5. Submit a Pull Request": [[21, "step-5-submit-a-pull-request"]], "Step 6. Keep your branch in sync": [[21, "step-6-keep-your-branch-in-sync"]], "Debugging": [[22, "debugging"]], "Validating the code with vet": [[22, "validating-the-code-with-vet"]], "Running the full test suite": [[22, "running-the-full-test-suite"]], "Using delve": [[22, "using-delve"]], "Installing delve": [[22, "installing-delve"]], "Running delve against a specific test": [[22, "running-delve-against-a-specific-test"]], "Example debugging session": [[22, "example-debugging-session"]], "Development Environment (KVM)": [[23, "development-environment-kvm"]], "Create CentOS 7 development virtual machine under KVM": [[23, "create-centos-7-development-virtual-machine-under-kvm"]], "Turn off default network dhcp on server master1": [[23, "turn-off-default-network-dhcp-on-server-master1"]], "Build and install Warewulf on wwdev": [[23, "build-and-install-warewulf-on-wwdev"]], "Development Environment (Vagrant)": [[24, "development-environment-vagrant"]], "Host system requirements": [[24, "host-system-requirements"]], "CPU H/W Virtualization support": [[24, "cpu-h-w-virtualization-support"]], "KVM kernel module": [[24, "kvm-kernel-module"]], "Setup development environment on Rocky Linux 9": [[24, "setup-development-environment-on-rocky-linux-9"]], "Install QEMU, libvirt": [[24, "install-qemu-libvirt"]], "Install Cockpit (Optional)": [[24, "install-cockpit-optional"]], "Install Vagrant, vagrant-libvirt plug-in and vagrant-reload plug-in": [[24, "install-vagrant-vagrant-libvirt-plug-in-and-vagrant-reload-plug-in"]], "Vagrant box and Vagrantfile for Warewulf sandbox": [[24, "vagrant-box-and-vagrantfile-for-warewulf-sandbox"]], "Create Rocky Linux 9.2 vagrant box": [[24, "create-rocky-linux-9-2-vagrant-box"]], "Vagrantfile": [[24, "vagrantfile"]], "Spin up head node": [[24, "spin-up-head-node"]], "Spin up compute nodes": [[24, "spin-up-compute-nodes"]], "Development Environment (VirtualBox)": [[25, "development-environment-virtualbox"]], "Documentation": [[26, "documentation"]], "User Guide": [[27, "user-guide"]], "Contents": [[27, null]], "Quickstart": [[27, null]], "Debian 12 Quickstart": [[28, "debian-12-quickstart"]], "Install the basic services": [[28, "install-the-basic-services"]], "Install Warewulf and dependencies": [[28, "install-warewulf-and-dependencies"], [29, "install-warewulf-and-dependencies"], [30, "install-warewulf-and-dependencies"], [31, "install-warewulf-and-dependencies"]], "Configure firewalld": [[28, "configure-firewalld"], [29, "configure-firewalld"], [30, "configure-firewalld"]], "Configure the controller": [[28, "configure-the-controller"], [29, "configure-the-controller"], [30, "configure-the-controller"], [31, "configure-the-controller"]], "Start and enable the Warewulf service": [[28, "start-and-enable-the-warewulf-service"], [29, "start-and-enable-the-warewulf-service"], [30, "start-and-enable-the-warewulf-service"], [31, "start-and-enable-the-warewulf-service"]], "Configure system services automatically": [[28, "configure-system-services-automatically"], [29, "configure-system-services-automatically"], [30, "configure-system-services-automatically"], [31, "configure-system-services-automatically"]], "Pull and build the VNFS container (including the kernel)": [[28, "pull-and-build-the-vnfs-container-including-the-kernel"], [29, "pull-and-build-the-vnfs-container-including-the-kernel"], [30, "pull-and-build-the-vnfs-container-including-the-kernel"]], "Set up the default node profile": [[28, "set-up-the-default-node-profile"], [29, "set-up-the-default-node-profile"], [30, "set-up-the-default-node-profile"], [31, "set-up-the-default-node-profile"]], "Add a node": [[28, "add-a-node"], [29, "add-a-node"], [30, "add-a-node"], [31, "add-a-node"]], "EL8 Quickstart (Rocky Linux and RHEL)": [[29, "el8-quickstart-rocky-linux-and-rhel"]], "EL9 Quickstart (Rocky Linux and RHEL)": [[30, "el9-quickstart-rocky-linux-and-rhel"]], "openSUSE Leap and SLES 15 Quickstart": [[31, "opensuse-leap-and-sles-15-quickstart"]], "Install Warewulf from the open build service": [[31, "install-warewulf-from-the-open-build-service"]], "Pull and build the VNFS container and kernel": [[31, "pull-and-build-the-vnfs-container-and-kernel"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["contents/background", "contents/boot-management", "contents/configuration", "contents/containers", "contents/disks", "contents/dnsmasq", "contents/glossary", "contents/initialization", "contents/installation", "contents/introduction", "contents/ipmi", "contents/kernel", "contents/nodeconfig", "contents/overlays", "contents/profiles", "contents/provisioning", "contents/security", "contents/setup", "contents/stateless", "contents/templating", "contents/wwctl", "contributing/contributing", "contributing/debugging", "contributing/development-environment-kvm", "contributing/development-environment-vagrant", "contributing/development-environment-vbox", "contributing/documentation", "index", "quickstart/debian12", "quickstart/el8", "quickstart/el9", "quickstart/suse15"], "filenames": ["contents/background.rst", "contents/boot-management.rst", "contents/configuration.rst", "contents/containers.rst", "contents/disks.rst", "contents/dnsmasq.rst", "contents/glossary.rst", "contents/initialization.rst", "contents/installation.rst", "contents/introduction.rst", "contents/ipmi.rst", "contents/kernel.rst", "contents/nodeconfig.rst", "contents/overlays.rst", "contents/profiles.rst", "contents/provisioning.rst", "contents/security.rst", "contents/setup.rst", "contents/stateless.rst", "contents/templating.rst", "contents/wwctl.rst", "contributing/contributing.rst", "contributing/debugging.rst", "contributing/development-environment-kvm.rst", "contributing/development-environment-vagrant.rst", "contributing/development-environment-vbox.rst", "contributing/documentation.rst", "index.rst", "quickstart/debian12.rst", "quickstart/el8.rst", "quickstart/el9.rst", "quickstart/suse15.rst"], "titles": ["Background", "Boot Management", "Warewulf Configuration", "Container Management", "Disk Management", "Dnsmasq", "Glossary", "Warewulf Initialization", "Warewulf Installation", "Introduction", "IPMI", "Kernel Management", "Node Configuration", "Warewulf Overlays", "Node Profiles", "Node Provisioning", "Security", "Control Server Setup", "Stateless Provisioning", "Templating", "Controlling Warewulf (wwctl)", "Contributing", "Debugging", "Development Environment (KVM)", "Development Environment (Vagrant)", "Development Environment (VirtualBox)", "Documentation", "User Guide", "Debian 12 Quickstart", "EL8 Quickstart (Rocky Linux and RHEL)", "EL9 Quickstart (Rocky Linux and RHEL)", "openSUSE Leap and SLES 15 Quickstart"], "terms": {"warewulf": [0, 1, 3, 4, 5, 6, 10, 11, 12, 14, 15, 16, 17, 18, 19, 22, 25, 27], "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "base": [0, 3, 7, 17, 18, 20, 21, 23, 25, 26], "design": [0, 9, 13, 14, 16, 18, 28, 29, 30, 31], "origin": [0, 2, 18, 19, 21], "beowulf": 0, "cluster": [0, 2, 3, 6, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20, 23, 24, 25, 28, 29, 30, 31], "thu": [0, 3], "name": [0, 2, 3, 5, 10, 11, 13, 14, 17, 19, 21, 22, 23, 24, 25, 28, 29, 30, 31], "soft": [0, 10, 16], "ware": 0, "implement": [0, 3, 13, 16, 17, 27], "beo": 0, "wulf": 0, "The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 13, 16, 17, 18, 19, 21, 22, 25, 26, 27, 28, 29, 30, 31], "wa": [0, 4, 11, 12, 14, 16, 18, 31], "develop": [0, 8, 16, 21, 22, 27, 29, 30], "1996": 0, "dr": 0, "thoma": 0, "sterl": 0, "donald": 0, "becker": 0, "nasa": 0, "architectur": [0, 3, 9, 17], "defin": [0, 2, 3, 12, 16, 19, 20, 24, 27], "group": [0, 3, 8, 12, 13, 14, 18, 23, 24, 25, 28, 29, 30, 31], "similar": [0, 2, 3], "comput": [0, 2, 3, 6, 9, 11, 13, 15, 16, 17, 18, 21, 25, 27, 28, 29, 30, 31], "worker": [0, 6], "node": [0, 1, 3, 4, 6, 7, 9, 13, 16, 17, 18, 20, 22, 23, 25, 27], "all": [0, 2, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "connect": [0, 2, 10, 16, 17], "togeth": [0, 3, 14, 18, 22], "us": [0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "standard": [0, 3, 6, 9, 13, 25, 31], "commod": 0, "equip": 0, "privat": [0, 2, 9, 17, 25, 28, 29, 30, 31], "network": [0, 1, 2, 8, 13, 14, 15, 18, 19, 24, 25, 27, 28, 29, 30, 31], "segment": 0, "control": [0, 2, 3, 4, 6, 7, 8, 10, 13, 15, 19, 23, 25, 27], "histor": [0, 6, 16], "refer": [0, 12, 15, 20, 28, 29, 30, 31], "master": [0, 3, 6, 21], "head": [0, 6, 14, 27], "dual": [0, 17], "home": [0, 2, 17, 22, 24, 25, 28, 29, 30, 31], "ha": [0, 1, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 16, 17, 20, 21, 24, 31], "two": [0, 3, 13, 14, 17, 25, 31], "interfac": [0, 2, 10, 12, 13, 17, 19, 20, 22, 25, 28, 29, 30, 31], "card": [0, 15, 17], "one": [0, 3, 10, 12, 14, 16, 17, 18, 25, 28, 29, 30, 31], "attach": [0, 25], "upstream": [0, 21], "public": [0, 3, 17, 19], "other": [0, 2, 3, 7, 8, 12, 13, 14, 15, 18, 21, 22], "which": [0, 1, 2, 3, 4, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 28, 29, 30, 31], "seen": [0, 14, 15], "figur": [0, 17], "below": [0, 10, 17, 25, 28, 29, 30, 31], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 28, 29, 30, 31], "simpl": [0, 9, 12, 13, 16], "topologi": 0, "foundat": 0, "creat": [0, 4, 5, 7, 9, 12, 14, 18, 21, 25, 26, 27], "everi": [0, 1, 3, 4, 10, 13, 14, 15, 18, 19], "scalabl": [0, 9, 12, 13, 14, 18], "hpc": [0, 3, 9, 16, 17, 18], "resourc": [0, 6, 9, 17, 21], "even": [0, 3, 9, 16, 17, 18, 22], "todai": [0, 18], "almost": [0, 3, 16, 17, 26], "30": [0, 17], "year": [0, 3, 9], "after": [0, 3, 4, 5, 12, 17, 19, 28, 29, 30, 31], "incept": [0, 3], "baselin": 0, "tradit": [0, 9, 21], "system": [0, 1, 2, 3, 4, 6, 8, 9, 10, 15, 16, 18, 19, 20, 21, 23, 25, 27], "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 28, 29, 30, 31], "built": [0, 2, 3, 13, 20], "consider": [0, 27], "work": [0, 3, 4, 9, 15, 16, 21, 26], "type": [0, 2, 6, 9, 10, 12, 16, 17, 19, 22, 23, 24, 28, 29, 30, 31], "storag": [0, 6, 25, 27], "schedul": [0, 17], "manag": [0, 2, 6, 8, 9, 10, 13, 14, 16, 17, 18, 20, 23, 24, 27, 29, 30, 31], "monitor": [0, 17], "interact": [0, 3], "etc": [0, 2, 3, 4, 5, 6, 7, 11, 13, 14, 16, 17, 19, 23, 24, 25, 28, 29, 30, 31], "For": [0, 2, 3, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 26], "smaller": [0, 14], "much": 0, "requir": [0, 2, 3, 8, 11, 12, 14, 15, 16, 17, 27], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 25, 26, 28, 29, 30, 31], "from": [0, 1, 2, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 27, 28, 29, 30], "singl": [0, 1, 3, 4, 10, 12, 13, 14, 18, 22], "scale": [0, 9, 18, 31], "mai": [0, 2, 3, 4, 7, 8, 15, 16, 17, 18, 21, 28, 29, 30], "need": [0, 1, 2, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 25, 28, 29, 30], "have": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 28, 29, 30, 31], "dedic": [0, 17], "differ": [0, 3, 8, 9, 10, 13, 14, 15, 16, 18, 25, 31], "servic": [0, 2, 4, 5, 8, 13, 17, 19, 20, 21, 23, 24, 25, 27], "easili": [0, 4], "capabl": [0, 9, 11, 16, 24, 25], "build": [0, 2, 5, 8, 11, 25, 27], "turnkei": [0, 9], "giant": 0, "massiv": [0, 9], "complex": 0, "multi": [0, 16], "purpos": [0, 2, 3, 11, 13, 14], "through": [0, 10, 13, 15, 16, 22], "next": [0, 4, 12, 17, 18, 21, 22, 25, 28, 29, 30, 31], "gener": [0, 2, 3, 8, 9, 10, 12, 15, 16, 17, 19, 21, 22, 26, 31], "platform": [0, 3, 4, 8, 9, 18], "anytim": 0, "your": [0, 2, 8, 9, 10, 14, 15, 16, 17, 22, 23, 24, 25, 28, 29, 30, 31], "tool": [0, 8, 9, 15, 18, 24, 27, 29, 30], "default": [1, 3, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 22, 24, 25, 27], "As": [1, 3, 4, 5, 9, 12, 13, 14, 17, 21], "tech": 1, "preview": 1, "support": [1, 3, 4, 8, 9, 12, 13, 15, 16, 20, 21, 31], "also": [1, 2, 3, 4, 7, 8, 11, 12, 13, 14, 15, 16, 17, 21, 25, 28, 29, 30, 31], "avail": [1, 3, 4, 8, 13, 18, 22, 24, 25, 31], "add": [1, 4, 12, 13, 14, 17, 18, 21, 22, 23, 24, 25, 27], "bootload": 1, "replac": [1, 21], "technologi": 1, "instead": [1, 4, 5, 14, 16, 18], "starter": 1, "combin": [1, 5, 9, 22, 27], "advantag": [1, 12, 14, 18], "That": [1, 10, 13, 14, 16], "mean": [1, 3, 9, 12, 16, 17, 18, 21], "onli": [1, 2, 3, 4, 9, 11, 13, 14, 15, 16, 17, 18, 19, 25], "sign": 1, "kernel": [1, 2, 3, 6, 13, 14, 15, 16, 17, 20, 22, 23, 25, 27], "distribut": [1, 2, 3, 4, 8, 9, 11, 17, 21, 28, 29, 30, 31], "huge": [1, 21], "benefit": [1, 9], "some": [1, 2, 3, 8, 9, 13, 14, 16, 25, 28, 29, 30, 31], "scenario": 1, "In": [1, 2, 3, 5, 8, 11, 12, 13, 14, 16, 17, 18, 21, 22, 25], "order": [1, 3, 5, 15, 25], "enabl": [1, 2, 4, 5, 7, 9, 16, 19, 23, 24, 25, 27], "method": [1, 8, 12, 14], "conf": [1, 3, 5, 7, 12, 13, 17, 22, 23, 24, 25, 27, 28, 29, 30, 31], "known": [1, 9, 16], "server": [1, 2, 3, 5, 7, 8, 9, 13, 15, 16, 18, 19, 24, 25, 27, 28, 29, 30, 31], "host": [1, 2, 5, 7, 16, 17, 19, 25, 27, 28, 29, 30, 31], "If": [1, 2, 3, 4, 7, 8, 10, 12, 13, 15, 16, 18, 19, 21, 22, 24, 28, 29, 30, 31], "step": [1, 3, 17, 18, 22, 25], "signatur": [1, 3], "check": [1, 3, 4, 7, 12, 15, 17, 21, 24], "process": [1, 2, 3, 4, 8, 10, 11, 13, 16, 17, 18, 23, 25, 27, 31], "fail": [1, 4, 22], "typic": [1, 2, 3, 6, 8, 17], "includ": [1, 5, 10, 11, 12, 13, 14, 15, 17, 21, 22, 23, 25, 27], "kei": [1, 7, 10, 13, 23, 25], "oper": [1, 2, 3, 7, 8, 9, 15, 16, 18, 27, 28, 29, 30, 31], "each": [1, 4, 10, 12, 13, 14, 15, 17, 18, 19, 20, 22, 24, 28, 29, 30], "separ": [1, 11, 20], "execut": [1, 3, 15, 21, 22, 25], "extract": 1, "binari": [1, 4, 7, 22, 27], "contain": [1, 2, 4, 6, 9, 10, 11, 13, 14, 15, 16, 19, 20, 22, 23, 24, 25, 27], "unknown": [1, 12], "t": [1, 3, 4, 5, 11, 13, 15, 16, 19, 22, 31], "identifi": [1, 4, 17], "dure": [1, 2, 13, 15, 16, 31], "tftp": [1, 2, 5, 7, 8, 15, 17, 23, 24, 25, 28, 29, 30, 31], "phase": 1, "run": [1, 2, 3, 5, 7, 9, 10, 12, 13, 14, 15, 21, 23, 25, 27, 28, 29, 30, 31], "must": [1, 2, 3, 4, 5, 13, 14, 16, 17, 28, 29, 30, 31], "wwctl": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15, 16, 17, 23, 24, 25, 27, 28, 29, 30, 31], "shell": [1, 2, 3, 7, 21, 24], "leap15": [1, 17, 31], "5": [1, 3, 10, 12, 14, 17, 20, 24], "zypper": [1, 4, 5, 8, 31], "grub2": 1, "rocky9": 1, "dnf": [1, 3, 4, 8, 23, 24, 29, 30], "x64": 1, "x86_64": [1, 8, 11, 23, 24, 25], "These": [1, 2, 4, 8, 13, 22], "packag": [1, 3, 8, 22, 23, 24, 25, 31], "discoveri": 1, "modern": [1, 3, 28, 29, 30, 31], "possibl": [1, 3, 4, 5, 10, 11, 13, 16, 17, 18], "directli": [1, 2, 3, 4, 12, 15, 17, 18, 21, 22], "per": [1, 2, 7, 13], "flow": [1, 21], "diagram": 1, "follow": [1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13, 14, 15, 17, 19, 21, 24, 28, 29, 30, 31], "deliv": [1, 3], "initi": [1, 9, 15, 27], "via": [1, 2, 3, 5, 7, 8, 13, 15, 16, 21, 25, 28, 29, 30], "taken": 1, "": [1, 2, 3, 6, 7, 8, 9, 11, 13, 14, 15, 17, 20, 21, 22, 24, 27, 28, 29, 30, 31], "assign": [1, 10, 12, 25], "instal": [2, 3, 4, 7, 11, 16, 18, 25, 27], "put": [2, 14, 18, 25], "file": [2, 4, 5, 6, 7, 9, 12, 13, 15, 16, 17, 21, 22, 23, 25, 28, 29, 30, 31], "you": [2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31], "find": [2, 4, 8, 15, 19], "primari": [2, 10, 12, 17, 19], "exist": [2, 3, 4, 9, 13, 19], "current": [2, 3, 4, 8, 10, 22, 26], "version": [2, 3, 8, 9, 11, 12, 15, 16, 17, 18, 21, 24, 31], "4": [2, 3, 8, 11, 12, 15, 24, 25, 28, 31], "0": [2, 3, 8, 10, 11, 12, 17, 19, 22, 23, 24, 25, 28, 29, 30, 31], "ww_intern": [2, 24, 28, 29, 30, 31], "43": [2, 24, 28, 29, 30], "ipaddr": [2, 10, 12, 17, 19, 22, 24, 25, 28, 29, 30, 31], "10": [2, 10, 12, 17, 19, 21, 25], "1": [2, 4, 8, 10, 11, 12, 13, 14, 15, 17, 20, 22, 23, 24, 25, 28, 29, 30, 31], "netmask": [2, 10, 12, 17, 22, 24, 25, 28, 29, 30, 31], "255": [2, 10, 12, 17, 24, 25, 28, 29, 30, 31], "252": [2, 10, 12, 17], "port": [2, 10, 17, 22, 24, 25, 28, 29, 30, 31], "9873": [2, 17, 24, 25, 28, 29, 30, 31], "secur": [2, 3, 9, 17, 24, 25, 27, 28, 29, 30, 31], "fals": [2, 10, 19, 24, 28, 29, 30, 31], "updat": [2, 3, 7, 12, 13, 15, 21, 24, 25, 28, 29, 30, 31], "interv": [2, 24, 25, 28, 29, 30, 31], "60": [2, 24, 25, 28, 29, 30, 31], "autobuild": [2, 24, 28, 29, 30, 31], "overlai": [2, 4, 5, 6, 7, 10, 15, 17, 19, 20, 23, 24, 25, 27, 28, 29, 30], "true": [2, 3, 4, 10, 12, 17, 19, 24, 25, 28, 29, 30, 31], "syslog": [2, 24, 28, 29, 30, 31], "dhcp": [2, 5, 7, 8, 13, 15, 17, 19, 24, 25, 27, 28, 29, 30, 31], "rang": [2, 3, 12, 13, 17, 20, 22, 24, 25, 28, 29, 30, 31], "start": [2, 3, 7, 22, 23, 24, 25, 27], "end": [2, 13, 17, 19, 24, 25, 28, 29, 30, 31], "systemd": [2, 3, 4, 5, 7, 13, 24, 25, 28, 29, 30, 31], "dhcpd": [2, 5, 7, 13, 17, 23, 24, 25, 29, 30, 31], "nf": [2, 3, 7, 8, 13, 18, 23, 24, 25, 28, 29, 30, 31], "export": [2, 3, 7, 13, 23, 24, 25, 28, 29, 30, 31], "path": [2, 3, 4, 13, 22, 24, 28, 29, 30, 31], "option": [2, 4, 5, 9, 11, 12, 13, 15, 16, 25, 28, 29, 30, 31], "rw": [2, 24, 28, 29, 30, 31], "sync": [2, 3, 18, 24, 28, 29, 30, 31], "mount": [2, 3, 4, 24, 25, 28, 29, 30, 31], "opt": [2, 24, 28, 29, 30, 31], "ro": [2, 24, 28, 29, 30, 31], "no_root_squash": [2, 24, 28, 29, 30, 31], "sourc": [2, 3, 9, 15, 19, 21, 26, 27, 29, 30, 31], "resolv": [2, 3, 7, 29, 30, 31], "dest": [2, 29, 30, 31], "readonli": [2, 29, 30, 31], "leav": 2, "long": [2, 13], "set": [2, 3, 4, 11, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25, 27], "appropri": [2, 6, 7, 8, 16, 19, 28, 29, 30, 31], "inform": [2, 3, 4, 12, 13, 14, 15, 17, 26], "specif": [2, 3, 4, 10, 11, 13, 14, 15, 16, 23, 25, 31], "match": [2, 3, 4, 12, 16], "ip": [2, 10, 12, 13, 14, 17, 19, 24, 25, 28, 29, 30, 31], "address": [2, 3, 9, 10, 12, 13, 14, 15, 19, 25, 27, 28, 29, 30, 31], "subnet": [2, 17], "mask": [2, 17], "abov": [2, 3, 10, 12, 16, 17, 25, 28, 29, 30, 31], "outsid": [2, 16], "failur": 2, "occur": [2, 8, 15, 17], "specifi": [2, 4, 5, 11, 12, 13], "want": [2, 3, 8, 10, 12, 13, 14, 21, 26, 31], "usual": [2, 17], "touch": 2, "thei": [2, 3, 10, 12, 15, 18, 21, 31], "explain": 2, "disabl": [2, 3, 5, 16, 23, 24, 25, 31], "so": [2, 3, 4, 7, 8, 12, 13, 14, 18, 21, 25, 26, 28, 29, 30, 31], "we": [2, 3, 6, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 26, 28, 29, 30, 31], "ve": [2, 3, 12, 14, 21, 23, 25, 28, 29, 30, 31], "test": [2, 3, 12, 14, 21, 27], "chang": [2, 5, 9, 13, 14, 15, 16, 17, 18, 27, 28, 29, 30, 31], "web": [2, 9, 21], "listen": [2, 23, 28], "It": [2, 3, 4, 10, 11, 13, 14, 16, 17, 21], "recommend": [2, 4, 8, 12, 13, 17], "misalign": 2, "expect": [2, 3, 4, 15], "how": [2, 3, 9, 10, 13, 15, 17, 21, 27], "contact": [2, 15], "when": [2, 3, 8, 10, 13, 15, 16, 18, 21, 31], "limit": [2, 3, 16, 21], "respond": [2, 15], "runtim": [2, 3, 10, 12, 15, 16, 18, 19, 31], "request": [2, 15, 16, 18, 26], "privileg": 2, "prevent": [2, 3], "non": [2, 23], "root": [2, 3, 4, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 22, 23], "user": [2, 3, 7, 9, 13, 16, 18, 21, 22, 24, 25, 31], "sensit": [2, 3], "wwclient": [2, 13, 15, 16], "tcp": 2, "987": 2, "rebuild": [2, 3, 13], "reboot": [2, 3, 18, 28, 29, 30], "them": [2, 3, 7, 8, 11, 12, 13, 14, 15, 16, 21, 28, 29, 30, 31], "frequenc": 2, "second": [2, 12, 14, 17, 25], "client": [2, 3, 15, 25], "fetch": 2, "determin": 2, "whether": [2, 4, 22], "automat": [2, 3, 10, 11, 12, 14, 17, 18, 21, 22, 23, 25, 27], "rebuilt": [2, 3], "e": [2, 3, 8, 11, 12, 17, 18, 19, 20, 23, 25, 28], "g": [2, 3, 8, 11, 12, 17, 18, 19, 20, 23, 25, 28], "an": [2, 3, 4, 6, 8, 9, 10, 12, 13, 15, 16, 17, 18, 19, 23, 25, 26, 27, 28], "underli": [2, 4, 9], "special": 2, "appli": [2, 14, 20], "depend": [2, 4, 7, 9, 15, 17, 20, 23, 25, 27], "log": [2, 3, 4, 16], "go": [2, 8, 14, 15, 16, 18, 21, 22, 23, 25, 31], "written": [2, 7, 10, 13, 16, 19], "var": [2, 7, 24, 25, 28, 29, 30, 31], "warewulfd": [2, 7, 23, 24, 25, 28, 29, 30, 31], "up": [2, 3, 10, 13, 16, 17, 18, 19, 23, 25, 27], "exec": [2, 3, 15], "allow": [2, 3, 8, 13, 22, 25], "environ": [2, 3, 9, 18, 27], "prior": [2, 3, 22], "deploy": [2, 9], "databas": [2, 3], "flat": 2, "text": [2, 13, 15, 19, 31], "yaml": [2, 12], "command": [2, 3, 4, 5, 7, 11, 12, 13, 14, 15, 20, 22, 24, 27, 28, 29, 30, 31], "site": [2, 8], "infrastructur": [2, 9, 17], "being": [2, 3, 6, 9, 10, 13, 14, 16, 18, 31], "veri": [2, 9, 12, 14, 15, 26, 31], "light": 2, "weight": [2, 3, 13], "make": [2, 4, 5, 8, 15, 16, 18, 22, 23, 24, 25, 27, 28, 29, 30, 31], "easi": [2, 7, 9], "matter": 2, "what": [2, 11, 15, 16, 21], "paradigm": [2, 18], "document": [2, 16, 17, 19, 21, 22, 27], "detail": [2, 3, 10, 22], "format": [2, 4, 6, 13, 16, 23], "edit": [2, 12, 17, 19, 23, 25, 26, 28, 29, 30, 31], "time": [2, 3, 11, 13, 17, 18, 19, 21], "first": [2, 8, 12, 13, 16, 17, 28, 29, 30, 31], "attempt": [2, 7, 12, 15], "doe": [2, 3, 4, 13, 15, 16, 25], "alreadi": [2, 18], "valu": [2, 10, 12, 14, 15, 17, 19, 22], "none": 2, "exampl": [2, 3, 6, 12, 13, 14, 16, 17, 20, 25, 27], "respect": [2, 20], "defaultnod": 2, "devic": [2, 3, 4, 12, 13, 15, 19, 25, 28, 29, 30, 31], "dummi": [2, 17], "compil": [2, 13, 27, 31], "wwinit": [2, 4, 10, 12, 17, 22], "arg": [2, 17, 22], "quiet": [2, 10, 12, 13, 17], "crashkernel": [2, 10, 12, 17], "vga": [2, 10, 12, 17], "791": [2, 10, 12, 17], "net": [2, 3, 10, 12, 17, 23], "scheme": [2, 10, 12, 17], "v238": [2, 10, 12, 17], "init": [2, 10, 12, 13, 14, 15, 17, 22, 31], "sbin": [2, 10, 12, 15, 17, 22, 31], "initramf": [2, 6, 10, 12, 16, 17, 22], "ipx": [2, 3, 7, 10, 12, 14, 15, 17, 19, 22, 25, 27], "templat": [2, 3, 4, 5, 6, 7, 17, 25, 27, 31], "profil": [2, 4, 7, 11, 12, 13, 16, 17, 20, 22, 23, 24, 25, 27], "eth0": [2, 10, 12, 13, 23, 25, 28, 29, 30, 31], "ethernet": [2, 10, 12, 17, 28, 29, 30, 31], "There": [2, 3, 8, 9, 10, 11, 14, 17, 18, 28, 29, 30, 31], "should": [2, 3, 4, 7, 8, 9, 13, 14, 15, 17, 21, 25], "never": [2, 18], "local": [2, 15, 19, 22, 23], "paramet": [2, 10, 23, 25, 28, 29, 30], "either": [2, 5, 8, 13, 17, 20], "sinc": [3, 9], "over": [3, 8, 9, 10, 12, 15, 17, 18, 19], "20": [3, 9, 11, 12, 17], "ago": 3, "model": [3, 9, 11, 16, 18], "virtual": [3, 6, 9, 25, 27], "vnf": [3, 6, 11, 23, 25, 27], "imag": [3, 4, 6, 9, 11, 13, 15, 18, 20, 23, 24, 27], "golden": [3, 9], "except": [3, 4], "within": [3, 9, 11, 13, 18, 19, 22, 25], "directori": [3, 7, 13, 22, 27], "chroot": [3, 6], "hindsight": 3, "been": [3, 6, 7, 9, 11, 12, 18, 21, 28, 29, 30], "along": 3, "buzzword": 3, "just": [3, 9, 12, 14, 16, 17, 18, 21, 28, 29, 30, 31], "didn": [3, 4], "last": [3, 4, 9, 13, 14, 15], "6": [3, 12, 14, 20], "enterpris": [3, 8, 9], "lot": [3, 10, 14], "around": [3, 9, 18, 20], "v4": [3, 8, 9, 11, 12, 16, 18, 24, 28], "now": [3, 5, 7, 12, 14, 15, 17, 24, 28, 29, 30, 31], "integr": [3, 6, 17, 21], "ecosystem": 3, "facilit": [3, 13, 14, 18], "leverag": [3, 9, 16], "ani": [3, 6, 7, 8, 9, 11, 13, 14, 15, 16, 18, 21, 28, 29, 30], "wai": [3, 9, 10, 11, 13, 14, 16, 17, 18, 21], "still": [3, 11, 12, 16, 18, 28, 29, 30], "own": [3, 9, 11], "befor": [3, 4, 5, 8, 13, 26, 31], "understand": [3, 21], "while": [3, 9, 12, 13, 16, 18, 28, 29, 30, 31], "absolut": [3, 4, 13, 18], "provis": [3, 6, 9, 12, 13, 17, 19, 24, 27, 31], "bare": 3, "metal": [3, 4], "boot": [3, 4, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 27, 28, 29, 30, 31], "entir": [3, 8, 18], "memori": [3, 18, 24, 25], "retain": 3, "about": [3, 21, 22, 27], "docker": [3, 6, 12, 23, 24, 25, 28, 29, 30, 31], "probabl": [3, 16, 21, 28], "most": [3, 8, 9, 12, 15, 16, 18], "recogniz": 3, "anoth": [3, 14, 18, 21], "gain": [3, 16], "traction": 3, "rhel": [3, 9, 23, 24, 25, 27], "util": [3, 8, 13, 16, 23, 24, 25, 28, 29, 30], "later": 3, "oci": [3, 6], "compliant": [3, 9], "here": [3, 7, 8, 10, 11, 14, 15, 16, 17, 21, 22, 24, 28, 29, 30, 31], "hub": [3, 6, 28, 29, 30, 31], "ghcr": [3, 23, 24, 25, 28, 29, 30], "io": [3, 6, 17, 23, 24, 25, 28, 29, 30], "rockylinux": [3, 24, 29, 30], "8": [3, 11, 12, 23, 25, 29], "rocki": [3, 9, 11, 12, 15, 27], "get": [3, 9, 13, 15, 16, 17, 19, 21, 22, 28], "copi": [3, 13, 18, 21], "blob": [3, 7], "d7f16ed6f451": 3, "done": [3, 11, 12, 13, 16, 21, 28, 29, 30, 31], "config": [3, 4, 12, 19, 24, 29, 30], "da2ca70704": 3, "write": [3, 7, 10, 18, 21, 22], "manifest": 3, "destin": 3, "store": [3, 7, 13], "info": [3, 24, 29, 30], "unpack": 3, "layer": [3, 16], "sha256": 3, "d7f16ed6f45129c7f4adb3773412def4ba2bf9902de42e86e77379a65d90a984": 3, "bootabl": [3, 15], "lighter": 3, "reason": [3, 14, 16, 26], "don": [3, 16], "debian": [3, 9, 15, 27], "properli": [3, 7, 28, 29, 30], "stuck": 3, "mode": [3, 13, 16, 19], "http": [3, 8, 15, 17, 21, 23, 24, 25, 28, 29, 30, 31], "com": [3, 8, 21, 22, 23, 24, 25, 28, 29, 30, 31], "u": [3, 4, 16, 22, 31], "would": [3, 6, 10, 15, 17, 18, 21], "password": [3, 22, 25], "protect": 3, "tl": 3, "do": [3, 5, 7, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 24, 28, 29, 30, 31], "choic": [3, 9, 17], "handl": 3, "credenti": 3, "environment": 3, "variabl": [3, 13, 22, 31], "login": [3, 23, 25], "pleas": [3, 15], "note": [3, 12, 17, 21, 28, 29, 30, 31], "warewulf_oci_usernam": 3, "warewulf_oci_password": 3, "warewulf_oci_nohttp": 3, "privateus": 3, "super": 3, "secret": 3, "token": [3, 16], "privatereg": 3, "share": [3, 24, 26, 28, 29, 30, 31], "show": [3, 10, 19, 31], "bash": [3, 23], "histori": 3, "save": 3, "tar": [3, 8], "archiv": [3, 13], "alpin": [3, 11], "latest": [3, 8, 12, 22, 31], "sandbox": [3, 27], "sudo": [3, 8, 16, 23, 24, 25, 28, 29, 30, 31], "At": [3, 4, 21, 28, 29, 30], "uid": [3, 13], "gid": [3, 13], "mismatch": 3, "print": [3, 19, 22, 28, 29, 30, 31], "out": [3, 9, 12, 15, 17, 18, 21, 26], "warn": [3, 22], "By": [3, 8, 13, 16, 25], "flag": [3, 12, 13, 14, 19], "advis": 3, "try": [3, 4, 15, 22], "syncron": 3, "passwd": [3, 13], "belon": 3, "trigger": 3, "With": [3, 9, 13, 19], "describ": [3, 8, 17, 21], "onc": [3, 7, 8, 11, 12, 13, 15, 16, 20, 21, 22, 28, 29, 30], "configur": [3, 5, 7, 8, 11, 13, 14, 15, 16, 17, 18, 20, 23, 24, 25, 27], "minim": 3, "insid": [3, 16, 25], "bin": [3, 22, 24, 29, 30], "sh": [3, 7, 13], "cat": [3, 24], "releas": [3, 9, 12, 23, 24, 25, 29, 30], "linux": [3, 9, 11, 15, 17, 18, 23, 27, 28, 31], "green": 3, "obsidian": 3, "exit": 3, "skip": [3, 18], "bind": 3, "tmp": [3, 24], "mnt": 3, "both": [3, 4, 12, 13, 14, 19, 20, 28, 29, 30, 31], "target": [3, 4, 16, 19, 22], "why": [3, 22, 27], "locat": [3, 8, 11, 23, 31], "alwai": [3, 9, 14, 16, 17, 21, 28, 29, 30, 31], "present": [3, 15, 19], "empti": [3, 13, 19], "prescrib": 3, "lsb": 3, "hierarchi": 3, "complet": [3, 13, 14, 16, 18, 23], "anyth": [3, 14], "static": [3, 13, 17, 19, 25, 28, 29, 30, 31], "object": [3, 27], "were": [3, 9, 18], "addit": [3, 13, 17, 26], "confirm": 3, "section": [3, 12, 14, 15, 26], "reduc": 3, "unnecessari": 3, "pattern": [3, 5, 31], "read": [3, 21, 22], "itself": [3, 4, 11, 16, 17], "usr": [3, 4, 24, 29, 30, 31], "geoip": 3, "filepath": 3, "script": [3, 10, 13, 18, 25], "container_exit": 3, "re": [3, 4, 5, 7, 15, 21, 22], "final": 3, "deliveri": [3, 17], "remov": [3, 13, 19, 22, 23], "cach": [3, 4, 13], "session": 3, "clean": [3, 24, 29, 30, 31], "repositori": [3, 8, 21, 26], "those": [3, 8, 15, 16, 28, 29, 30, 31], "previou": [3, 14, 16, 18, 21], "did": 3, "rpm": [3, 23, 24, 25, 27], "well": [3, 4, 7, 13, 16, 18, 19], "variant": [3, 23], "bootstrap": [3, 15, 17], "mini": 3, "yum": [3, 8, 23, 25], "someth": [3, 31], "like": [3, 8, 13, 14, 15, 16, 17, 18, 21, 25, 26, 28, 31], "installroot": 3, "newroot": 3, "basesystem": 3, "chkconfig": 3, "coreutil": 3, "e2fsprog": 3, "ethtool": 3, "filesystem": 3, "findutil": 3, "gawk": 3, "grep": [3, 12, 13, 14, 24], "initscript": 3, "iprout": 3, "iputil": 3, "pam": 3, "psmisc": 3, "rsync": 3, "sed": [3, 24], "setup": [3, 7, 10, 13, 16, 22, 27, 28, 29, 30, 31], "shadow": 3, "rsyslog": 3, "tzdata": 3, "word": 3, "zlib": 3, "less": [3, 31], "gzip": [3, 13], "openssh": 3, "dhclient": 3, "pciutil": 3, "vim": 3, "strace": 3, "croni": 3, "crontab": 3, "cpio": [3, 13], "wget": [3, 23], "ipmitool": [3, 23, 25], "networkmanag": [3, 13], "apt": [3, 28], "debootstrap": 3, "stabl": [3, 8], "ftp": 3, "org": [3, 8, 12, 24, 25, 31], "modifi": [3, 12, 13, 14, 17, 23, 25], "new": [3, 13, 14, 16, 22, 25, 27], "containernam": [3, 17, 22], "perform": [3, 9, 16, 17], "intens": 3, "applic": 3, "sever": [3, 4, 13, 17, 18], "recip": 3, "found": [3, 19], "github": [3, 8, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31], "tree": 3, "main": [3, 5, 8, 21, 28], "point": [3, 4, 13, 18, 22, 28, 29, 30], "ad": [3, 4, 13, 14, 17, 19, 27, 28, 29, 30, 31], "post": [3, 16, 21, 28, 29, 30, 31], "epel": [3, 24, 29, 30], "def": [3, 22], "dockerfil": 3, "opensus": [3, 12, 15, 27], "leap": [3, 27], "f": [3, 13, 23], "containerfil": [3, 12], "tag": [3, 8, 16, 17, 21, 22, 28], "ww": [3, 5, 7, 13, 17, 23, 25, 31], "localhost": [3, 24, 25], "o": [3, 13, 18, 22, 23, 25], "quit": 3, "small": [3, 12], "few": [3, 4, 14], "hundr": [3, 9, 14, 18], "megabyt": 3, "grow": [3, 18], "quickli": [3, 7], "larger": [3, 12, 17, 18], "issu": [3, 10, 13, 18, 26, 27], "imped": 3, "than": [3, 14, 17], "gigabyt": 3, "workaround": 3, "circumst": 3, "legaci": [3, 13], "bio": [3, 15], "32": 3, "bit": [3, 13, 16], "cannot": 3, "more": [3, 6, 8, 12, 17, 18, 19, 22, 26], "4gb": [3, 25], "decompress": 3, "compress": [3, 13], "report": 3, "No": [3, 19], "space": [3, 18], "left": [3, 26], "34182006": 3, "best": [3, 8, 9, 12, 14, 16], "switch": [3, 4, 8, 13, 16, 17, 28], "uefi": 3, "64": 3, "significantli": 3, "though": 3, "sometim": [3, 4, 19], "led": 3, "artifici": 3, "due": [3, 15, 16], "integ": 3, "critic": [3, 16, 17, 28, 29, 30, 31], "initrd": 3, "code": [3, 26, 27], "imgextract": 3, "rather": [3, 14, 16, 18], "firmwar": [3, 11, 15, 16], "hole": 3, "featur": [3, 5, 14, 16, 18, 21, 22, 26, 27], "reserv": 3, "1mb": 3, "block": [3, 4, 13, 19], "15mb": 3, "16mb": 3, "interfer": 3, "stateless": [3, 9, 13, 27], "Not": 3, "enough": 3, "error": [3, 7, 12, 22, 28, 29, 30], "container_nam": 3, "duplicated_container_nam": 3, "kind": 3, "look": [3, 14, 18, 25], "canari": 3, "partit": 4, "provid": [4, 8, 9, 12, 14, 15, 16, 17, 20, 21, 24, 26], "structur": [4, 31], "moment": [4, 21], "swap": [4, 18], "scratch": [4, 18, 27], "creation": [4, 11], "sgdisk": 4, "gdisk": 4, "gptfdisk": 4, "inspir": 4, "butan": 4, "where": [4, 8, 10, 19, 21], "list": [4, 10, 14, 17, 20, 22, 23, 25, 27, 28, 29, 30, 31], "hold": 4, "map": [4, 22, 25], "A": [4, 13, 17, 19, 22], "its": [4, 5, 8, 9, 12, 13, 15, 18], "bool": 4, "indic": 4, "tabl": [4, 10, 25], "overwritten": [4, 14], "desir": 4, "label": 4, "number": [4, 9, 13, 18, 28, 29, 30, 31], "omit": [4, 17, 28, 29, 30, 31], "without": [4, 13, 14, 18], "size": [4, 11, 27], "mib": [4, 11], "given": [4, 12, 13, 19, 21, 22], "maximum": 4, "should_exist": 4, "wipe_partition_entri": 4, "prefer": [4, 19, 22], "dev": [4, 24, 28], "partlabel": 4, "valid": [4, 10, 27], "btrf": 4, "ext3": 4, "ext4": 4, "xf": [4, 8], "wipe_filesystem": 4, "wipe": 4, "reli": [4, 16, 28, 29, 30, 31], "dbu": 4, "notif": 4, "necessari": [4, 12, 13, 15, 21], "json": [4, 24], "function": [4, 15, 20, 21, 22, 26, 31], "createignitionjson": 4, "ww4": [4, 5, 17], "call": [4, 6, 13, 14, 15, 19, 21, 22, 23, 31], "take": [4, 14, 16], "unit": [4, 18], "entri": [4, 12, 13, 19, 22, 31], "fstab": [4, 7, 23, 25], "no_auto": 4, "n01": 4, "disknam": 4, "vda": [4, 24], "diskwip": 4, "partnam": 4, "partcreat": 4, "fsname": 4, "fsformat": 4, "fspath": 4, "fswipe": 4, "1gig": 4, "partsiz": 4, "1024": 4, "partnumb": 4, "investig": 4, "log_level": 4, "debug": [4, 13, 18, 27], "rd": 4, "kernelarg": [4, 10, 12, 14], "abl": [4, 9, 12, 16, 18, 25], "verbos": 4, "journalctl": 4, "could": [4, 6, 18], "content": [4, 13, 19, 28, 29, 30, 31], "tinker": 4, "lib": [4, 24, 25, 28, 29, 30, 31], "dracut": 4, "modul": [4, 11, 15, 16], "d": [4, 5, 7, 10, 13, 17, 24, 29, 30], "30ignit": 4, "stage": [4, 8, 15, 28, 29, 30], "stdout": 4, "iter": [4, 9, 19], "until": [4, 12, 15, 24], "sure": [4, 5, 12, 13, 14, 25], "unmount": 4, "partial": 4, "success": 4, "experiment": 5, "isc": [5, 17, 28], "act": 5, "keep": 5, "dir": 5, "systemctl": [5, 7, 23, 24, 25, 28, 29, 30, 31], "stop": [5, 7, 16, 23, 25, 31], "instruct": [5, 22, 28, 29, 30, 31], "doesn": [5, 11], "h": [5, 13], "singular": [6, 23], "maintain": [6, 9, 18, 21], "disk": [6, 9, 15, 18, 23, 25, 27], "bundl": [6, 18], "registeri": 6, "respons": [6, 15], "administr": [6, 9, 18, 21], "feel": [6, 26], "term": 6, "descript": [6, 14, 24], "role": [6, 12], "gpu": [6, 11], "prefix": [6, 24, 29, 30, 31], "readi": [7, 15, 23, 24, 25], "associ": [7, 11, 12, 17], "To": [7, 12, 21, 23, 27, 28], "thing": [7, 13, 14, 15, 16, 18], "restart": [7, 28, 29, 30], "under": [7, 9, 12, 25, 27], "hostfil": 7, "ssh": [7, 13, 16, 20, 23, 25], "passwordless": 7, "addion": 7, "ssh_setup": [7, 13], "csh": [7, 13], "pxe": [7, 15, 16, 17, 23, 24, 25], "watch": [7, 23, 25, 28, 29, 30, 31], "output": [7, 12, 13, 21, 23, 25], "carefulli": 7, "portion": 7, "manual": 7, "regist": [7, 15, 28, 29, 30], "line": [7, 17, 19, 20, 22, 23, 25], "program": [7, 13], "statu": [7, 10, 21, 23, 25, 27], "result": [7, 13, 15, 17, 19], "unexpect": 7, "multipl": [8, 10, 11, 12, 16, 20, 27, 28, 29, 30, 31], "page": 8, "project": [8, 15, 21, 31], "part": [8, 13, 14, 28, 29, 30], "ci": [8, 9], "cd": [8, 21, 23, 24, 25, 28, 29, 30, 31], "obtain": [8, 13, 21], "download": [8, 13, 15, 16, 23, 25], "git_afcdb21": 8, "el8": [8, 27], "suse": [8, 9], "lp153": 8, "golang": [8, 23, 24, 25, 28, 29, 30], "wish": [8, 11, 12, 14, 15, 18, 28, 29, 30, 31], "recent": [8, 12], "dl": [8, 24], "groupinstal": [8, 24, 29, 30], "alongsid": 8, "select": [8, 13, 25], "direct": [8, 15, 21], "substitut": [8, 22], "curl": [8, 28], "lo": 8, "hpcng": 8, "v": [8, 22, 24], "gz": [8, 15], "collabor": 8, "revis": 8, "branch": [8, 24], "entitl": 8, "activ": [8, 16], "greatest": 8, "But": [8, 14, 16, 18], "forewarn": 8, "snapshot": 8, "guarante": 8, "product": [8, 17], "altern": 8, "area": 8, "pend": 8, "clone": [8, 21, 23, 24, 25, 28, 29, 30, 31], "checkout": [8, 24, 28], "vendor": [8, 9, 15, 16, 21], "compat": 8, "had": [9, 16, 18], "tenet": 9, "remain": 9, "same": [9, 10, 13, 18], "howev": [9, 12, 16], "state": [9, 10], "flexibl": [9, 18, 31], "overview": [9, 27], "produc": 9, "simplic": 9, "2001": 9, "becom": [9, 21, 24], "popular": 9, "open": [9, 15, 21, 22, 26, 27], "agnost": 9, "global": [9, 23], "commun": [9, 15, 16, 17, 27], "central": 9, "thousand": [9, 13, 18], "ident": [9, 13, 26], "pipelin": 9, "dockerhub": 9, "gitlab": 9, "high": [9, 16, 17, 25], "cloud": [9, 24], "hyperscal": 9, "princip": 9, "larg": [9, 14, 17], "mani": [9, 13, 14, 17, 18, 20, 21], "task": 9, "case": [9, 11, 16, 17, 18], "everyth": [9, 10, 13, 23], "render": [9, 13], "farm": 9, "kubernet": 9, "bring": [9, 13, 25], "experi": [9, 18, 25], "lightweight": [9, 12], "hobbyist": 9, "research": 9, "scientist": 9, "engin": [9, 13, 19], "becaus": [9, 16, 17, 18, 28, 29, 30, 31], "highli": [9, 12], "lab": 9, "graphic": [9, 23], "workstat": 9, "desk": 9, "supercomput": 9, "center": 9, "hardwar": [9, 16, 18, 27], "arm": 9, "x86": 9, "ato": 9, "dell": 9, "cento": [9, 25, 27], "selinux": [9, 13, 15, 23, 24, 25, 27, 28, 29, 30], "box": [9, 27], "rest": [9, 15, 17], "continu": [9, 13, 18, 21, 22], "bmc": 10, "discuss": [10, 13, 21], "common": [10, 16, 17, 31], "level": [10, 17], "field": [10, 12, 13, 14, 17], "individu": [10, 13, 18, 19, 28, 29, 30, 31], "ipmiwrit": [10, 12], "happen": [10, 19], "50": [10, 17, 22, 24, 28, 29, 30, 31], "overrid": [10, 12, 20, 22, 27], "outlin": 10, "ipmiaddr": [10, 12], "ipminetmask": [10, 12, 14], "ipmiport": [10, 12, 14], "623": 10, "ipmigatewai": [10, 12, 14], "ipmius": [10, 12], "ipmipass": [10, 12], "ipmiinterfac": [10, 12, 14], "lan": 10, "lanplu": 10, "ipmiescapechar": 10, "charact": 10, "down": [10, 22, 25], "id": [10, 12, 14, 17, 19, 22], "comment": [10, 12, 14, 17, 22], "sle": [10, 12, 27], "micro": [10, 12], "3": [10, 11, 12, 17, 20], "discover": [10, 12, 22, 23, 24, 25, 28, 29, 30, 31], "asset": [10, 12, 16], "onboot": [10, 12, 17, 25], "netdev": [10, 12, 17, 19, 22, 23, 24, 25, 28, 29, 30, 31], "hwaddr": [10, 12, 19], "ipaddr6": [10, 12, 19], "gatewai": [10, 12, 19, 22, 24, 25, 28, 29, 30, 31], "mtu": [10, 12], "n001": [10, 12], "kerneloverrid": [10, 11, 12], "tw": [10, 12], "11": [10, 12], "22": [10, 12, 17, 25], "33": [10, 12], "44": [10, 12], "55": [10, 12, 22], "66": [10, 12], "2": [10, 11, 12, 17, 20, 22, 25], "connecton": 10, "usernam": [10, 21, 22], "192": [10, 24, 28, 29, 30, 31], "168": [10, 24, 28, 29, 30, 31], "hwadmin": 10, "n002": [10, 12], "12": [10, 27], "n003": [10, 12], "13": [10, 11], "n004": [10, 12], "14": 10, "cycl": [10, 19], "turn": [10, 20, 27, 28, 29, 30], "off": [10, 20, 25, 27], "reset": [10, 15], "shutdown": [10, 23], "gracefulli": 10, "serial": 10, "sol": 10, "easiest": 11, "particular": [11, 12, 14, 18], "see": [11, 12, 14, 15, 21, 24, 26, 28, 29, 30, 31], "modif": [11, 19], "05": 11, "jun": 11, "23": 11, "02": 11, "mdt": 11, "17": 11, "9": [11, 27, 30], "18": 11, "372": 11, "el8_6": 11, "jan": 11, "48": [11, 22], "mst": 11, "06": 11, "apr": 11, "09": 11, "40": [11, 24], "gib": 11, "notic": 11, "contian": 11, "introduc": 11, "previous": 11, "made": [11, 16, 21], "hard": [11, 16, 18, 25], "custom": [11, 13, 14, 16], "driver": 11, "OFED": 11, "unam": [11, 23, 25], "r": [11, 13, 23, 25], "305": 11, "el8_4": 11, "mention": 12, "persist": [12, 13, 17, 25], "prone": 12, "backend": 12, "datastor": 12, "000": 12, "yield": 12, "latenc": [12, 17], "felt": 12, "toler": 12, "increment": 12, "n00": 12, "n": [12, 13, 14], "n0000": [12, 14, 23, 25, 28, 29, 30, 31], "complic": 12, "compris": 12, "descriptor": 12, "domain": 12, "cluster01": [12, 14], "assum": [12, 28, 29, 30, 31], "equival": 12, "glob": 12, "string": [12, 16, 19, 22], "valuabl": [12, 18], "full": [12, 18, 24, 27, 28, 29, 30, 31], "172": 12, "16": [12, 15], "parenthesi": 12, "overridden": 12, "grant": 12, "usabl": 12, "minimum": 12, "reachabl": 12, "help": [12, 14, 15, 16, 18, 20, 21, 22, 28, 29, 30, 31], "y": [12, 13, 14, 19, 23, 24, 25, 31], "And": [12, 13, 14, 16, 26], "beyond": [12, 17], "illustr": 12, "import": [12, 17, 21, 23, 24, 25, 27, 28, 29, 30, 31], "tumblewe": 12, "registri": [12, 31], "scienc": [12, 31], "dc": 12, "pick": 12, "bond": 12, "link": [12, 15, 19, 21], "aggreagt": 12, "netnam": [12, 17, 25, 31], "bond0_member_1": 12, "eth2": 12, "slave": 12, "bond0_member_2": 12, "eth3": 12, "bond0": 12, "9000": 12, "member": [12, 21], "interterfac": 12, "_": [12, 22], "ib0": 12, "aa": 12, "bb": 12, "cc": 12, "dd": 12, "ee": 12, "ff": 12, "iband": 12, "infiniband": [12, 17], "discov": 12, "against": 12, "sort": 12, "lexic": 12, "clear": 12, "unset": 12, "undef": [12, 14, 22], "li": 13, "problem": [13, 18], "solv": [13, 18], "hostnam": [13, 19, 24], "Or": 13, "peopl": 13, "choos": [13, 15, 25], "heavi": 13, "solut": [13, 17], "period": [13, 31], "nesscesari": 13, "besid": 13, "wick": 13, "el": 13, "udev": 13, "rule": [13, 25, 31], "loop": [13, 31], "warwulf": 13, "ipmi": [13, 17, 22, 27], "regular": [13, 22], "basi": 13, "minut": [13, 15], "addition": [13, 16], "authorized_kei": 13, "dynam": [13, 17, 19], "slurm": 13, "unlik": 13, "backup": [13, 19], "wwbackup": [13, 19], "suffix": [13, 19, 31], "subsequ": 13, "won": [13, 15, 19], "overwrit": [13, 14], "scrip": 13, "manipul": 13, "receiv": 13, "welcom": [13, 27], "mkdir": [13, 24, 28], "systemoverlai": [13, 14, 17, 22], "insert": 13, "condit": 13, "manner": 13, "tell": [13, 16], "pars": 13, "attribut": [13, 14, 16, 22, 27], "drop": [13, 25], "ownership": 13, "permiss": 13, "nodepattern": 13, "argument": [13, 14, 31], "interpret": 13, "restrict": 13, "filenam": [13, 15, 19], "subcommand": [13, 20], "forc": 13, "parent": 13, "m": [13, 21, 23, 25], "p": [13, 23, 24, 25], "header": 13, "noupdat": 13, "place": [13, 21], "l": [13, 23, 25, 31], "shown": 13, "displai": [13, 22], "q": 13, "nodenam": [13, 15], "mandatori": 13, "suppress": 13, "redund": 14, "inherit": 14, "handi": 14, "hw": [14, 15, 28, 29, 30, 31], "mac": [14, 15], "view": [14, 28, 29, 30, 31], "summari": [14, 27], "runtimeoverlai": [14, 17, 22], "ipmiipaddr": 14, "ipmiusernam": 14, "demonstr": [14, 17], "let": [14, 21], "test_profil": 14, "lastli": 14, "our": [14, 16, 18, 21, 26], "addprofil": 14, "verifi": [14, 19, 25], "delet": 14, "supersed": [14, 28, 29, 30, 31], "deal": 14, "subset": 14, "preced": 14, "noth": [14, 16], "inher": 14, "fix": [14, 21, 22, 31], "sub": [14, 20], "might": [14, 17, 18, 22, 25, 28, 29, 30], "cluster_nam": 14, "preconfigur": 15, "ask": 15, "rack": 15, "credit": 15, "certifi": 15, "stack": 15, "ensur": [15, 16, 23, 25, 28, 29, 30, 31], "rom": 15, "finish": 15, "bootp": 15, "reach": 15, "els": [15, 22], "unifi": 15, "background": [15, 27], "daemon": [15, 23, 25], "sleep": 15, "exactli": [15, 18, 21], "whole": 15, "sent": 15, "lastseen": 15, "c001": 15, "runtime_overlai": 15, "img": [15, 23], "system_overlai": 15, "thank": 15, "between": [15, 17], "counter": 15, "exterior": 16, "gushi": 16, "interior": 16, "free": 16, "roam": 16, "tend": [16, 26], "posix": 16, "practic": [16, 28], "kill": 16, "vpn": 16, "bastion": 16, "factor": [16, 18], "authent": 16, "mfa": 16, "malici": 16, "access": [16, 25], "onion": 16, "accur": 16, "predomin": 16, "ground": 16, "further": [16, 21], "certain": 16, "parallel": [16, 18, 20], "librari": 16, "lower": 16, "threshold": 16, "strive": 16, "blocker": 16, "enforc": [16, 24, 28, 29, 30], "firewal": [16, 17, 19, 23, 25, 28, 29, 30], "fulli": 16, "whatev": 16, "hand": [16, 31], "ramf": 16, "extend": [16, 17], "tmpf": 16, "sysconfig": [16, 23, 25, 31], "insecur": 16, "land": 16, "spoof": 16, "raw": 16, "materi": 16, "inspect": [16, 24], "transfer": [16, 17], "trust": [16, 17], "enact": 16, "vlan": [16, 25], "consult": 16, "physic": 16, "simpli": 16, "assetkei": [16, 22], "shim": 16, "grub": [16, 27], "distributor": 16, "compli": 16, "load": [16, 22, 24], "postur": 16, "perhap": 16, "increas": 16, "provision": 16, "organiz": 16, "polici": 16, "job": [16, 18], "predetermin": 17, "asid": 17, "layout": 17, "pai": 17, "attent": 17, "temporari": 17, "band": 17, "conflict": 17, "perspect": 17, "impli": 17, "least": 17, "revers": 17, "nat": [17, 25], "scope": [17, 22], "speed": 17, "low": 17, "data": [17, 19], "inter": 17, "three": 17, "protocol": 17, "accomplish": [17, 18], "intern": [17, 22], "100": [17, 28, 29, 30, 31], "organ": 17, "alloc": 17, "divid": 17, "router": 17, "achiv": 17, "dnsmasq": [17, 27], "accordingli": 17, "trivial": 17, "deliverynet": 17, "250": 17, "deliver1": 17, "nettagadd": 17, "dynstart": 17, "dynend": 17, "deliver2": 17, "definit": [17, 18], "primarynetdev": [17, 22], "allnod": [17, 19], "eq": [17, 19], "max": 17, "leas": 17, "120": 17, "6h": 17, "carri": 17, "pool": 18, "necess": 18, "back": [18, 21], "2000": 18, "becam": 18, "appar": 18, "Of": 18, "cours": [18, 22], "overcom": 18, "pretti": 18, "earli": 18, "homogen": 18, "drift": 18, "harder": 18, "onto": 18, "drive": [18, 25], "autom": [18, 22], "bulk": 18, "iso": [18, 23, 25], "usb": 18, "thumb": 18, "obvious": [18, 21], "toolkit": 18, "optim": 18, "past": 18, "ever": 18, "realiz": 18, "think": 18, "liveo": 18, "liveiso": 18, "softwar": [18, 26], "fall": 18, "neighbor": 18, "abil": 18, "hybrid": 18, "core": 18, "piec": 18, "overlaid": 18, "obsolet": 18, "easier": 18, "far": 18, "simplest": 18, "convert": 19, "auto": 19, "popul": 19, "demand": 19, "tmpl": 19, "come": [19, 25, 28, 29, 30, 31], "soon": 19, "break": [19, 22], "front": 19, "element": 19, "arrai": [19, 31], "devnam": 19, "inc": 19, "dec": 19, "acc": 19, "foo": 19, "index": 19, "baar": 19, "ifcfg": [19, 25], "networknam": 19, "xml": [19, 23], "buildhost": 19, "buildtim": 19, "buildsourc": 19, "autogener": 19, "ipv4": 19, "arp": 19, "ipcidr": 19, "rout": 19, "nexthop": 19, "ipv6": 19, "privaci": 19, "accept": 19, "redirect": 19, "snippet": 19, "emit": 19, "getb": 19, "isn": 19, "intend": [19, 21], "behavior": 19, "substr": 19, "x": [19, 23], "b": [19, 21], "c": [19, 23, 25, 31], "payload": 19, "primarili": 20, "major": 20, "compon": 20, "power": [20, 27], "basic": [20, 23, 25, 27, 29, 30, 31], "syntax": 20, "express": 20, "comma": 20, "numer": 20, "expand": 20, "node1": 20, "node2": 20, "node3": 20, "node5": 20, "node6": 20, "challeng": 21, "grate": 21, "offer": 21, "endeavor": 21, "greatli": 21, "appreci": 21, "onlin": [21, 25], "great": 21, "talk": 21, "workspac": 21, "bug": [21, 22], "pr": 21, "offici": 21, "md": 21, "conduct": 21, "account": [21, 25], "git": [21, 23, 24, 25, 26, 28, 29, 30, 31], "isol": 21, "On": [21, 23, 25, 28, 29, 30, 31], "nut": 21, "happi": 21, "commit": 21, "changed1": 21, "changed2": 21, "messag": [21, 28], "good": [21, 26, 28], "getconfig": 21, "csv": 21, "doc": [21, 24, 26, 29, 30], "close": 21, "referenc": 21, "merg": 21, "futur": 21, "hopefulli": 21, "revert": 21, "gui": 21, "regardless": 21, "convers": 21, "thread": 21, "suggest": [21, 26], "exact": 21, "date": [21, 31], "changesinto": 21, "event": 21, "remot": 21, "debugg": 22, "potent": 22, "guid": 22, "makefil": 22, "codebas": 22, "troubl": 22, "track": 22, "cmd": [22, 28, 29, 30], "dlv": 22, "test_getallnodeinfodefault": 22, "pkg": 22, "breakpoint": 22, "0x26c0d0": 22, "nodeyaml_test": 22, "51": 22, "paus": 22, "hit": 22, "goroutin": 22, "35": 22, "total": 22, "pc": 22, "46": 22, "assert": 22, "nodeyaml": 22, "test_nod": 22, "47": 22, "equal": 22, "49": 22, "func": 22, "52": 22, "writeerr": 22, "writetestconfigfil": 22, "53": 22, "54": 22, "nil": 22, "56": 22, "defer": 22, "mark": 22, "proce": 22, "potenti": 22, "move": 22, "contextu": 22, "nodeinfo": 22, "417": 22, "0x267f18": 22, "newnodeinfo": 22, "19": 22, "412": 22, "defaultnodeconf": 22, "413": 22, "setdeffrom": 22, "414": 22, "415": 22, "416": 22, "normal": [22, 31], "nodeconf": 22, "418": 22, "419": 22, "420": 22, "len": 22, "421": 22, "setslic": 22, "422": 22, "0x267f24": 22, "423": 22, "424": 22, "425": 22, "0x267f3c": 22, "426": 22, "setfrom": 22, "0x267fec": 22, "427": 22, "428": 22, "429": 22, "430": 22, "defaultnetdevconf": 22, "431": 22, "0x268000": 22, "432": 22, "433": 22, "434": 22, "435": 22, "cap": 22, "altvalu": 22, "clusternam": 22, "kernelentri": 22, "0x4000158370": 22, "0x40001583c8": 22, "ipmientri": 22, "0x40001b6600": 22, "0x40001b6658": 22, "0x40001b66b0": 22, "0x40001b6708": 22, "0x40001b6760": 22, "0x40001b67b8": 22, "0x40001b6810": 22, "0x40001b6868": 22, "netdeventri": 22, "my": [23, 25], "desktop": [23, 25], "mirror": 23, "mobap": 23, "edu": 23, "2003": 23, "qemu": 23, "prealloc": 23, "metadata": [23, 24], "qcow2": 23, "32g": 23, "vm": [23, 24, 25], "virt": [23, 24], "centos7": [23, 25], "ram": 23, "8192": [23, 24], "vnc": 23, "noautoconsol": 23, "rhel7": [23, 25], "languag": [23, 25], "vi": [23, 25], "firewalld": [23, 24, 25, 27, 31], "virsh": 23, "destroi": 23, "fedora": 23, "prerequisit": [23, 25], "gpgme": [23, 24, 25, 29, 30], "devel": [23, 24, 25, 29, 30, 31], "libassuan": [23, 24, 25, 28, 29, 30], "repo": [23, 24, 25], "ctrliq": [23, 25], "ctrl": [23, 25], "singularityplu": [23, 25], "endpoint": [23, 25], "ser": 23, "approprit": [23, 25], "pull": [23, 25, 26, 27], "setdefault": [23, 25, 31], "k": [23, 25], "ww_server_subnet_mask": 23, "ww_server_ip": 23, "n0000_ip": 23, "review": [23, 25, 27], "hello_world": [23, 25, 31], "machin": [24, 25, 27], "testb": 24, "intel": 24, "vt": 24, "amd": 24, "lscpu": 24, "lsmod": 24, "ccp": 24, "118784": 24, "kvm_amd": 24, "1105920": 24, "irqbypass": 24, "16384": 24, "libguestf": 24, "virtio": 24, "win": 24, "guestf": 24, "icon": 24, "reg": 24, "top": 24, "libvirtd": 24, "usermod": 24, "ag": 24, "9090": 24, "socket": 24, "hashicorp": 24, "crb": [24, 30], "plugin": 24, "eof": 24, "20230513": 24, "url": 24, "pub": 24, "number_of_nod": 24, "env": 24, "box_vers": 24, "private_network": 24, "200": [24, 25, 28, 29, 30, 31], "254": 24, "libvirt__network_nam": 24, "libvirt__dhcp_en": 24, "synced_fold": 24, "nfs_version": 24, "nfs_udp": 24, "cpu_mod": 24, "passthrough": 24, "machine_virtual_s": 24, "inlin": 24, "growpart": 24, "xfs_growf": 24, "vda5": 24, "bindir": [24, 29, 30], "sysconfdir": [24, 29, 30, 31], "datadir": [24, 29, 30], "localstatedir": [24, 29, 30, 31], "sharedstatedir": [24, 29, 30], "mandir": [24, 29, 30], "man": [24, 29, 30], "infodir": [24, 29, 30], "docdir": [24, 29, 30], "srvdir": [24, 29, 30], "tftpdir": [24, 29, 30, 31], "tftpboot": [24, 25, 28, 29, 30], "systemddir": [24, 29, 30], "bashcompdir": [24, 29, 30], "bash_complet": [24, 29, 30], "firewallddir": [24, 29, 30], "wwclientdir": [24, 29, 30], "tee": 24, "99": [24, 28, 29, 30, 31], "execstart": 24, "ye": [24, 25, 28, 29, 30], "eth1": 24, "n0001": 24, "101": 24, "n0002": 24, "102": 24, "n000": 24, "autostart": 24, "boot_network": 24, "wait": 24, "warewlf": 25, "turnoff": 25, "24": 25, "vboxmanag": 25, "natnetwork": 25, "wwnatnetwork": 25, "7": [25, 27], "wwdev": [25, 27], "adapt": 25, "suffici": 25, "sl7": 25, "optic": 25, "15": [25, 27], "forward": 25, "127": 25, "2222": 25, "guest": 25, "prompt": 25, "upgrad": 25, "v2": 25, "enp0s9": 25, "bootproto": 25, "150": 25, "tftproot": [25, 31], "instanc": 25, "bzimag": 25, "floppi": 25, "consol": [25, 27], "dilemma": 26, "focu": 26, "love": 26, "nobodi": 26, "contribut": 26, "rais": [26, 27], "improv": 26, "send": 26, "docusauru": 26, "procedur": 26, "introduct": 27, "vision": 27, "hostlist": 27, "syncus": 27, "duplic": 27, "db": 27, "un": 27, "cascad": [27, 28, 29, 30, 31], "effect": [27, 28], "ignit": 27, "troubleshoot": 27, "usag": [27, 28, 29, 30, 31], "el9": 27, "join": 27, "vet": 27, "suit": 27, "delv": 27, "vagrant": 27, "vagrantfil": 27, "spin": 27, "kvm": 27, "master1": 27, "virtualbox": 27, "glossari": 27, "tftpd": 28, "hpa": 28, "concern": 28, "intarfac": 28, "dpkg": 28, "reconfigur": 28, "enter": 28, "enp2s0": 28, "essenti": 28, "unzip": 28, "libnf": 28, "libgpgm": 28, "zone": [28, 29, 30], "reload": [28, 29, 30], "perman": [28, 29, 30], "fresh": [28, 29, 30], "context": [28, 29, 30], "restorecon": [28, 29, 30], "rv": [28, 29, 30], "affect": [28, 29, 30], "accord": [28, 29, 30, 31], "uniqu": [28, 29, 30, 31], "dot": [28, 29, 30, 31], "notat": [28, 29, 30, 31], "powertool": 29, "devel_basi": 31, "srv": 31, "wrong": 31, "mv": 31, "warewulf4": 31, "openbuild": 31, "paramat": 31, "45": 31, "dhcp_interfac": 31, "prepopul": 31, "abid": 31, "extrem": 31, "acceler": 31}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"background": 0, "boot": 1, "manag": [1, 3, 4, 11], "ipx": 1, "grub": 1, "secur": [1, 16], "instal": [1, 5, 8, 17, 22, 23, 24, 28, 29, 30, 31], "shim": 1, "efi": 1, "http": 1, "warewulf": [2, 7, 8, 9, 13, 20, 21, 23, 24, 28, 29, 30, 31], "configur": [2, 4, 12, 28, 29, 30, 31], "conf": 2, "node": [2, 10, 11, 12, 14, 15, 19, 24, 28, 29, 30, 31], "default": [2, 23, 28, 29, 30, 31], "directori": 2, "contain": [3, 12, 28, 29, 30, 31], "tool": 3, "import": [3, 11, 13, 18], "privat": 3, "registri": 3, "local": 3, "file": [3, 19], "syncus": 3, "list": [3, 11, 12, 13], "all": [3, 11], "make": [3, 21], "chang": [3, 21], "To": [3, 14], "exclud": 3, "from": [3, 31], "prepar": 3, "build": [3, 13, 23, 28, 29, 30, 31], "creat": [3, 13, 19, 23, 24], "scratch": 3, "A": 3, "your": [3, 21], "host": [3, 13, 24], "us": [3, 13, 14, 22], "apptain": 3, "podman": 3, "size": 3, "consider": 3, "duplic": 3, "disk": 4, "requir": [4, 24], "rocki": [4, 8, 24, 29, 30], "linux": [4, 8, 24, 29, 30], "opensus": [4, 8, 31], "leap": [4, 8, 31], "storag": 4, "object": 4, "ignit": 4, "implement": 4, "exampl": [4, 19, 22], "troubleshoot": 4, "dnsmasq": 5, "usag": 5, "glossari": 6, "initi": 7, "system": [7, 13, 17, 24, 28, 29, 30, 31], "servic": [7, 28, 29, 30, 31], "log": 7, "binari": 8, "rpm": 8, "8": 8, "compil": 8, "sourc": 8, "code": [8, 21, 22], "releas": 8, "tarbal": 8, "git": 8, "runtim": [8, 13], "depend": [8, 28, 29, 30, 31], "introduct": [9, 14], "The": [9, 12, 15], "vision": 9, "about": 9, "featur": 9, "ipmi": 10, "set": [10, 12, 28, 29, 30, 31], "review": 10, "profil": [10, 14, 28, 29, 30, 31], "view": 10, "onli": 10, "power": 10, "command": [10, 19], "consol": 10, "kernel": [11, 12, 24, 28, 29, 30, 31], "overrid": [11, 14], "db": 12, "ad": 12, "new": [12, 21], "sever": 12, "name": 12, "attribut": 12, "": 12, "imag": 12, "network": [12, 17, 23], "addit": 12, "discoveri": 12, "un": 12, "overlai": [13, 31], "defin": 13, "wwinit": 13, "gener": 13, "combin": 13, "templat": [13, 19], "chmod": 13, "chown": 13, "delet": 13, "edit": 13, "show": 13, "an": [14, 21], "multipl": [14, 17, 19], "cascad": 14, "how": 14, "effect": 14, "provis": [15, 16, 18], "hardwar": 15, "setup": [15, 17, 24], "process": 15, "statu": 15, "selinux": 16, "summari": 16, "control": [17, 20, 28, 29, 30, 31], "server": [17, 23], "oper": 17, "address": 17, "stateless": 18, "why": 18, "i": 18, "overview": 18, "comment": 19, "rang": 19, "increment": 19, "variabl": 19, "In": 19, "loop": 19, "decrement": 19, "access": 19, "tag": 19, "special": 19, "includ": [19, 28, 29, 30], "includefrom": 19, "includeblock": 19, "abort": 19, "nobackup": 19, "split": 19, "specif": [19, 22], "wwctl": 20, "hostlist": 20, "contribut": [21, 27], "join": 21, "commun": 21, "slack": 21, "rais": 21, "issu": 21, "step": 21, "1": 21, "fork": 21, "repo": 21, "2": [21, 24], "checkout": 21, "branch": 21, "3": 21, "4": 21, "push": 21, "5": 21, "submit": 21, "pull": [21, 28, 29, 30, 31], "request": 21, "6": 21, "keep": 21, "sync": 21, "debug": 22, "valid": 22, "vet": 22, "run": 22, "full": 22, "test": 22, "suit": 22, "delv": 22, "against": 22, "session": 22, "develop": [23, 24, 25], "environ": [23, 24, 25], "kvm": [23, 24], "cento": 23, "7": 23, "virtual": [23, 24], "machin": 23, "under": 23, "turn": 23, "off": 23, "dhcp": 23, "master1": 23, "wwdev": 23, "vagrant": 24, "cpu": 24, "h": 24, "w": 24, "support": 24, "modul": 24, "9": 24, "qemu": 24, "libvirt": 24, "cockpit": 24, "option": 24, "plug": 24, "reload": 24, "box": 24, "vagrantfil": 24, "sandbox": 24, "spin": 24, "up": [24, 28, 29, 30, 31], "head": 24, "comput": 24, "virtualbox": 25, "document": 26, "user": 27, "guid": 27, "content": 27, "quickstart": [27, 28, 29, 30, 31], "debian": 28, "12": 28, "basic": 28, "firewalld": [28, 29, 30], "start": [28, 29, 30, 31], "enabl": [28, 29, 30, 31], "automat": [28, 29, 30, 31], "vnf": [28, 29, 30, 31], "add": [28, 29, 30, 31], "el8": 29, "rhel": [29, 30], "el9": 30, "sle": 31, "15": 31, "open": 31}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"Background": [[0, "background"]], "Boot Management": [[1, "boot-management"]], "Booting with iPXE": [[1, "booting-with-ipxe"]], "Booting with GRUB": [[1, "booting-with-grub"]], "Secure boot": [[1, "secure-boot"]], "Install shim and efi": [[1, "install-shim-and-efi"]], "http boot": [[1, "http-boot"]], "Warewulf Configuration": [[2, "warewulf-configuration"]], "warewulf.conf": [[2, "warewulf-conf"]], "nodes.conf": [[2, "nodes-conf"]], "defaults.conf": [[2, "defaults-conf"]], "Directories": [[2, "directories"]], "Container Management": [[3, "container-management"]], "Container Tools": [[3, "container-tools"]], "Importing Containers": [[3, "importing-containers"]], "Private Registry": [[3, "private-registry"]], "Local Files": [[3, "local-files"]], "Syncuser": [[3, "syncuser"]], "Listing All Imported Containers": [[3, "listing-all-imported-containers"]], "Making Changes To Containers": [[3, "making-changes-to-containers"]], "Excluding Files from a Container": [[3, "excluding-files-from-a-container"]], "Preparing a container for build": [[3, "preparing-a-container-for-build"]], "Creating Containers From Scratch": [[3, "creating-containers-from-scratch"]], "Building A Container From Your Host": [[3, "building-a-container-from-your-host"]], "Building A Container Using Apptainer": [[3, "building-a-container-using-apptainer"]], "Building A Container Using Podman": [[3, "building-a-container-using-podman"]], "Container Size Considerations": [[3, "container-size-considerations"]], "Duplicating a container": [[3, "duplicating-a-container"]], "Disk Management": [[4, "disk-management"]], "Requirements": [[4, "requirements"]], "Rocky Linux": [[4, "rocky-linux"]], "openSuse Leap": [[4, "opensuse-leap"], [8, "opensuse-leap"]], "Storage objects": [[4, "storage-objects"]], "Ignition Implementation": [[4, "ignition-implementation"]], "Example disk configuration": [[4, "example-disk-configuration"]], "Troubleshooting": [[4, "troubleshooting"]], "Dnsmasq": [[5, "dnsmasq"]], "Usage": [[5, "usage"]], "Installation": [[5, "installation"]], "Glossary": [[6, "glossary"]], "Warewulf Initialization": [[7, "warewulf-initialization"]], "System Services": [[7, "system-services"]], "Warewulf Service": [[7, "warewulf-service"]], "Logs": [[7, "logs"]], "Warewulf Installation": [[8, "warewulf-installation"]], "Binary RPMs": [[8, "binary-rpms"]], "Rocky Linux 8": [[8, "rocky-linux-8"]], "Compiled Source code": [[8, "compiled-source-code"]], "Release Tarball": [[8, "release-tarball"]], "Git": [[8, "git"]], "Runtime Dependencies": [[8, "runtime-dependencies"]], "Introduction": [[9, "introduction"]], "The Warewulf Vision": [[9, "the-warewulf-vision"]], "About Warewulf": [[9, "about-warewulf"]], "Features": [[9, "features"]], "IPMI": [[10, "ipmi"]], "IPMI Settings": [[10, "ipmi-settings"]], "Reviewing Settings": [[10, "reviewing-settings"]], "Profile View": [[10, "profile-view"]], "Node View": [[10, "node-view"]], "Review Only IPMI Settings": [[10, "review-only-ipmi-settings"]], "Power Commands": [[10, "power-commands"]], "Console": [[10, "console"]], "Kernel Management": [[11, "kernel-management"]], "Node Kernels": [[11, "node-kernels"]], "Kernel Overrides": [[11, "kernel-overrides"]], "Listing All Imported Kernels": [[11, "listing-all-imported-kernels"]], "Node Configuration": [[12, "node-configuration"]], "The Node Configuration DB": [[12, "the-node-configuration-db"]], "Adding a New Node": [[12, "adding-a-new-node"]], "Adding several nodes": [[12, "adding-several-nodes"]], "Node Names": [[12, "node-names"]], "Listing Nodes": [[12, "listing-nodes"]], "Setting Node Attributes": [[12, "setting-node-attributes"]], "Configuring the Node\u2019s Container Image": [[12, "configuring-the-node-s-container-image"]], "Configuring the Node\u2019s Kernel": [[12, "configuring-the-node-s-kernel"]], "Configuring the Node\u2019s Network": [[12, "configuring-the-node-s-network"]], "Additional networks": [[12, "additional-networks"]], "Node Discovery": [[12, "node-discovery"]], "Un-setting Node Attributes": [[12, "un-setting-node-attributes"]], "Warewulf Overlays": [[13, "warewulf-overlays"], [31, "warewulf-overlays"]], "Defined Overlays": [[13, "defined-overlays"]], "System or wwinit overlay": [[13, "system-or-wwinit-overlay"]], "Runtime Overlay or generic Overlay": [[13, "runtime-overlay-or-generic-overlay"]], "Host Overlay": [[13, "host-overlay"]], "Combining Overlays": [[13, "combining-overlays"]], "Templates": [[13, "templates"]], "Using Overlays": [[13, "using-overlays"]], "Build": [[13, "build"]], "Chmod": [[13, "chmod"]], "Chown": [[13, "chown"]], "Create": [[13, "create"]], "Delete": [[13, "delete"]], "Edit": [[13, "edit"]], "Import": [[13, "import"]], "List": [[13, "list"]], "Show": [[13, "show"]], "Node Profiles": [[14, "node-profiles"]], "An Introduction To Profiles": [[14, "an-introduction-to-profiles"]], "Multiple Profiles": [[14, "multiple-profiles"]], "Cascading Profiles": [[14, "cascading-profiles"]], "Overriding Profiles": [[14, "overriding-profiles"]], "How To Use Profiles Effectively": [[14, "how-to-use-profiles-effectively"]], "Node Provisioning": [[15, "node-provisioning"]], "Node Hardware Setup": [[15, "node-hardware-setup"]], "The Provisioning Process": [[15, "the-provisioning-process"]], "Node status": [[15, "node-status"]], "Security": [[16, "security"]], "SELinux": [[16, "selinux"]], "Provisioning Security": [[16, "provisioning-security"]], "Summary": [[16, "summary"]], "Control Server Setup": [[17, "control-server-setup"]], "Operating System Installation": [[17, "operating-system-installation"]], "Network": [[17, "network"]], "Addressing": [[17, "addressing"]], "Multiple networks": [[17, "multiple-networks"]], "Stateless Provisioning": [[18, "stateless-provisioning"]], "Why is Provisioning Important": [[18, "why-is-provisioning-important"]], "Provisioning Overview": [[18, "provisioning-overview"]], "Why Stateless Provisioning": [[18, "why-stateless-provisioning"]], "Templating": [[19, "templating"]], "Examples": [[19, "examples"]], "Comment": [[19, "comment"]], "Range": [[19, "range"]], "Increment Variable In Loop": [[19, "increment-variable-in-loop"]], "Decrement": [[19, "decrement"]], "Access Tag": [[19, "access-tag"]], "Create Multiple Files": [[19, "create-multiple-files"]], "Special Commands": [[19, "special-commands"]], "Include": [[19, "include"]], "IncludeFrom": [[19, "includefrom"]], "IncludeBlock": [[19, "includeblock"]], "Abort": [[19, "abort"]], "Nobackup": [[19, "nobackup"]], "Split": [[19, "split"]], "Node specific files": [[19, "node-specific-files"]], "Controlling Warewulf (wwctl)": [[20, "controlling-warewulf-wwctl"]], "Hostlists": [[20, "hostlists"]], "Contributing": [[21, "contributing"], [27, null]], "Join the community": [[21, "join-the-community"]], "Warewulf on Slack": [[21, "warewulf-on-slack"]], "Raise an Issue": [[21, "raise-an-issue"]], "Contribute to the code": [[21, "contribute-to-the-code"]], "Step 1. Fork the repo": [[21, "step-1-fork-the-repo"]], "Step 2. Checkout a new branch": [[21, "step-2-checkout-a-new-branch"]], "Step 3. Make your changes": [[21, "step-3-make-your-changes"]], "Step 4. Push your branch to your fork": [[21, "step-4-push-your-branch-to-your-fork"]], "Step 5. Submit a Pull Request": [[21, "step-5-submit-a-pull-request"]], "Step 6. Keep your branch in sync": [[21, "step-6-keep-your-branch-in-sync"]], "Debugging": [[22, "debugging"]], "Validating the code with vet": [[22, "validating-the-code-with-vet"]], "Running the full test suite": [[22, "running-the-full-test-suite"]], "Using delve": [[22, "using-delve"]], "Installing delve": [[22, "installing-delve"]], "Running delve against a specific test": [[22, "running-delve-against-a-specific-test"]], "Example debugging session": [[22, "example-debugging-session"]], "Development Environment (KVM)": [[23, "development-environment-kvm"]], "Create CentOS 7 development virtual machine under KVM": [[23, "create-centos-7-development-virtual-machine-under-kvm"]], "Turn off default network dhcp on server master1": [[23, "turn-off-default-network-dhcp-on-server-master1"]], "Build and install Warewulf on wwdev": [[23, "build-and-install-warewulf-on-wwdev"]], "Development Environment (Vagrant)": [[24, "development-environment-vagrant"]], "Host system requirements": [[24, "host-system-requirements"]], "CPU H/W Virtualization support": [[24, "cpu-h-w-virtualization-support"]], "KVM kernel module": [[24, "kvm-kernel-module"]], "Setup development environment on Rocky Linux 9": [[24, "setup-development-environment-on-rocky-linux-9"]], "Install QEMU, libvirt": [[24, "install-qemu-libvirt"]], "Install Cockpit (Optional)": [[24, "install-cockpit-optional"]], "Install Vagrant, vagrant-libvirt plug-in and vagrant-reload plug-in": [[24, "install-vagrant-vagrant-libvirt-plug-in-and-vagrant-reload-plug-in"]], "Vagrant box and Vagrantfile for Warewulf sandbox": [[24, "vagrant-box-and-vagrantfile-for-warewulf-sandbox"]], "Create Rocky Linux 9.2 vagrant box": [[24, "create-rocky-linux-9-2-vagrant-box"]], "Vagrantfile": [[24, "vagrantfile"]], "Spin up head node": [[24, "spin-up-head-node"]], "Spin up compute nodes": [[24, "spin-up-compute-nodes"]], "Development Environment (VirtualBox)": [[25, "development-environment-virtualbox"]], "Documentation": [[26, "documentation"]], "User Guide": [[27, "user-guide"]], "Contents": [[27, null]], "Quickstart": [[27, null]], "Debian 12 Quickstart": [[28, "debian-12-quickstart"]], "Install the basic services": [[28, "install-the-basic-services"]], "Install Warewulf and dependencies": [[28, "install-warewulf-and-dependencies"], [29, "install-warewulf-and-dependencies"], [30, "install-warewulf-and-dependencies"], [31, "install-warewulf-and-dependencies"]], "Configure firewalld": [[28, "configure-firewalld"], [29, "configure-firewalld"], [30, "configure-firewalld"]], "Configure the controller": [[28, "configure-the-controller"], [29, "configure-the-controller"], [30, "configure-the-controller"], [31, "configure-the-controller"]], "Start and enable the Warewulf service": [[28, "start-and-enable-the-warewulf-service"], [29, "start-and-enable-the-warewulf-service"], [30, "start-and-enable-the-warewulf-service"], [31, "start-and-enable-the-warewulf-service"]], "Configure system services automatically": [[28, "configure-system-services-automatically"], [29, "configure-system-services-automatically"], [30, "configure-system-services-automatically"], [31, "configure-system-services-automatically"]], "Pull and build the VNFS container (including the kernel)": [[28, "pull-and-build-the-vnfs-container-including-the-kernel"], [29, "pull-and-build-the-vnfs-container-including-the-kernel"], [30, "pull-and-build-the-vnfs-container-including-the-kernel"]], "Set up the default node profile": [[28, "set-up-the-default-node-profile"], [29, "set-up-the-default-node-profile"], [30, "set-up-the-default-node-profile"], [31, "set-up-the-default-node-profile"]], "Add a node": [[28, "add-a-node"], [29, "add-a-node"], [30, "add-a-node"], [31, "add-a-node"]], "EL8 Quickstart (Rocky Linux and RHEL)": [[29, "el8-quickstart-rocky-linux-and-rhel"]], "EL9 Quickstart (Rocky Linux and RHEL)": [[30, "el9-quickstart-rocky-linux-and-rhel"]], "openSUSE Leap and SLES 15 Quickstart": [[31, "opensuse-leap-and-sles-15-quickstart"]], "Install Warewulf from the open build service": [[31, "install-warewulf-from-the-open-build-service"]], "Pull and build the VNFS container and kernel": [[31, "pull-and-build-the-vnfs-container-and-kernel"]]}, "indexentries": {}}) \ No newline at end of file