-
Notifications
You must be signed in to change notification settings - Fork 27
Add modular RMT documentation with Ansible-based configuration #737
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
4fd4531
14fe540
27fd311
3a48ebb
76c5b1f
34de9f2
f4f3a1b
feb29ee
95c7797
3e9f09a
129c93a
027e5df
589b8d3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| # This file originates from the project https://github.com/openSUSE/doc-kit | ||
| # This file can be edited downstream. | ||
|
|
||
| ## Basics | ||
| MAIN="rmt-installing-configuring.asm.xml" | ||
| SRC_DIR="articles" | ||
| IMG_SRC_DIR="images" | ||
|
|
||
| PROFOS="sles4sap" | ||
| #PROFCONDITION="16.0" | ||
| #PROFCONDITION="suse-product;beta" | ||
| #PROFCONDITION="community-project" | ||
|
|
||
| STYLEROOT="/usr/share/xml/docbook/stylesheet/suse2022-ns" | ||
| FALLBACK_STYLEROOT="/usr/share/xml/docbook/stylesheet/suse-ns" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| # This file originates from the project https://github.com/openSUSE/doc-kit | ||
| # This file can be edited downstream. | ||
|
|
||
| ## Basics | ||
| MAIN="rmt-mirroring-repositories.asm.xml" | ||
| SRC_DIR="articles" | ||
| IMG_SRC_DIR="images" | ||
|
|
||
| ## Profiling | ||
| PROFOS="sles4sap" | ||
| #PROFCONDITION="16.0" | ||
| #PROFARCH="x86_64;zseries;power;aarch64" | ||
|
|
||
| ## stylesheet location | ||
| STYLEROOT="/usr/share/xml/docbook/stylesheet/suse2022-ns" | ||
| FALLBACK_STYLEROOT="/usr/share/xml/docbook/stylesheet/suse2021-ns" | ||
|
|
||
| DOCBOOK5_RNG_URI="urn:x-suse:rng:v2:geekodoc-flat" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| # This file originates from the project https://github.com/openSUSE/doc-kit | ||
| # This file can be edited downstream. | ||
|
|
||
| ## Basics | ||
| MAIN="rmt-installing-configuring.asm.xml" | ||
| SRC_DIR="articles" | ||
| IMG_SRC_DIR="images" | ||
|
|
||
| ## Profiling | ||
| PROFOS="sles" | ||
| #PROFCONDITION="16.0" | ||
| #PROFARCH="x86_64;zseries;power;aarch64" | ||
|
|
||
| DOCBOOK5_RNG_URI="urn:x-suse:rng:v2:geekodoc-flat" | ||
|
|
||
| ## stylesheet location | ||
| STYLEROOT="/usr/share/xml/docbook/stylesheet/suse2022-ns" | ||
| FALLBACK_STYLEROOT="/usr/share/xml/docbook/stylesheet/suse2021-ns" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| # This file originates from the project https://github.com/openSUSE/doc-kit | ||
| # This file can be edited downstream. | ||
|
|
||
| ## Basics | ||
| MAIN="rmt-mirroring-repositories.asm.xml" | ||
| SRC_DIR="articles" | ||
| IMG_SRC_DIR="images" | ||
|
|
||
| ## Profiling | ||
| PROFOS="sles" | ||
| #PROFCONDITION="16.0" | ||
| #PROFARCH="x86_64;zseries;power;aarch64" | ||
|
|
||
| DOCBOOK5_RNG_URI="urn:x-suse:rng:v2:geekodoc-flat" | ||
|
|
||
| ## stylesheet location | ||
| STYLEROOT="/usr/share/xml/docbook/stylesheet/suse2022-ns" | ||
| FALLBACK_STYLEROOT="/usr/share/xml/docbook/stylesheet/suse2021-ns" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,142 @@ | ||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| <!-- file: templates/articles/assembly.xml --> | ||
| <?xml-model href="https://cdn.docbook.org/schema/5.2/rng/assemblyxi.rnc" | ||
| type="application/relax-ng-compact-syntax"?> | ||
| <!DOCTYPE assembly | ||
| [ | ||
| <!ENTITY % entities SYSTEM "../common/generic-entities.ent"> | ||
| %entities; | ||
| ]> | ||
| <!-- refers to legacy doc: https://github.com/SUSE/doc-sle/blob/main/xml/rmt_install.xml --> | ||
| <!-- refer to README.md for file and id naming conventions --> | ||
| <assembly version="5.2" xml:lang="en" | ||
| xmlns:xlink="http://www.w3.org/1999/xlink" | ||
| xmlns:trans="http://docbook.org/ns/transclusion" | ||
| xmlns:its="http://www.w3.org/2005/11/its" | ||
| xmlns="http://docbook.org/ns/docbook"> | ||
| <!-- R E S O U R C E S --> | ||
| <!-- Glue files --> | ||
| <resources> | ||
| <resource href="../glues/rmt-installing-intro.xml" xml:id="_rmt-installing-intro"> | ||
| <description>Introduction to installing RMT</description> | ||
| </resource> | ||
| <resource href="../glues/rmt-installing-more-info.xml" xml:id="_rmt-installing-more-info"> | ||
| <description>For more information</description> | ||
| </resource> | ||
| </resources> | ||
| <!-- References --> | ||
| <resources> | ||
| <resource href="../references/rmt-storage-requirements.xml" xml:id="_rmt-storage-requirements"> | ||
| <description>RMT storage requirements</description> | ||
| </resource> | ||
| <resource href="../references/rmt-configuration-files.xml" xml:id="_rmt-configuration-files"> | ||
| <description>RMT configuration files</description> | ||
| </resource> | ||
| </resources> | ||
| <!-- Tasks --> | ||
| <resources> | ||
| <resource href="../tasks/rmt-installing-during-installation.xml" xml:id="_rmt-installing-during-installation"> | ||
| <description>Installing RMT during system installation</description> | ||
| </resource> | ||
| <resource href="../tasks/rmt-installing-existing-system.xml" xml:id="_rmt-installing-existing-system"> | ||
| <description>Installing RMT on an existing system</description> | ||
| </resource> | ||
| <resource href="../tasks/rmt-deploying-on-kubernetes.xml" xml:id="_rmt-deploying-on-kubernetes"> | ||
| <description>Deploying RMT on Kubernetes</description> | ||
| </resource> | ||
| <resource href="../tasks/rmt-configuring-with-ansible.xml" xml:id="_rmt-configuring-with-ansible"> | ||
| <description>Configuring RMT with Ansible</description> | ||
| </resource> | ||
| <resource href="../tasks/rmt-enabling-slp-announcements.xml" xml:id="_rmt-enabling-slp-announcements"> | ||
| <description>Enabling SLP announcements</description> | ||
| </resource> | ||
| <resource href="../tasks/rmt-accessing-scc-behind-firewall.xml" xml:id="_rmt-accessing-scc-behind-firewall"> | ||
| <description>Accessing SCC from behind a firewall</description> | ||
| </resource> | ||
| <resource href="../tasks/rmt-regenerating-certificates.xml" xml:id="_rmt-regenerating-certificates"> | ||
| <description>Managing TLS/SSL certificates</description> | ||
| </resource> | ||
| </resources> | ||
| <!-- Legal --> | ||
| <resources> | ||
| <resource href="../common/legal.xml" xml:id="_legal"> | ||
| <description>Legal Notice</description> | ||
| </resource> | ||
| <resource href="../common/license_gfdl1.2.xml" xml:id="_gfdl"> | ||
| <description>GNU Free Documentation License</description> | ||
| </resource> | ||
| </resources> | ||
| <!-- S T R U C T U R E --> | ||
| <structure renderas="article" xml:id="rmt-installing-configuring" xml:lang="en"> | ||
| <merge> | ||
| <title>Installing and configuring an RMT server</title> | ||
| <revhistory xml:id="rh-rmt-installing-configuring"> | ||
| <revision><date>2026-07-20</date> | ||
| <revdescription> | ||
| <para> | ||
| Initial version. | ||
| </para> | ||
| </revdescription> | ||
| </revision> | ||
| </revhistory> | ||
| <meta name="maintainer" content="" its:translate="no"/> | ||
| <meta name="architecture" its:translate="no"> | ||
| <phrase>&x86-64;</phrase> | ||
| <phrase>&power;</phrase> | ||
| </meta> | ||
| <meta name="productname" its:translate="no"> | ||
| <productname version="&productnumber;" os="sles;sles4sap">&productname;</productname> | ||
| </meta> | ||
| <meta name="title" its:translate="yes">Install and configure a SUSE RMT server</meta> | ||
| <meta name="description" its:translate="yes">Learn how to install the Repository | ||
| Mirroring Tool and configure it with the Ansible playbook workflow</meta> | ||
| <meta name="social-descr" its:translate="yes">Install and configure an RMT server | ||
| on &suselinux;</meta> | ||
| <meta name="category" its:translate="no"> | ||
| <phrase>Systems Management</phrase> | ||
| </meta> | ||
| <meta name="task" its:translate="no"> | ||
| <phrase>Installation</phrase> | ||
| <phrase>Configuration</phrase> | ||
| </meta> | ||
| <meta name="series" its:translate="no">Products & Solutions</meta> | ||
| <dm:docmanager xmlns:dm="urn:x-suse:ns:docmanager"> | ||
| <dm:bugtracker> | ||
| <dm:url>https://bugzilla.suse.com/enter_bug.cgi</dm:url> | ||
| <dm:component>Documentation</dm:component> | ||
| <dm:product>SUSE Linux Enterprise Server &productnumber;</dm:product> | ||
| <dm:assignee>amrita.sakthivel@suse.com</dm:assignee> | ||
| </dm:bugtracker> | ||
| <dm:translation>yes</dm:translation> | ||
| </dm:docmanager> | ||
| <abstract> | ||
| <para> &rmt; (Repository Mirroring Tool) is a proxy system that mirrors software repositories and registers client machines within a private network. By acting as a local intermediary for &scc;, &rmt; enables administrators to manage package updates and client registrations locally without direct external Internet access for every system, significantly enhancing network security and reducing bandwidth usage.</para> | ||
| <variablelist> | ||
| <varlistentry> | ||
| <term>REQUIREMENTS</term> | ||
| <listitem> | ||
| <itemizedlist> | ||
| <listitem><para>A newly installed &productname; &productnumber; system or &minvm; image to host the &rmt; server. </para></listitem> | ||
| <listitem><para>Valid &scc; organization credentials. </para></listitem> | ||
| <listitem><para>Sufficient local storage space (approximately 1.5 times the size of all enabled repositories). </para></listitem> | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You cover that later, so decide if the proper value should be mentioned here or in the corresponding section. |
||
| </itemizedlist> | ||
| </listitem> | ||
| </varlistentry> | ||
| </variablelist> | ||
| </abstract> | ||
| </merge> | ||
| <module resourceref="_rmt-installing-intro" renderas="section"/> | ||
| <module resourceref="_rmt-storage-requirements" renderas="section"/> | ||
| <module resourceref="_rmt-installing-during-installation" renderas="section"/> | ||
| <module resourceref="_rmt-installing-existing-system" renderas="section"/> | ||
| <module resourceref="_rmt-deploying-on-kubernetes" renderas="section"/> | ||
| <module resourceref="_rmt-configuring-with-ansible" renderas="section"/> | ||
| <module resourceref="_rmt-enabling-slp-announcements" renderas="section"/> | ||
| <module resourceref="_rmt-accessing-scc-behind-firewall" renderas="section"/> | ||
| <module resourceref="_rmt-configuration-files" renderas="section"/> | ||
| <module resourceref="_rmt-regenerating-certificates" renderas="section"/> | ||
| <module resourceref="_rmt-installing-more-info" renderas="section"/> | ||
| <module resourceref="_legal" renderas="section"/> | ||
| <module resourceref="_gfdl" renderas="appendix"/> | ||
| </structure> | ||
| </assembly> | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,131 @@ | ||||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||||
| <!-- file: templates/articles/assembly.xml --> | ||||||
| <?xml-model href="https://cdn.docbook.org/schema/5.2/rng/assemblyxi.rnc" | ||||||
| type="application/relax-ng-compact-syntax"?> | ||||||
| <!DOCTYPE assembly | ||||||
| [ | ||||||
| <!ENTITY % entities SYSTEM "../common/generic-entities.ent"> | ||||||
| %entities; | ||||||
| ]> | ||||||
| <!-- refers to legacy doc: https://github.com/SUSE/doc-sle/blob/main/xml/rmt_mirroring.xml --> | ||||||
| <!-- refer to README.md for file and id naming conventions --> | ||||||
| <assembly version="5.2" xml:lang="en" | ||||||
| xmlns:xlink="http://www.w3.org/1999/xlink" | ||||||
| xmlns:trans="http://docbook.org/ns/transclusion" | ||||||
| xmlns:its="http://www.w3.org/2005/11/its" | ||||||
| xmlns="http://docbook.org/ns/docbook"> | ||||||
| <!-- R E S O U R C E S --> | ||||||
| <!-- Glue files --> | ||||||
| <resources> | ||||||
| <resource href="../glues/rmt-mirroring-intro.xml" xml:id="_rmt-mirroring-intro"> | ||||||
| <description>Introduction to mirroring with RMT</description> | ||||||
| </resource> | ||||||
| <resource href="../glues/rmt-mirroring-more-info.xml" xml:id="_rmt-mirroring-more-info"> | ||||||
| <description>For more information</description> | ||||||
| </resource> | ||||||
| </resources> | ||||||
| <!-- Tasks --> | ||||||
| <resources> | ||||||
| <resource href="../tasks/rmt-mirroring-obtaining-credentials.xml" xml:id="_rmt-mirroring-obtaining-credentials"> | ||||||
| <description>Obtaining mirroring credentials</description> | ||||||
| </resource> | ||||||
| <resource href="../tasks/rmt-mirroring-synchronizing-metadata.xml" xml:id="_rmt-mirroring-synchronizing-metadata"> | ||||||
| <description>Synchronizing repository metadata</description> | ||||||
| </resource> | ||||||
| <resource href="../tasks/rmt-mirroring-packages.xml" xml:id="_rmt-mirroring-packages"> | ||||||
| <description>Mirroring packages</description> | ||||||
| </resource> | ||||||
| <resource href="../tasks/rmt-mirroring-enabling-disabling-repositories.xml" xml:id="_rmt-mirroring-enabling-disabling-repositories"> | ||||||
| <description>Enabling and disabling mirroring of repositories</description> | ||||||
| </resource> | ||||||
| <resource href="../tasks/rmt-mirroring-deleting-data.xml" xml:id="_rmt-mirroring-deleting-data"> | ||||||
| <description>Deleting mirrored data</description> | ||||||
| </resource> | ||||||
| <resource href="../tasks/rmt-mirroring-custom-repositories.xml" xml:id="_rmt-mirroring-custom-repositories"> | ||||||
| <description>Adding custom repositories</description> | ||||||
| </resource> | ||||||
| <resource href="../tasks/rmt-mirroring-exporting-importing.xml" xml:id="_rmt-mirroring-exporting-importing"> | ||||||
| <description>Exporting and importing repositories</description> | ||||||
| </resource> | ||||||
| </resources> | ||||||
| <!-- Legal --> | ||||||
| <resources> | ||||||
| <resource href="../common/legal.xml" xml:id="_legal"> | ||||||
| <description>Legal Notice</description> | ||||||
| </resource> | ||||||
| <resource href="../common/license_gfdl1.2.xml" xml:id="_gfdl"> | ||||||
| <description>GNU Free Documentation License</description> | ||||||
| </resource> | ||||||
| </resources> | ||||||
| <!-- S T R U C T U R E --> | ||||||
| <structure renderas="article" xml:id="rmt-mirroring-repositories" xml:lang="en"> | ||||||
| <merge> | ||||||
| <title>Mirroring repositories on an RMT server</title> | ||||||
| <revhistory xml:id="rh-rmt-mirroring-repositories"> | ||||||
| <revision><date>2026-07-20</date> | ||||||
| <revdescription> | ||||||
| <para> | ||||||
| Initial version. | ||||||
| </para> | ||||||
| </revdescription> | ||||||
| </revision> | ||||||
| </revhistory> | ||||||
| <meta name="maintainer" content="" its:translate="no"/> | ||||||
| <meta name="architecture" its:translate="no"> | ||||||
| <phrase>&x86-64;</phrase> | ||||||
| <phrase>&power;</phrase> | ||||||
| </meta> | ||||||
| <meta name="productname" its:translate="no"> | ||||||
| <productname version="&productnumber;" os="sles;sles4sap">&productname;</productname> | ||||||
| </meta> | ||||||
| <meta name="title" its:translate="yes">Mirror repositories on an RMT server</meta> | ||||||
| <meta name="description" its:translate="yes">Learn how to mirror, synchronize, and manage SUSE and custom repositories on a Repository Mirroring Tool server</meta> | ||||||
| <meta name="social-descr" its:translate="yes">Mirror repositories with RMT</meta> | ||||||
| <meta name="category" its:translate="no"> | ||||||
| <phrase>Systems Management</phrase> | ||||||
| </meta> | ||||||
| <meta name="task" its:translate="no"> | ||||||
| <phrase>Configuration</phrase> | ||||||
| </meta> | ||||||
| <meta name="series" its:translate="no">Products & Solutions</meta> | ||||||
| <dm:docmanager xmlns:dm="urn:x-suse:ns:docmanager"> | ||||||
| <dm:bugtracker> | ||||||
| <dm:url>https://bugzilla.suse.com/enter_bug.cgi</dm:url> | ||||||
| <dm:component>Documentation</dm:component> | ||||||
| <dm:product>SUSE Linux Enterprise Server &productnumber;</dm:product> | ||||||
| <dm:assignee>amrita.sakthivel@suse.com</dm:assignee> | ||||||
| </dm:bugtracker> | ||||||
| <dm:translation>yes</dm:translation> | ||||||
| </dm:docmanager> | ||||||
| <abstract> | ||||||
| <para> | ||||||
| Repository Mirroring Tool (RMT) repository mirroring downloads software packages and metadata from SUSE Customer Center (SCC) or custom sources directly to a local RMT server. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| Mirroring optimizes network bandwidth usage and speeds up updates by serving registered client machines locally, eliminating individual external downloads. | ||||||
| It also enables seamless package transfers to disconnected or air-gapped environments | ||||||
| </para> | ||||||
| <variablelist> | ||||||
| <varlistentry> | ||||||
| <term>REQUIREMENTS</term> | ||||||
| <listitem> | ||||||
| <itemizedlist> | ||||||
| <listitem><para>A running &rmt; server on &productname; &productnumber;, configured with &ansible;.</para></listitem> | ||||||
| <listitem><para>Active &scc; organization credentials.</para></listitem> | ||||||
| </itemizedlist> | ||||||
| </listitem> | ||||||
| </varlistentry> | ||||||
| </variablelist> | ||||||
| </abstract> | ||||||
| </merge> | ||||||
| <module resourceref="_rmt-mirroring-intro" renderas="section"/> | ||||||
| <module resourceref="_rmt-mirroring-obtaining-credentials" renderas="section"/> | ||||||
| <module resourceref="_rmt-mirroring-synchronizing-metadata" renderas="section"/> | ||||||
| <module resourceref="_rmt-mirroring-packages" renderas="section"/> | ||||||
| <module resourceref="_rmt-mirroring-enabling-disabling-repositories" renderas="section"/> | ||||||
| <module resourceref="_rmt-mirroring-deleting-data" renderas="section"/> | ||||||
| <module resourceref="_rmt-mirroring-custom-repositories" renderas="section"/> | ||||||
| <module resourceref="_rmt-mirroring-exporting-importing" renderas="section"/> | ||||||
| <module resourceref="_rmt-mirroring-more-info" renderas="section"/> | ||||||
| <module resourceref="_legal" renderas="section"/> | ||||||
| <module resourceref="_gfdl" renderas="appendix"/> | ||||||
| </structure> | ||||||
| </assembly> | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <!DOCTYPE topic | ||
| [ | ||
| <!ENTITY % entities SYSTEM "../common/generic-entities.ent"> | ||
| %entities; | ||
| ]> | ||
| <!-- refers to legacy doc: https://github.com/SUSE/doc-sle/blob/main/xml/rmt_install.xml --> | ||
| <!-- refer to README.md for file and id naming conventions --> | ||
| <!-- metadata is dealt with on the assembly level --> | ||
| <topic xml:id="rmt-installing-intro" | ||
| role="glue" xml:lang="en" | ||
| xmlns="http://docbook.org/ns/docbook" version="5.2" | ||
| xmlns:its="http://www.w3.org/2005/11/its" | ||
| xmlns:xi="http://www.w3.org/2001/XInclude" | ||
| xmlns:xlink="http://www.w3.org/1999/xlink" | ||
| xmlns:trans="http://docbook.org/ns/transclusion"> | ||
| <info> | ||
| <title>Introduction</title> | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I suggest to rework this section to cover only supported clients as the installation info is needed in the installation sections - here it may be easily skipped. |
||
| <meta name="maintainer" content="" its:translate="no"/> | ||
| </info> | ||
| <para> | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this para is not necessary and can be completely omitted. |
||
| This article describes how to run an &rmt; server on | ||
| &productname; &productnumber;. Install &rmt; directly during the | ||
| installation of &productname; or install it on a running system. After the | ||
| packages are installed, use &ansible; to do an initial configuration. | ||
| </para> | ||
| <para> | ||
| The &rmt; server registers client systems running &slea; 12 and newer, | ||
| including &productname; &productnumber; itself. To run the &rmt; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think it is really needed to point the user to another release. The release number is there from whatever source you come to the article. |
||
| server on &slea; 15 instead, where it is configured with &yast; rather | ||
| than &ansible;, see the | ||
| <link xlink:href="https://documentation.suse.com/sles/15-SP7/single-html/SLES-rmt/">Repository Mirroring Tool Guide for &slsa; 15</link>. | ||
| </para> | ||
| <warning> | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You need this info in the deployment sections. |
||
| <title>&rmt; server conflicts with installation server</title> | ||
| <para> | ||
| Configuring a server to be an &rmt; server installs and configures the | ||
| NGINX Web server, listening on port 80. | ||
| </para> | ||
| <para> | ||
| However, configuring a machine to be an installation server automatically | ||
| installs the Apache Web server and configures it to listen on port 80. | ||
| </para> | ||
| <para> | ||
| Do not try to enable both these functions on the same server. It is not | ||
| possible for a single server to host both simultaneously. | ||
| </para> | ||
| </warning> | ||
| </topic> | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is actually not true as you just need a machine as you can install the RMT during the system installation.