From 9e6919f24a06dc30248af73167533a4a8a557306 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Mon, 31 Jul 2023 17:52:10 +0530 Subject: [PATCH 01/26] Updating known issues Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../BuildingClusters/Authentication.rst | 4 ++-- docs/source/Tables/bmc.csv | 8 ++++++++ docs/source/Tables/mapping.csv | 8 ++++++++ docs/source/Tables/scheduler.csv | 8 ++++++++ docs/source/Tables/snmpwalk.csv | 8 ++++++++ docs/source/Tables/switch-based.csv | 8 ++++++++ docs/source/Troubleshooting/FAQ.rst | 4 ++-- docs/source/Troubleshooting/knownissues.rst | 4 ---- 8 files changed, 44 insertions(+), 8 deletions(-) diff --git a/docs/source/InstallationGuides/BuildingClusters/Authentication.rst b/docs/source/InstallationGuides/BuildingClusters/Authentication.rst index caf78e89c..5dc7d79c9 100644 --- a/docs/source/InstallationGuides/BuildingClusters/Authentication.rst +++ b/docs/source/InstallationGuides/BuildingClusters/Authentication.rst @@ -196,9 +196,9 @@ Once user accounts are created, admins can enable passwordless SSH for users to * If ``enable_omnia_nfs`` is true in ``input/omnia_config.yml``, follow the below steps to configure an NFS share on your LDAP server: - From the manager node: 1. Add the LDAP server IP address to ``/etc/exports``. - 2. Run ``exports -ra`` to enable the NFS configuration. + 2. Run ``exportfs -ra`` to enable the NFS configuration. - From the LDAP server: - 1. Add the required fstab entries in ``/etc/fstab``. + 1. Add the required fstab entries in ``/etc/fstab``. (The corresponding entry will be available on the compute nodes in ``/etc/fstab``) 2. Mount the NFS share using ``mount manager_ip: /home/omnia-share /home/omnia-share``. * If ``enable_omnia_nfs`` is false in ``input/omnia_config.yml``, ensure the user-configured NFS share is mounted on the LDAP server. diff --git a/docs/source/Tables/bmc.csv b/docs/source/Tables/bmc.csv index bf113e78f..db77edda0 100644 --- a/docs/source/Tables/bmc.csv +++ b/docs/source/Tables/bmc.csv @@ -269,3 +269,11 @@ Optional",Absolute path to a local copy of the .iso file containing Mellanox OF ``string`` Optional","Absolute path to local copy of .rpm file containing CUDA packages. The cuda rpm can be downloaded from https://developer.nvidia.com/cuda-downloads. CUDA will be installed post provisioning without any user intervention. Eg: cuda_toolkit_path: ""/root/cuda-repo-rhel8-12-0-local-12.0.0_525.60.13-1.x86_64.rpm""" +"**apptainer_support** + +``boolean`` + +Required","* Indicates whether the apptainer environment is to be configured on compute nodes. +* If ``apptainer_support``: false, apptainer environment won't be configured in compute nodes. +* If ``apptainer_support``: true, apptainer environment will be configured in compute nodes. +* **Default value**: false" diff --git a/docs/source/Tables/mapping.csv b/docs/source/Tables/mapping.csv index 87449ff35..1ca76b8a9 100644 --- a/docs/source/Tables/mapping.csv +++ b/docs/source/Tables/mapping.csv @@ -249,3 +249,11 @@ Optional",Absolute path to a local copy of the .iso file containing Mellanox OF ``string`` Optional","Absolute path to local copy of .rpm file containing CUDA packages. The cuda rpm can be downloaded from https://developer.nvidia.com/cuda-downloads. CUDA will be installed post provisioning without any user intervention. Eg: cuda_toolkit_path: ""/root/cuda-repo-rhel8-12-0-local-12.0.0_525.60.13-1.x86_64.rpm""" +"**apptainer_support** + +``boolean`` + +Required","* Indicates whether the apptainer environment is to be configured on compute nodes. +* If ``apptainer_support``: false, apptainer environment won't be configured in compute nodes. +* If ``apptainer_support``: true, apptainer environment will be configured in compute nodes. +* **Default value**: false" diff --git a/docs/source/Tables/scheduler.csv b/docs/source/Tables/scheduler.csv index 9a99a7924..942244bd9 100644 --- a/docs/source/Tables/scheduler.csv +++ b/docs/source/Tables/scheduler.csv @@ -92,3 +92,11 @@ * If ``enable_omnia_nfs``: false, set this variable as path to parallel file system(NFS/BeeGFS) running in the system. Default value: ""/home/omnia-share""" +"**apptainer_support** + +``boolean`` + +Required","* Indicates whether the apptainer environment is to be configured on compute nodes. +* If ``apptainer_support``: false, apptainer environment won't be configured in compute nodes. +* If ``apptainer_support``: true, apptainer environment will be configured in compute nodes. +* **Default value**: false" diff --git a/docs/source/Tables/snmpwalk.csv b/docs/source/Tables/snmpwalk.csv index 880e1785a..755d743a6 100644 --- a/docs/source/Tables/snmpwalk.csv +++ b/docs/source/Tables/snmpwalk.csv @@ -254,3 +254,11 @@ Optional",Absolute path to a local copy of the .iso file containing Mellanox OF ``string`` Optional","Absolute path to local copy of .rpm file containing CUDA packages. The cuda rpm can be downloaded from https://developer.nvidia.com/cuda-downloads. CUDA will be installed post provisioning without any user intervention. Eg: cuda_toolkit_path: ""/root/cuda-repo-rhel8-12-0-local-12.0.0_525.60.13-1.x86_64.rpm""" +"**apptainer_support** + +``boolean`` + +Required","* Indicates whether the apptainer environment is to be configured on compute nodes. +* If ``apptainer_support``: false, apptainer environment won't be configured in compute nodes. +* If ``apptainer_support``: true, apptainer environment will be configured in compute nodes. +* **Default value**: false" diff --git a/docs/source/Tables/switch-based.csv b/docs/source/Tables/switch-based.csv index 66bf82465..fa60c9765 100644 --- a/docs/source/Tables/switch-based.csv +++ b/docs/source/Tables/switch-based.csv @@ -292,3 +292,11 @@ Optional",Absolute path to a local copy of the .iso file containing Mellanox OF ``string`` Optional","Absolute path to local copy of .rpm file containing CUDA packages. The cuda rpm can be downloaded from https://developer.nvidia.com/cuda-downloads. CUDA will be installed post provisioning without any user intervention. Eg: cuda_toolkit_path: ""/root/cuda-repo-rhel8-12-0-local-12.0.0_525.60.13-1.x86_64.rpm""" +"**apptainer_support** + +``boolean`` + +Required","* Indicates whether the apptainer environment is to be configured on compute nodes. +* If ``apptainer_support``: false, apptainer environment won't be configured in compute nodes. +* If ``apptainer_support``: true, apptainer environment will be configured in compute nodes. +* **Default value**: false" diff --git a/docs/source/Troubleshooting/FAQ.rst b/docs/source/Troubleshooting/FAQ.rst index ced8ad2a3..4902cd079 100644 --- a/docs/source/Troubleshooting/FAQ.rst +++ b/docs/source/Troubleshooting/FAQ.rst @@ -104,9 +104,9 @@ Re-run the playbook whose execution failed once the issue is resolved. If ``enable_omnia_nfs`` is true in ``input/omnia_config.yml``, follow the below steps to configure an NFS share on your LDAP server: - From the manager node: 1. Add the LDAP server IP address to ``/etc/exports``. - 2. Run ``exports -ra`` to enable the NFS configuration. + 2. Run ``exportfs -ra`` to enable the NFS configuration. - From the LDAP server: - 1. Add the required fstab entries in ``/etc/fstab`` + 1. Add the required fstab entries in ``/etc/fstab`` (The corresponding entry will be available on the compute nodes in ``/etc/fstab``) 2. Mount the NFS share using ``mount manager_ip: /home/omnia-share /home/omnia-share`` ⦾ **Why does the 'Import SCP from a local path' task fail during idrac.yml?** diff --git a/docs/source/Troubleshooting/knownissues.rst b/docs/source/Troubleshooting/knownissues.rst index a2498fd92..63bb19c3a 100644 --- a/docs/source/Troubleshooting/knownissues.rst +++ b/docs/source/Troubleshooting/knownissues.rst @@ -478,7 +478,3 @@ Reboot the NFS server (external to the cluster) to bring up the services again: systemctl enable nfs-server systemctl restart nfs-server - - - - From 26738e8d14ca6cc4996a9293762392a9e4133e3f Mon Sep 17 00:00:00 2001 From: cgoveas Date: Mon, 31 Jul 2023 17:56:59 +0530 Subject: [PATCH 02/26] Updating known issues Signed-off-by: cgoveas Signed-off-by: cgoveas --- docs/source/Tables/bmc.csv | 8 -------- docs/source/Tables/mapping.csv | 8 -------- docs/source/Tables/scheduler.csv | 8 -------- docs/source/Tables/snmpwalk.csv | 8 -------- docs/source/Tables/switch-based.csv | 8 -------- 5 files changed, 40 deletions(-) diff --git a/docs/source/Tables/bmc.csv b/docs/source/Tables/bmc.csv index db77edda0..bf113e78f 100644 --- a/docs/source/Tables/bmc.csv +++ b/docs/source/Tables/bmc.csv @@ -269,11 +269,3 @@ Optional",Absolute path to a local copy of the .iso file containing Mellanox OF ``string`` Optional","Absolute path to local copy of .rpm file containing CUDA packages. The cuda rpm can be downloaded from https://developer.nvidia.com/cuda-downloads. CUDA will be installed post provisioning without any user intervention. Eg: cuda_toolkit_path: ""/root/cuda-repo-rhel8-12-0-local-12.0.0_525.60.13-1.x86_64.rpm""" -"**apptainer_support** - -``boolean`` - -Required","* Indicates whether the apptainer environment is to be configured on compute nodes. -* If ``apptainer_support``: false, apptainer environment won't be configured in compute nodes. -* If ``apptainer_support``: true, apptainer environment will be configured in compute nodes. -* **Default value**: false" diff --git a/docs/source/Tables/mapping.csv b/docs/source/Tables/mapping.csv index 1ca76b8a9..87449ff35 100644 --- a/docs/source/Tables/mapping.csv +++ b/docs/source/Tables/mapping.csv @@ -249,11 +249,3 @@ Optional",Absolute path to a local copy of the .iso file containing Mellanox OF ``string`` Optional","Absolute path to local copy of .rpm file containing CUDA packages. The cuda rpm can be downloaded from https://developer.nvidia.com/cuda-downloads. CUDA will be installed post provisioning without any user intervention. Eg: cuda_toolkit_path: ""/root/cuda-repo-rhel8-12-0-local-12.0.0_525.60.13-1.x86_64.rpm""" -"**apptainer_support** - -``boolean`` - -Required","* Indicates whether the apptainer environment is to be configured on compute nodes. -* If ``apptainer_support``: false, apptainer environment won't be configured in compute nodes. -* If ``apptainer_support``: true, apptainer environment will be configured in compute nodes. -* **Default value**: false" diff --git a/docs/source/Tables/scheduler.csv b/docs/source/Tables/scheduler.csv index 942244bd9..9a99a7924 100644 --- a/docs/source/Tables/scheduler.csv +++ b/docs/source/Tables/scheduler.csv @@ -92,11 +92,3 @@ * If ``enable_omnia_nfs``: false, set this variable as path to parallel file system(NFS/BeeGFS) running in the system. Default value: ""/home/omnia-share""" -"**apptainer_support** - -``boolean`` - -Required","* Indicates whether the apptainer environment is to be configured on compute nodes. -* If ``apptainer_support``: false, apptainer environment won't be configured in compute nodes. -* If ``apptainer_support``: true, apptainer environment will be configured in compute nodes. -* **Default value**: false" diff --git a/docs/source/Tables/snmpwalk.csv b/docs/source/Tables/snmpwalk.csv index 755d743a6..880e1785a 100644 --- a/docs/source/Tables/snmpwalk.csv +++ b/docs/source/Tables/snmpwalk.csv @@ -254,11 +254,3 @@ Optional",Absolute path to a local copy of the .iso file containing Mellanox OF ``string`` Optional","Absolute path to local copy of .rpm file containing CUDA packages. The cuda rpm can be downloaded from https://developer.nvidia.com/cuda-downloads. CUDA will be installed post provisioning without any user intervention. Eg: cuda_toolkit_path: ""/root/cuda-repo-rhel8-12-0-local-12.0.0_525.60.13-1.x86_64.rpm""" -"**apptainer_support** - -``boolean`` - -Required","* Indicates whether the apptainer environment is to be configured on compute nodes. -* If ``apptainer_support``: false, apptainer environment won't be configured in compute nodes. -* If ``apptainer_support``: true, apptainer environment will be configured in compute nodes. -* **Default value**: false" diff --git a/docs/source/Tables/switch-based.csv b/docs/source/Tables/switch-based.csv index fa60c9765..66bf82465 100644 --- a/docs/source/Tables/switch-based.csv +++ b/docs/source/Tables/switch-based.csv @@ -292,11 +292,3 @@ Optional",Absolute path to a local copy of the .iso file containing Mellanox OF ``string`` Optional","Absolute path to local copy of .rpm file containing CUDA packages. The cuda rpm can be downloaded from https://developer.nvidia.com/cuda-downloads. CUDA will be installed post provisioning without any user intervention. Eg: cuda_toolkit_path: ""/root/cuda-repo-rhel8-12-0-local-12.0.0_525.60.13-1.x86_64.rpm""" -"**apptainer_support** - -``boolean`` - -Required","* Indicates whether the apptainer environment is to be configured on compute nodes. -* If ``apptainer_support``: false, apptainer environment won't be configured in compute nodes. -* If ``apptainer_support``: true, apptainer environment will be configured in compute nodes. -* **Default value**: false" From 96a1c8002b0135cce507ade74b01cf689d7fd8d3 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Tue, 1 Aug 2023 11:27:06 +0530 Subject: [PATCH 03/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../DiscoveryMechanisms/bmc.rst | 4 +- .../DiscoveryMechanisms/mappingfile.rst | 1 + .../DiscoveryMechanisms/snmp.rst | 1 + .../DiscoveryMechanisms/switch-based.rst | 4 +- .../provisionprereqs.rst | 5 ++ .../SupportMatrix/OperatingSystems/Rocky.rst | 53 ++---------------- docs/source/Tables/bmc.csv | 5 +- docs/source/Tables/mapping.csv | 5 +- docs/source/Tables/snmpwalk.csv | 5 +- .../images/ControlPlane_DedicatedNIC.png | Bin 0 -> 40469 bytes 10 files changed, 31 insertions(+), 52 deletions(-) create mode 100644 docs/source/images/ControlPlane_DedicatedNIC.png diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst index 413aaa096..dae667fdd 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst @@ -39,7 +39,9 @@ For automatic provisioning of servers and discovery, the BMC method can be used. The following parameters need to be populated in ``input/provision_config.yml`` to discover target nodes using BMC. -.. caution:: Do not remove or comment any lines in the ``input/provision_config.yml`` file. +.. caution:: +* Do not remove or comment any lines in the ``input/provision_config.yml`` file. +* Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. .. csv-table:: Parameters :file: ../../../Tables/bmc.csv diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst index 671578a01..f2b56486e 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst @@ -18,6 +18,7 @@ The following parameters need to be populated in ``input/provision_config.yml`` .. caution:: * ``admin_nic_subnet``, ``ib_nic_subnet`` and ``bmc_nic_subnet`` should have the same subnet mask (Omnia only supports /16 subnet masks currently). * Do not remove or comment any lines in the ``input/provision_config.yml`` file. + * Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. .. csv-table:: Parameters :file: ../../../Tables/mapping.csv diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst index e8fa438a5..8696156b2 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst @@ -21,6 +21,7 @@ Use ``show snmp community`` to verify your changes. * Target servers with LOM architecture is not supported. * Do not remove or comment any lines in the ``input/provision_config.yml`` file. * ``admin_nic_subnet``, ``ib_nic_subnet`` and ``bmc_nic_subnet`` should have the same subnet mask (Omnia only supports /16 subnet masks currently). + * Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. .. csv-table:: Parameters diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst index 713c28e3d..ac09840dd 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst @@ -52,7 +52,9 @@ switch_based The following parameters need to be populated in ``input/provision_config.yml`` to discover target nodes using a mapping file. -.. caution:: Do not remove or comment any lines in the ``input/provision_config.yml`` file. +.. caution:: +* Do not remove or comment any lines in the ``input/provision_config.yml`` file. +* Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. .. csv-table:: Parameters :file: ../../../Tables/switch-based.csv diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst index 121805dca..01016b9f2 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst @@ -5,6 +5,9 @@ Before you run the provision tool * Set the IP address of the control plane with a /16 subnet mask. The control plane NIC connected to remote servers (through the switch) should be configured with two IPs (BMC IP and admin IP) in a shared LOM or hybrid set up. In the case dedicated network topology, a single IP (admin IP) is required. .. image:: ../../images/ControlPlaneNic.png + :name: LOM NIC setup +.. image:: ../../images/ControlPlane_DedicatedNIC + :name: Dedicated NIC setup * Set the hostname of the control plane using the ``hostname``. ``domain name`` format. @@ -20,6 +23,8 @@ Before you run the provision tool 2. `RHEL 8.x `_ +.. caution:: Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. + .. note:: Ensure the ISO provided has downloaded seamlessly (No corruption). Verify the SHA checksum/ download size of the ISO file before provisioning to avoid future failures. Note the compatibility between cluster OS and control plane OS below: diff --git a/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst b/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst index b7088fbe9..0d17d2fa4 100644 --- a/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst +++ b/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst @@ -1,16 +1,18 @@ Rocky ===== +.. caution:: Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. + +------------+---------------+---------------+ | OS Version | Control Plane | Compute Nodes | +============+===============+===============+ -| 8.4 | Yes | Yes | +| 8.4 | Yes | No | +------------+---------------+---------------+ -| 8.5 | Yes | Yes | +| 8.5 | Yes | No | +------------+---------------+---------------+ -| 8.6 | Yes | Yes | +| 8.6 | Yes | No | +------------+---------------+---------------+ -| 8.7 | Yes | Yes | +| 8.7 | Yes | No | +------------+---------------+---------------+ | 8.8 | Yes | Yes | +------------+---------------+---------------+ @@ -19,49 +21,6 @@ Rocky * Always deploy the DVD (Full) Edition of the OS on Compute Nodes. * AMD ROCm driver installation is not supported by Omnia on Rocky compute nodes. -**BeeGFS client support** - - -+-----------------------------------------+----------------+ -| Rocky OS version | BeeGFS version | -+=========================================+================+ -| Rocky Linux 8.4: no OFED, OFED 5.3, 5.4 | 7.3.2 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.5: no OFED, OFED 5.5 | 7.3.2 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.6: no OFED, OFED 5.6 | 7.3.2 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.4: no OFED, OFED 5.3, 5.4 | 7.3.1 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.5: no OFED, OFED 5.5 | 7.3.1 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.6: no OFED, OFED 5.6 | 7.3.1 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.4: no OFED, OFED 5.3, 5.4 | 7.3.0 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.5: no OFED, OFED 5.5 | 7.3.0 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.4: no OFED, OFED 5.3, 5.4 | 7.2.8 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.5: no OFED, OFED 5.5 | 7.2.8 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.6: no OFED, OFED 5.6 | 7.2.8 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.4: no OFED, OFED 5.3, 5.4 | 7.2.7 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.5: no OFED, OFED 5.5 | 7.2.7 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.6: no OFED, OFED 5.6 | 7.2.7 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.5: no OFED, OFED 5.5 | 7.2.6 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.6: no OFED, OFED 5.6 | 7.2.6 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.4: no OFED, OFED 5.3, 5.4 | 7.2.5 | -+-----------------------------------------+----------------+ -| Rocky Linux 8.4: no OFED, OFED 5.3, 5.4 | 7.2.4 | -+-----------------------------------------+----------------+ - diff --git a/docs/source/Tables/bmc.csv b/docs/source/Tables/bmc.csv index bf113e78f..53a9d1319 100644 --- a/docs/source/Tables/bmc.csv +++ b/docs/source/Tables/bmc.csv @@ -30,7 +30,10 @@ Required","The operating system to be provisioned on target nodes in the cluster Choices: * ``rhel`` <-default -* ``rocky``" +* ``rocky`` + +.. caution:: Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. +" "**provision_os_version** ``string`` diff --git a/docs/source/Tables/mapping.csv b/docs/source/Tables/mapping.csv index 87449ff35..63a979125 100644 --- a/docs/source/Tables/mapping.csv +++ b/docs/source/Tables/mapping.csv @@ -30,7 +30,10 @@ Required","The operating system to be provisioned on target nodes in the cluster Choices: * ``rhel`` <-default -* ``rocky``" +* ``rocky`` + +.. caution:: Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. +" "**provision_os_version** ``string`` diff --git a/docs/source/Tables/snmpwalk.csv b/docs/source/Tables/snmpwalk.csv index 880e1785a..e20db77ab 100644 --- a/docs/source/Tables/snmpwalk.csv +++ b/docs/source/Tables/snmpwalk.csv @@ -30,7 +30,10 @@ Required","The operating system to be provisioned on target nodes in the cluster Choices: * ``rhel`` <-default -* ``rocky``" +* ``rocky`` + +.. caution:: Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. +" "**provision_os_version** ``string`` diff --git a/docs/source/images/ControlPlane_DedicatedNIC.png b/docs/source/images/ControlPlane_DedicatedNIC.png new file mode 100644 index 0000000000000000000000000000000000000000..a185d493337fafd1c1a02e612f27c1e7ff224d81 GIT binary patch literal 40469 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 literal 0 HcmV?d00001 From 505de7b1d979333887810d5ce41b6088526dcd48 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Tue, 1 Aug 2023 11:41:12 +0530 Subject: [PATCH 04/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../InstallingProvisionTool/DiscoveryMechanisms/bmc.rst | 3 ++- .../DiscoveryMechanisms/mappingfile.rst | 3 ++- .../InstallingProvisionTool/DiscoveryMechanisms/snmp.rst | 3 ++- .../DiscoveryMechanisms/switch-based.rst | 3 ++- .../InstallingProvisionTool/provisionprereqs.rst | 3 ++- .../Overview/SupportMatrix/OperatingSystems/Rocky.rst | 3 ++- docs/source/Tables/bmc.csv | 3 ++- docs/source/Tables/mapping.csv | 3 ++- docs/source/Tables/snmpwalk.csv | 3 ++- docs/source/Troubleshooting/knownissues.rst | 6 ++++++ 10 files changed, 24 insertions(+), 9 deletions(-) diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst index dae667fdd..0d68b7fc7 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst @@ -41,7 +41,8 @@ The following parameters need to be populated in ``input/provision_config.yml`` .. caution:: * Do not remove or comment any lines in the ``input/provision_config.yml`` file. -* Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. +* THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. + .. csv-table:: Parameters :file: ../../../Tables/bmc.csv diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst index f2b56486e..56ec99881 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst @@ -18,7 +18,8 @@ The following parameters need to be populated in ``input/provision_config.yml`` .. caution:: * ``admin_nic_subnet``, ``ib_nic_subnet`` and ``bmc_nic_subnet`` should have the same subnet mask (Omnia only supports /16 subnet masks currently). * Do not remove or comment any lines in the ``input/provision_config.yml`` file. - * Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. + * THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. + .. csv-table:: Parameters :file: ../../../Tables/mapping.csv diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst index 8696156b2..bf0ac98b3 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst @@ -21,7 +21,8 @@ Use ``show snmp community`` to verify your changes. * Target servers with LOM architecture is not supported. * Do not remove or comment any lines in the ``input/provision_config.yml`` file. * ``admin_nic_subnet``, ``ib_nic_subnet`` and ``bmc_nic_subnet`` should have the same subnet mask (Omnia only supports /16 subnet masks currently). - * Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. + * THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. + .. csv-table:: Parameters diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst index ac09840dd..00fcf7e7e 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst @@ -54,7 +54,8 @@ The following parameters need to be populated in ``input/provision_config.yml`` .. caution:: * Do not remove or comment any lines in the ``input/provision_config.yml`` file. -* Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. +* THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. + .. csv-table:: Parameters :file: ../../../Tables/switch-based.csv diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst index 01016b9f2..de7fb94cb 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst @@ -23,7 +23,8 @@ Before you run the provision tool 2. `RHEL 8.x `_ -.. caution:: Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. +.. caution:: THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. + .. note:: Ensure the ISO provided has downloaded seamlessly (No corruption). Verify the SHA checksum/ download size of the ISO file before provisioning to avoid future failures. diff --git a/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst b/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst index 0d17d2fa4..2ae09cb6c 100644 --- a/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst +++ b/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst @@ -1,7 +1,8 @@ Rocky ===== -.. caution:: Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. +.. caution:: THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. + +------------+---------------+---------------+ | OS Version | Control Plane | Compute Nodes | diff --git a/docs/source/Tables/bmc.csv b/docs/source/Tables/bmc.csv index 53a9d1319..45ffcb900 100644 --- a/docs/source/Tables/bmc.csv +++ b/docs/source/Tables/bmc.csv @@ -32,7 +32,8 @@ Choices: * ``rhel`` <-default * ``rocky`` -.. caution:: Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. +.. caution:: THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. + " "**provision_os_version** diff --git a/docs/source/Tables/mapping.csv b/docs/source/Tables/mapping.csv index 63a979125..40eb42d74 100644 --- a/docs/source/Tables/mapping.csv +++ b/docs/source/Tables/mapping.csv @@ -32,7 +32,8 @@ Choices: * ``rhel`` <-default * ``rocky`` -.. caution:: Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. +.. caution:: THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. + " "**provision_os_version** diff --git a/docs/source/Tables/snmpwalk.csv b/docs/source/Tables/snmpwalk.csv index e20db77ab..f8c3b4e71 100644 --- a/docs/source/Tables/snmpwalk.csv +++ b/docs/source/Tables/snmpwalk.csv @@ -32,7 +32,8 @@ Choices: * ``rhel`` <-default * ``rocky`` -.. caution:: Irrespective of the Rocky OS ISO, provision OS version or any other input, all Rocky compute nodes will be upgraded to run the latest version of Rocky available. +.. caution:: THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. + " "**provision_os_version** diff --git a/docs/source/Troubleshooting/knownissues.rst b/docs/source/Troubleshooting/knownissues.rst index 63bb19c3a..94dfbeed6 100644 --- a/docs/source/Troubleshooting/knownissues.rst +++ b/docs/source/Troubleshooting/knownissues.rst @@ -17,6 +17,12 @@ Omnia does not maintain any order when assigning hostnames to target nodes. **Resolution**: This will be addressed in a later release. +⦾ **Why does the task Assign admin nic IP fail during provision.yml with 2 error messages?** + +**Potential Cause:** Omnia validates the admin nic IP on the control plane. If the user has not assigned an admin nic IP in case of dedicated network interface type, an error message is returned. There is a parsing logic that is being applied on the blank IP and hence, the error displays twice. + +**Resolution**: Ensure a control plane IP is assigned to the admin NIC. + ⦾ **Kubernetes pods on the manager node are in CreateContainerConfigError and Calico Pods are in CrashLoopBackoff error after running omnia.yml.** **Potential Cause:** From 1b85d9de8ae96c0bbe02cfc3248ce6a49aeab158 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Tue, 1 Aug 2023 11:55:55 +0530 Subject: [PATCH 05/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../BuildingClusters/installscheduler.rst | 8 +- .../BuildingClusters/schedulerinputparams.rst | 144 +++++++++++++++++- docs/source/Roles/Storage/index.rst | 32 ++-- 3 files changed, 165 insertions(+), 19 deletions(-) diff --git a/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst b/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst index ca855d45d..2e1ace41c 100644 --- a/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst +++ b/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst @@ -14,7 +14,13 @@ Building clusters * Omnia creates a log file which is available at: ``/var/log/omnia.log``. * If only Slurm is being installed on the cluster, docker credentials are not required. -3. To run ``omnia.yml``: :: + +3. ``omnia.yml`` is a wrapper playbook comprising of: + i. ``security.yml``: This playbook sets up centralized authentication (LDAP/FreeIPA) on the cluster. For more information, `click here. `_ + ii. ``scheduler.yml``: This playbook sets up job schedulers (Slurm or Kuberenetes) on the cluster. + iii. ``storage.yml``: This playbook sets up storage tools like `BeeGFS `_ and `NFS `_. + +To run ``omnia.yml``: :: ansible-playbook omnia.yml -i inventory diff --git a/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst b/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst index 31c6b600a..e3061bfe4 100644 --- a/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst +++ b/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst @@ -1,15 +1,155 @@ Input parameters for the cluster ------------------------------------- -These parameters are located in ``input/omnia_config.yml``. +These parameters are located in ``input/omnia_config.yml``, ``input/security_config.yml`` and [optional] ``input/storage_config.yml``. -.. caution:: Do not remove or comment any lines in the ``input/omnia_config.yml`` file. +.. caution:: Do not remove or comment any lines in the ``input/omnia_config.yml``, ``input/security_config.yml`` and [optional] ``input/storage_config.yml`` file. .. csv-table:: Parameters :file: ../../Tables/scheduler.csv :header-rows: 1 :keepspace: ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Parameter | Details | ++============================+=================================================================================================================================================================================================================================================================+ +| freeipa_required | Boolean indicating whether FreeIPA is required or not. | +| ``boolean`` | | +| Optional | Choices: | +| | | +| | * ``true`` <- Default | +| | * ``false`` | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| realm_name | Sets the intended realm name. | +| ``string`` | | +| Optional | **Default values**: ``OMNIA.TEST`` | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| directory_manager_password | Password authenticating admin level access to the Directory for system management tasks. It will be added to the instance of directory server created for IPA.Required Length: 8 characters. The password must not contain -,, ‘,” | +| ``string`` | | +| Optional | | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| kerberos_admin_password | “admin” user password for the IPA server on RockyOS. | +| ``string`` | | +| Optional | | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ldap_required | Boolean indicating whether ldap client is required or not. | +| ``boolean`` | | +| Optional | Choices: | +| | | +| | * ``false`` <- Default | +| | * ``true`` | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| domain_name | Sets the intended domain name. | +| ``string`` | | +| Optional | **Default values**: ``omnia.test`` | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ldap_server_ip | LDAP server IP. Required if ``ldap_required`` is true. There should be an explicit LDAP server running on this IP. | +| ``string`` | | +| Optional | | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ldap_connection_type | For a TLS connection, provide a valid certification path. For an SSL connection, ensure port 636 is open. | +| ``string`` | | +| Optional | **Default values**: ``TLS`` | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ldap_ca_cert_path | This variable accepts Server Certificate Path. Make sure certificate is present in the path provided. The certificate should have .pem or .crt extension. This variable is mandatory if connection type is TLS. | +| ``string`` | | +| Optional | **Default values**: ``/etc/openldap/certs/omnialdap.pem`` | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| user_home_dir | This variable accepts the user home directory path for ldap configuration. If nfs mount is created for user home, make sure you provide the LDAP users mount home directory path. | +| ``string`` | | +| Optional | **Default values**: ``/home`` | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ldap_bind_username | If LDAP server is configured with bind dn then bind dn user to be provided. If this value is not provided (when bind is configured in server) then ldap authentication fails. Omnia does not validate this input. Ensure that it is valid and proper. | +| ``string`` | | +| Optional | **Default values**: ``admin`` | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ldap_bind_password | If LDAP server is configured with bind dn then bind dn password to be provided. If this value is not provided (when bind is configured in server) then ldap authentication fails. Omnia does not validate this input. Ensure that it is valid and proper. | +| ``string`` | | +| Optional | | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| enable_secure_login_node | Boolean value deciding whether security features are enabled on the Login Node. | +| ``boolean`` | | +| Optional | Choices: | +| | | +| | * ``false`` <- Default | +| | * ``true`` | ++----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Name | Details | ++=================================+======================================================================================================================================================================================================================================================+ +| nfs_client_params | If NFS client services are to be deployed, enter the configuration required here in JSON format. The server_ip provided should have an explicit NFS server running. If left blank, no NFS configuration takes place. Possible values include: | +| ``JSON list`` | 1. Single NFS file system: A single filesystem from a single NFS server is mounted. | +| Optional | | +| | Sample value: ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/share”, client_share_path: “/mnt/client”, client_mount_options: “nosuid,rw,sync,hard,intr” }`` | +| | 2. Multiple Mount NFS file system: Multiple filesystems from a single NFS server are mounted. | +| | Sample values: | +| | ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/server1”, client_share_path: “/mnt/client1”, client_mount_options: “nosuid,rw,sync,hard,intr” }`` | +| | ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/server2”, client_share_path: “/mnt/client2”, client_mount_options: “nosuid,rw,sync,hard,intr” }`` | +| | 3. Multiple NFS file systems: Multiple filesystems are mounted from multiple servers. | +| | Sample Values: ``- { server_ip: zz.zz.zz.zz, server_share_path: “/mnt/share1”, client_share_path: “/mnt/client1”, client_mount_options: “nosuid,rw,sync,hard,intr”}`` | +| | ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/share2”, client_share_path: “/mnt/client2”, client_mount_options: “nosuid,rw,sync,hard,intr”}`` | +| | ``- { server_ip: yy.yy.yy.yy, server_share_path: “/mnt/share3”, client_share_path: “/mnt/client3”, client_mount_options: “nosuid,rw,sync,hard,intr”}`` | +| | | +| | | +| | **Default value**: ``{ server_ip: , server_share_path: , client_share_path: , client_mount_options: }`` | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| beegfs_support | This variable is used to install beegfs-client on compute and manager nodes | +| ``boolean`` | | +| Optional | Choices: | +| | | +| | * ``false`` <- Default | +| | | +| | * ``true`` | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| beegfs_rdma_support | This variable is used if user has RDMA-capable network hardware (e.g., InfiniBand) | +| ``boolean`` | | +| Optional | Choices: | +| | | +| | * ``false`` <- Default | +| | | +| | * ``true`` | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| beegfs_ofed_kernel_modules_path | The path where separate OFED kernel modules are installed. | +| ``string`` | | +| Optional | **Default value**: ``"/usr/src/ofa_kernel/default/include"`` | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| beegfs_mgmt_server | BeeGFS management server IP. Note: The provided IP should have an explicit BeeGFS management server running . | +| ``string`` | | +| Required | | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| beegfs_mounts | Beegfs-client file system mount location. If ``storage_yml`` is being used to change the BeeGFS mounts location, set beegfs_unmount_client to true | +| ``string`` | **Default value**: "/mnt/beegfs" | +| Optional | | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| beegfs_unmount_client | Changing this value to true will unmount running instance of BeeGFS client and should only be used when decommisioning BeeGFS, changing the mount location or changing the BeeGFS version. | +| ``boolean`` | | +| Optional | Choices: | +| | | +| | * ``false`` <- Default | +| | | +| | * ``true`` | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| beegfs_client_version | Beegfs client version needed on compute and manager nodes. | +| ``string`` | | +| Optional | **Default value**: 7.2.6 | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| beegfs_version_change | Use this variable to change the BeeGFS version on the target nodes. | +| ``boolean`` | | +| Optional | Choices: | +| | | +| | * ``false`` <- Default | +| | | +| | * ``true`` | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| beegfs_secret_storage_filepath | * The filepath (including the filename) where the ``connauthfile`` is placed. | +| ``string`` | * Required for Beegfs version >= 7.2.7 | +| Required | | +| | | +| | **Default values**: ``/home/connauthfile`` | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + .. note:: The ``input/omnia_config.yml`` file is encrypted on the first run of the provision tool: diff --git a/docs/source/Roles/Storage/index.rst b/docs/source/Roles/Storage/index.rst index 314797dbe..58ebc08bd 100644 --- a/docs/source/Roles/Storage/index.rst +++ b/docs/source/Roles/Storage/index.rst @@ -8,6 +8,22 @@ First, enter all required parameters in ``input/storage_config.yml`` +---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Details | +=================================+======================================================================================================================================================================================================================================================+ +| nfs_client_params | If NFS client services are to be deployed, enter the configuration required here in JSON format. The server_ip provided should have an explicit NFS server running. If left blank, no NFS configuration takes place. Possible values include: | +| ``JSON list`` | 1. Single NFS file system: A single filesystem from a single NFS server is mounted. | +| Optional | | +| | Sample value: ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/share”, client_share_path: “/mnt/client”, client_mount_options: “nosuid,rw,sync,hard,intr” }`` | +| | 2. Multiple Mount NFS file system: Multiple filesystems from a single NFS server are mounted. | +| | Sample values: | +| | ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/server1”, client_share_path: “/mnt/client1”, client_mount_options: “nosuid,rw,sync,hard,intr” }`` | +| | ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/server2”, client_share_path: “/mnt/client2”, client_mount_options: “nosuid,rw,sync,hard,intr” }`` | +| | 3. Multiple NFS file systems: Multiple filesystems are mounted from multiple servers. | +| | Sample Values: ``- { server_ip: zz.zz.zz.zz, server_share_path: “/mnt/share1”, client_share_path: “/mnt/client1”, client_mount_options: “nosuid,rw,sync,hard,intr”}`` | +| | ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/share2”, client_share_path: “/mnt/client2”, client_mount_options: “nosuid,rw,sync,hard,intr”}`` | +| | ``- { server_ip: yy.yy.yy.yy, server_share_path: “/mnt/share3”, client_share_path: “/mnt/client3”, client_mount_options: “nosuid,rw,sync,hard,intr”}`` | +| | | +| | | +| | **Default value**: ``{ server_ip: , server_share_path: , client_share_path: , client_mount_options: }`` | ++---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | beegfs_support | This variable is used to install beegfs-client on compute and manager nodes | | ``boolean`` | | | Optional | Choices: | @@ -56,22 +72,6 @@ First, enter all required parameters in ``input/storage_config.yml`` | | | | | * ``true`` | +---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| nfs_client_params | If NFS client services are to be deployed, enter the configuration required here in JSON format. The server_ip provided should have an explicit NFS server running. If left blank, no NFS configuration takes place. Possible values include: | -| ``JSON list`` | 1. Single NFS file system: A single filesystem from a single NFS server is mounted. | -| Optional | | -| | Sample value: ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/share”, client_share_path: “/mnt/client”, client_mount_options: “nosuid,rw,sync,hard,intr” }`` | -| | 2. Multiple Mount NFS file system: Multiple filesystems from a single NFS server are mounted. | -| | Sample values: | -| | ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/server1”, client_share_path: “/mnt/client1”, client_mount_options: “nosuid,rw,sync,hard,intr” }`` | -| | ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/server2”, client_share_path: “/mnt/client2”, client_mount_options: “nosuid,rw,sync,hard,intr” }`` | -| | 3. Multiple NFS file systems: Multiple filesystems are mounted from multiple servers. | -| | Sample Values: ``- { server_ip: zz.zz.zz.zz, server_share_path: “/mnt/share1”, client_share_path: “/mnt/client1”, client_mount_options: “nosuid,rw,sync,hard,intr”}`` | -| | ``- { server_ip: xx.xx.xx.xx, server_share_path: “/mnt/share2”, client_share_path: “/mnt/client2”, client_mount_options: “nosuid,rw,sync,hard,intr”}`` | -| | ``- { server_ip: yy.yy.yy.yy, server_share_path: “/mnt/share3”, client_share_path: “/mnt/client3”, client_mount_options: “nosuid,rw,sync,hard,intr”}`` | -| | | -| | | -| | **Default value**: ``{ server_ip: , server_share_path: , client_share_path: , client_mount_options: }`` | -+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | beegfs_secret_storage_filepath | * The filepath (including the filename) where the ``connauthfile`` is placed. | | ``string`` | * Required for Beegfs version >= 7.2.7 | | Required | | From 7d021fb9e0d233362bbabfb27a39ad6fb6e1bb62 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Tue, 1 Aug 2023 11:57:34 +0530 Subject: [PATCH 06/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../BuildingClusters/schedulerprereqs.rst | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst b/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst index 7d3feb3ce..6cf06b025 100644 --- a/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst +++ b/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst @@ -18,21 +18,23 @@ Before you build clusters .. note:: The inventory file accepts both IPs and FQDNs as long as they can be resolved by DNS. -* Nodes provisioned using the Omnia provision tool do not require a RedHat subscription to run ``scheduler.yml`` on RHEL target nodes. +* Nodes provisioned using the Omnia provision tool do not require a RedHat subscription to run ``omnia.yml`` on RHEL target nodes. * For RHEL target nodes not provisioned by Omnia, ensure that RedHat subscription is enabled on all target nodes. Every target node will require a RedHat subscription. **Features enabled by omnia.yml** -* Slurm: Once all the required parameters in `omnia_config.yml `_ are filled in, ``omnia.yml`` can be used to set up slurm. + * Centralized authentication: Once all the required parameters in `security_config.yml `_ are filled in, ``omnia.yml`` can be used to set up FreeIPA/LDAP. -* Login Node (Additionally secure login node) + * Slurm: Once all the required parameters in `omnia_config.yml `_ are filled in, ``omnia.yml`` can be used to set up slurm. -* Kubernetes: Once all the required parameters in `omnia_config.yml `_ are filled in, ``omnia.yml`` can be used to set up kubernetes. + * Login Node (Additionally secure login node) -* BeeGFS bolt on installation + * Kubernetes: Once all the required parameters in `omnia_config.yml `_ are filled in, ``omnia.yml`` can be used to set up kubernetes. -* NFS bolt on support + * BeeGFS bolt on installation + + * NFS bolt on support From 02203ab18309c0417a9cfda8769e4fa4b3cbe719 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Tue, 1 Aug 2023 12:03:16 +0530 Subject: [PATCH 07/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../BuildingClusters/schedulerinputparams.rst | 5 ++++- .../InstallationGuides/BuildingClusters/schedulerprereqs.rst | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst b/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst index e3061bfe4..47517ce5e 100644 --- a/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst +++ b/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst @@ -5,11 +5,12 @@ These parameters are located in ``input/omnia_config.yml``, ``input/security_con .. caution:: Do not remove or comment any lines in the ``input/omnia_config.yml``, ``input/security_config.yml`` and [optional] ``input/storage_config.yml`` file. -.. csv-table:: Parameters +.. csv-table:: omnia_config.yml :file: ../../Tables/scheduler.csv :header-rows: 1 :keepspace: +*security_config.yml* +----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Parameter | Details | +============================+=================================================================================================================================================================================================================================================================+ @@ -75,6 +76,7 @@ These parameters are located in ``input/omnia_config.yml``, ``input/security_con | | * ``true`` | +----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +*storage_config.yml* +---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Details | +=================================+======================================================================================================================================================================================================================================================+ @@ -149,6 +151,7 @@ These parameters are located in ``input/omnia_config.yml``, ``input/security_con | | **Default values**: ``/home/connauthfile`` | +---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +Click here for more information on `FreeIPA, LDAP `_, `BeeGFS `_ or, `NFS `_. .. note:: diff --git a/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst b/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst index 6cf06b025..33ef118a9 100644 --- a/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst +++ b/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst @@ -32,9 +32,9 @@ Before you build clusters * Kubernetes: Once all the required parameters in `omnia_config.yml `_ are filled in, ``omnia.yml`` can be used to set up kubernetes. - * BeeGFS bolt on installation + * BeeGFS bolt on installation: Once all the required parameters in `storage_config.yml `_ are filled in, ``omnia.yml`` can be used to set up NFS. - * NFS bolt on support + * NFS bolt on support: : Once all the required parameters in `storage_config.yml `_ are filled in, ``omnia.yml`` can be used to set up BeeGFS. From 2c8bb8aa1f650779118c4818ca336d21bfad8f86 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Tue, 1 Aug 2023 12:42:53 +0530 Subject: [PATCH 08/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- docs/source/Troubleshooting/knownissues.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/Troubleshooting/knownissues.rst b/docs/source/Troubleshooting/knownissues.rst index 94dfbeed6..e80fee460 100644 --- a/docs/source/Troubleshooting/knownissues.rst +++ b/docs/source/Troubleshooting/knownissues.rst @@ -19,6 +19,8 @@ Omnia does not maintain any order when assigning hostnames to target nodes. ⦾ **Why does the task Assign admin nic IP fail during provision.yml with 2 error messages?** +.. image:: ../images/AdminNICErrors.png + **Potential Cause:** Omnia validates the admin nic IP on the control plane. If the user has not assigned an admin nic IP in case of dedicated network interface type, an error message is returned. There is a parsing logic that is being applied on the blank IP and hence, the error displays twice. **Resolution**: Ensure a control plane IP is assigned to the admin NIC. From cf8621fa42dd05cbc47df978967f0cc885e61233 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Tue, 1 Aug 2023 13:23:42 +0530 Subject: [PATCH 09/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- docs/source/images/AdminNICErrors.png | Bin 0 -> 26728 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/source/images/AdminNICErrors.png diff --git a/docs/source/images/AdminNICErrors.png b/docs/source/images/AdminNICErrors.png new file mode 100644 index 0000000000000000000000000000000000000000..931a159d283e4e0c701b157215c98584e9e71379 GIT binary patch literal 26728 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 Ls|#i4u0Q&J>MMCy literal 0 HcmV?d00001 From 382b5eb7ee3563f9c7204f9bcd22610a6a3cfe4e Mon Sep 17 00:00:00 2001 From: cgoveas Date: Tue, 1 Aug 2023 13:33:08 +0530 Subject: [PATCH 10/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../BuildingClusters/installscheduler.rst | 2 +- .../BuildingClusters/schedulerinputparams.rst | 4 ++++ .../DiscoveryMechanisms/bmc.rst | 5 ++--- .../DiscoveryMechanisms/mappingfile.rst | 3 +-- .../DiscoveryMechanisms/snmp.rst | 3 +-- .../DiscoveryMechanisms/switch-based.rst | 5 ++--- .../InstallingProvisionTool/provisionprereqs.rst | 12 +++++++----- .../SupportMatrix/OperatingSystems/Rocky.rst | 3 +-- docs/source/Tables/bmc.csv | 3 +-- docs/source/Tables/mapping.csv | 3 +-- docs/source/Tables/snmpwalk.csv | 3 +-- 11 files changed, 22 insertions(+), 24 deletions(-) diff --git a/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst b/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst index 2e1ace41c..d072da4a7 100644 --- a/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst +++ b/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst @@ -7,7 +7,7 @@ Building clusters * Use the parameter ``scheduler_type`` in ``input/omnia_config.yml`` to customize what schedulers are installed in the cluster. * Without the login node, Slurm jobs can be scheduled only through the manager node. -2. Create an inventory file in the *omnia* folder. Add login node IP address under the manager node IP address under the *[manager]* group, compute node IP addresses under the *[compute]* group, and Login node IP under the *[login]* group,. Check out the `sample inventory for more information <../samplefiles.html>`_. +2. Create an inventory file in the *omnia* folder. Add login node IP address under the manager node IP address under the *[manager]* group, compute node IP addresses under the *[compute]* group, and Login node IP under the *[login]* group,. Check out the `sample inventory for more information <../../samplefiles.html>`_. .. note:: * RedHat nodes that are not configured by Omnia need to have a valid subscription. To set up a subscription, `click here `_. diff --git a/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst b/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst index 47517ce5e..33bfab65b 100644 --- a/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst +++ b/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst @@ -11,6 +11,8 @@ These parameters are located in ``input/omnia_config.yml``, ``input/security_con :keepspace: *security_config.yml* + + +----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Parameter | Details | +============================+=================================================================================================================================================================================================================================================================+ @@ -77,6 +79,8 @@ These parameters are located in ``input/omnia_config.yml``, ``input/security_con +----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ *storage_config.yml* + + +---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Details | +=================================+======================================================================================================================================================================================================================================================+ diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst index 0d68b7fc7..e1a3f8056 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/bmc.rst @@ -40,9 +40,8 @@ For automatic provisioning of servers and discovery, the BMC method can be used. The following parameters need to be populated in ``input/provision_config.yml`` to discover target nodes using BMC. .. caution:: -* Do not remove or comment any lines in the ``input/provision_config.yml`` file. -* THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. - + * Do not remove or comment any lines in the ``input/provision_config.yml`` file. + * **THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML.** .. csv-table:: Parameters :file: ../../../Tables/bmc.csv diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst index 56ec99881..1ae1f0cea 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/mappingfile.rst @@ -18,8 +18,7 @@ The following parameters need to be populated in ``input/provision_config.yml`` .. caution:: * ``admin_nic_subnet``, ``ib_nic_subnet`` and ``bmc_nic_subnet`` should have the same subnet mask (Omnia only supports /16 subnet masks currently). * Do not remove or comment any lines in the ``input/provision_config.yml`` file. - * THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. - + * **THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML.** .. csv-table:: Parameters :file: ../../../Tables/mapping.csv diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst index bf0ac98b3..42a16ac19 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/snmp.rst @@ -21,8 +21,7 @@ Use ``show snmp community`` to verify your changes. * Target servers with LOM architecture is not supported. * Do not remove or comment any lines in the ``input/provision_config.yml`` file. * ``admin_nic_subnet``, ``ib_nic_subnet`` and ``bmc_nic_subnet`` should have the same subnet mask (Omnia only supports /16 subnet masks currently). - * THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. - + * **THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML.** .. csv-table:: Parameters diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst index 00fcf7e7e..b0ea2e11d 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/DiscoveryMechanisms/switch-based.rst @@ -53,9 +53,8 @@ switch_based The following parameters need to be populated in ``input/provision_config.yml`` to discover target nodes using a mapping file. .. caution:: -* Do not remove or comment any lines in the ``input/provision_config.yml`` file. -* THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. - + * Do not remove or comment any lines in the ``input/provision_config.yml`` file. + * **THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML.** .. csv-table:: Parameters :file: ../../../Tables/switch-based.csv diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst index de7fb94cb..7fca249bd 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst @@ -5,9 +5,12 @@ Before you run the provision tool * Set the IP address of the control plane with a /16 subnet mask. The control plane NIC connected to remote servers (through the switch) should be configured with two IPs (BMC IP and admin IP) in a shared LOM or hybrid set up. In the case dedicated network topology, a single IP (admin IP) is required. .. image:: ../../images/ControlPlaneNic.png - :name: LOM NIC setup -.. image:: ../../images/ControlPlane_DedicatedNIC - :name: Dedicated NIC setup + + *LOM NIC setup* + +.. image:: ../../images/ControlPlane_DedicatedNIC.PNG + + *Dedicated NIC setup* * Set the hostname of the control plane using the ``hostname``. ``domain name`` format. @@ -23,8 +26,7 @@ Before you run the provision tool 2. `RHEL 8.x `_ -.. caution:: THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. - +.. caution:: **THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML.** .. note:: Ensure the ISO provided has downloaded seamlessly (No corruption). Verify the SHA checksum/ download size of the ISO file before provisioning to avoid future failures. diff --git a/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst b/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst index 2ae09cb6c..779327aef 100644 --- a/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst +++ b/docs/source/Overview/SupportMatrix/OperatingSystems/Rocky.rst @@ -1,8 +1,7 @@ Rocky ===== -.. caution:: THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. - +.. caution:: **THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML.** +------------+---------------+---------------+ | OS Version | Control Plane | Compute Nodes | diff --git a/docs/source/Tables/bmc.csv b/docs/source/Tables/bmc.csv index 45ffcb900..adf2b215f 100644 --- a/docs/source/Tables/bmc.csv +++ b/docs/source/Tables/bmc.csv @@ -32,8 +32,7 @@ Choices: * ``rhel`` <-default * ``rocky`` -.. caution:: THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. - +.. caution:: **THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML.** " "**provision_os_version** diff --git a/docs/source/Tables/mapping.csv b/docs/source/Tables/mapping.csv index 40eb42d74..414bcfb75 100644 --- a/docs/source/Tables/mapping.csv +++ b/docs/source/Tables/mapping.csv @@ -32,8 +32,7 @@ Choices: * ``rhel`` <-default * ``rocky`` -.. caution:: THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. - +.. caution:: **THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML.** " "**provision_os_version** diff --git a/docs/source/Tables/snmpwalk.csv b/docs/source/Tables/snmpwalk.csv index f8c3b4e71..a2e0eec3f 100644 --- a/docs/source/Tables/snmpwalk.csv +++ b/docs/source/Tables/snmpwalk.csv @@ -32,8 +32,7 @@ Choices: * ``rhel`` <-default * ``rocky`` -.. caution:: THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML. - +.. caution:: **THE ROCKY LINUX OS VERSION ON THE CLUSTER WILL BE UPGRADED TO THE LATEST 8.x VERSION AVAILABLE IRRESPECTIVE OF THE PROVISION_OS_VERSION PROVIDED IN PROVISION_CONFIG.YML.** " "**provision_os_version** From 5bfdf74631b3984bee428c9f2651f7757c0e0006 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Tue, 1 Aug 2023 14:02:36 +0530 Subject: [PATCH 11/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- docs/source/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index e92a0cbb8..dfb20ba3f 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -6,7 +6,7 @@ Omnia: Everything at once! ---------------------------------- -|Omnia version| |Downloads| |Last Commit| |Commits Since 1.4.2| |Contributors| |Forks| |License| +|Omnia version| |Downloads| |Last Commit| |Commits Since 1.4.3| |Contributors| |Forks| |License| Ansible playbook-based deployment of Slurm and Kubernetes on servers running an RPM-based Linux OS. @@ -65,7 +65,7 @@ For a better understanding of what Omnia does, check out our `docs Date: Wed, 2 Aug 2023 10:55:51 +0530 Subject: [PATCH 12/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../InstallingProvisionTool/provisionprereqs.rst | 2 +- docs/source/InstallationGuides/addinganewnode.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst index 7fca249bd..d7e158a34 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst @@ -8,7 +8,7 @@ Before you run the provision tool *LOM NIC setup* -.. image:: ../../images/ControlPlane_DedicatedNIC.PNG +.. image:: ../../images/ControlPlane_DedicatedNIC.png *Dedicated NIC setup* diff --git a/docs/source/InstallationGuides/addinganewnode.rst b/docs/source/InstallationGuides/addinganewnode.rst index 3dfbe6a9d..90b7e0087 100644 --- a/docs/source/InstallationGuides/addinganewnode.rst +++ b/docs/source/InstallationGuides/addinganewnode.rst @@ -35,7 +35,7 @@ A new node can be added using the following ways: * Run ``provision.yml`` once the node has joined the cluster using an IP that exists within the provided range. -Alternatively, if a new mode is to be added with no change in configuration, run the following commands: :: +Alternatively, if a new node is to be added with no change in configuration, run the following commands: :: cd provision ansible-playbook discovery_provision.yml From 5883323061ff0192d07a9d5e92c438b2c19d1b4b Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 11:00:27 +0530 Subject: [PATCH 13/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../InstallingProvisionTool/provisionprereqs.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst index d7e158a34..fad55fe90 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst @@ -4,13 +4,13 @@ Before you run the provision tool * (Recommended) Run ``prereq.sh`` to get the system ready to deploy Omnia. Alternatively, ensure that `Ansible 2.12.10 `_ and `Python 3.8 `_ are installed on the system. SELinux should also be disabled. * Set the IP address of the control plane with a /16 subnet mask. The control plane NIC connected to remote servers (through the switch) should be configured with two IPs (BMC IP and admin IP) in a shared LOM or hybrid set up. In the case dedicated network topology, a single IP (admin IP) is required. -.. image:: ../../images/ControlPlaneNic.png + .. image:: ../../images/ControlPlaneNic.png - *LOM NIC setup* + *LOM NIC setup* -.. image:: ../../images/ControlPlane_DedicatedNIC.png + .. image:: ../../images/ControlPlane_DedicatedNIC.png - *Dedicated NIC setup* + *Dedicated NIC setup* * Set the hostname of the control plane using the ``hostname``. ``domain name`` format. From dfba8da2cfe035150f52df0eaf59c978a9b3c9b2 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 11:10:08 +0530 Subject: [PATCH 14/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../BuildingClusters/schedulerinputparams.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst b/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst index 33bfab65b..898ceae2b 100644 --- a/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst +++ b/docs/source/InstallationGuides/BuildingClusters/schedulerinputparams.rst @@ -5,12 +5,14 @@ These parameters are located in ``input/omnia_config.yml``, ``input/security_con .. caution:: Do not remove or comment any lines in the ``input/omnia_config.yml``, ``input/security_config.yml`` and [optional] ``input/storage_config.yml`` file. -.. csv-table:: omnia_config.yml +**omnia_config.yml** + +.. csv-table:: Parameters :file: ../../Tables/scheduler.csv :header-rows: 1 :keepspace: -*security_config.yml* +**security_config.yml** +----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -78,7 +80,7 @@ These parameters are located in ``input/omnia_config.yml``, ``input/security_con | | * ``true`` | +----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -*storage_config.yml* +**storage_config.yml** +---------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ From 06062a8ad0080735ff6a6d4b77601337c28ecc00 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 11:18:21 +0530 Subject: [PATCH 15/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- docs/source/InstallationGuides/addinganewnode.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/source/InstallationGuides/addinganewnode.rst b/docs/source/InstallationGuides/addinganewnode.rst index 90b7e0087..234a62a8c 100644 --- a/docs/source/InstallationGuides/addinganewnode.rst +++ b/docs/source/InstallationGuides/addinganewnode.rst @@ -1,6 +1,8 @@ Adding new nodes +++++++++++++++++ +**Provisioning the new node** + While adding a new node to the cluster, users can modify the following: - The operating system @@ -41,6 +43,15 @@ Alternatively, if a new node is to be added with no change in configuration, run ansible-playbook discovery_provision.yml +**Adding the new node to the cluster** + +1. Update the existing inventory file with the new node details following the example `provided here. <../samplefiles.html>`_ + +.. note:: Do not change the manager node in the existing inventory. + +2. To install security, job scheduler and storage tools on the node, run ``omnia.yml``: :: + + ansible-playbook omnia.yml -i inventory From 8d085765a2b0b61d3abc5e4cc02fb30fef5ca0ab Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 11:25:24 +0530 Subject: [PATCH 16/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- docs/source/InstallationGuides/addinganewnode.rst | 2 +- .../InstallationGuides/reprovisioningthecluster.rst | 12 ++++++++++++ docs/source/Troubleshooting/knownissues.rst | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/source/InstallationGuides/addinganewnode.rst b/docs/source/InstallationGuides/addinganewnode.rst index 234a62a8c..940a3d480 100644 --- a/docs/source/InstallationGuides/addinganewnode.rst +++ b/docs/source/InstallationGuides/addinganewnode.rst @@ -49,7 +49,7 @@ Alternatively, if a new node is to be added with no change in configuration, run .. note:: Do not change the manager node in the existing inventory. -2. To install security, job scheduler and storage tools on the node, run ``omnia.yml``: :: +2. To install `security `_, `job scheduler`_ and storage tools (`NFS `_, `BeeGFS `_) on the node, run ``omnia.yml``: :: ansible-playbook omnia.yml -i inventory diff --git a/docs/source/InstallationGuides/reprovisioningthecluster.rst b/docs/source/InstallationGuides/reprovisioningthecluster.rst index a88787c06..eed46b6ea 100644 --- a/docs/source/InstallationGuides/reprovisioningthecluster.rst +++ b/docs/source/InstallationGuides/reprovisioningthecluster.rst @@ -25,6 +25,18 @@ Where the inventory contains a list of host IPs as shown below: 10.5.0.101 10.5.0.102 + .. note:: * The host IPs passed in the inventory should be assigned by Omnia. * If the nodes were discovered via snmpwalk or mapping, users will be required to manually reboot target nodes. + +**Setting up the cluster** + +1. Update the inventory file with the required node details following the example `provided here. <../samplefiles.html>`_ + +2. To install `security `_, `job scheduler`_ and storage tools (`NFS `_, `BeeGFS `_) on the node, run ``omnia.yml``: :: + + ansible-playbook omnia.yml -i inventory + + + diff --git a/docs/source/Troubleshooting/knownissues.rst b/docs/source/Troubleshooting/knownissues.rst index e80fee460..15982b713 100644 --- a/docs/source/Troubleshooting/knownissues.rst +++ b/docs/source/Troubleshooting/knownissues.rst @@ -17,11 +17,11 @@ Omnia does not maintain any order when assigning hostnames to target nodes. **Resolution**: This will be addressed in a later release. -⦾ **Why does the task Assign admin nic IP fail during provision.yml with 2 error messages?** +⦾ **Why does the task Assign admin NIC IP fail during provision.yml with errors?** .. image:: ../images/AdminNICErrors.png -**Potential Cause:** Omnia validates the admin nic IP on the control plane. If the user has not assigned an admin nic IP in case of dedicated network interface type, an error message is returned. There is a parsing logic that is being applied on the blank IP and hence, the error displays twice. +**Potential Cause:** Omnia validates the admin NIC IP on the control plane. If the user has not assigned an admin NIC IP in case of dedicated network interface type, an error message is returned. There is a parsing logic that is being applied on the blank IP and hence, the error displays twice. **Resolution**: Ensure a control plane IP is assigned to the admin NIC. From 315ff774ec482ced97f996d4afa2bf08bdd472f8 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 11:27:36 +0530 Subject: [PATCH 17/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../BuildingClusters/index.rst | 17 +++++++++++++++++ .../BuildingClusters/schedulerprereqs.rst | 15 --------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/docs/source/InstallationGuides/BuildingClusters/index.rst b/docs/source/InstallationGuides/BuildingClusters/index.rst index 534b6e205..2061772bd 100644 --- a/docs/source/InstallationGuides/BuildingClusters/index.rst +++ b/docs/source/InstallationGuides/BuildingClusters/index.rst @@ -1,5 +1,22 @@ Configuring the cluster ======================= + +**Features enabled by omnia.yml** + + * Centralized authentication: Once all the required parameters in `security_config.yml `_ are filled in, ``omnia.yml`` can be used to set up FreeIPA/LDAP. + + * Slurm: Once all the required parameters in `omnia_config.yml `_ are filled in, ``omnia.yml`` can be used to set up slurm. + + * Login Node (Additionally secure login node) + + * Kubernetes: Once all the required parameters in `omnia_config.yml `_ are filled in, ``omnia.yml`` can be used to set up kubernetes. + + * BeeGFS bolt on installation: Once all the required parameters in `storage_config.yml `_ are filled in, ``omnia.yml`` can be used to set up NFS. + + * NFS bolt on support: : Once all the required parameters in `storage_config.yml `_ are filled in, ``omnia.yml`` can be used to set up BeeGFS. + + + .. toctree:: schedulerinputparams schedulerprereqs diff --git a/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst b/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst index 33ef118a9..b3c200c87 100644 --- a/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst +++ b/docs/source/InstallationGuides/BuildingClusters/schedulerprereqs.rst @@ -22,21 +22,6 @@ Before you build clusters * For RHEL target nodes not provisioned by Omnia, ensure that RedHat subscription is enabled on all target nodes. Every target node will require a RedHat subscription. -**Features enabled by omnia.yml** - - * Centralized authentication: Once all the required parameters in `security_config.yml `_ are filled in, ``omnia.yml`` can be used to set up FreeIPA/LDAP. - - * Slurm: Once all the required parameters in `omnia_config.yml `_ are filled in, ``omnia.yml`` can be used to set up slurm. - - * Login Node (Additionally secure login node) - - * Kubernetes: Once all the required parameters in `omnia_config.yml `_ are filled in, ``omnia.yml`` can be used to set up kubernetes. - - * BeeGFS bolt on installation: Once all the required parameters in `storage_config.yml `_ are filled in, ``omnia.yml`` can be used to set up NFS. - - * NFS bolt on support: : Once all the required parameters in `storage_config.yml `_ are filled in, ``omnia.yml`` can be used to set up BeeGFS. - - From 89ab829e0e90e3cc9718a92f1604209f00897058 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 11:42:21 +0530 Subject: [PATCH 18/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../InstallationGuides/BuildingClusters/installscheduler.rst | 4 ++-- .../InstallingProvisionTool/provisionprereqs.rst | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst b/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst index d072da4a7..309726a89 100644 --- a/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst +++ b/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst @@ -1,7 +1,7 @@ Building clusters ------------------ -1. In the ``input/omnia_config.yml`` file, provide the `required details `_. +1. In the ``input/omnia_config.yml``, ``input/security_config.yml`` and [optional] ``input/storage_config.yml`` files, provide the `required details `_. .. note:: * Use the parameter ``scheduler_type`` in ``input/omnia_config.yml`` to customize what schedulers are installed in the cluster. @@ -17,7 +17,7 @@ Building clusters 3. ``omnia.yml`` is a wrapper playbook comprising of: i. ``security.yml``: This playbook sets up centralized authentication (LDAP/FreeIPA) on the cluster. For more information, `click here. `_ - ii. ``scheduler.yml``: This playbook sets up job schedulers (Slurm or Kuberenetes) on the cluster. + ii. ``scheduler.yml``: This playbook sets up job schedulers (Slurm or Kubernetes) on the cluster. iii. ``storage.yml``: This playbook sets up storage tools like `BeeGFS `_ and `NFS `_. To run ``omnia.yml``: :: diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst index fad55fe90..60609ea62 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst @@ -4,11 +4,11 @@ Before you run the provision tool * (Recommended) Run ``prereq.sh`` to get the system ready to deploy Omnia. Alternatively, ensure that `Ansible 2.12.10 `_ and `Python 3.8 `_ are installed on the system. SELinux should also be disabled. * Set the IP address of the control plane with a /16 subnet mask. The control plane NIC connected to remote servers (through the switch) should be configured with two IPs (BMC IP and admin IP) in a shared LOM or hybrid set up. In the case dedicated network topology, a single IP (admin IP) is required. - .. image:: ../../images/ControlPlaneNic.png +.. image:: ../../images/ControlPlaneNic.png *LOM NIC setup* - .. image:: ../../images/ControlPlane_DedicatedNIC.png +.. image:: ../../images/ControlPlane_DedicatedNIC.png *Dedicated NIC setup* From 2d608140c98e62019bf111e985008396960b4e0d Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 11:44:33 +0530 Subject: [PATCH 19/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../InstallingProvisionTool/provisionprereqs.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst index 60609ea62..4d73c5c87 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst @@ -6,11 +6,9 @@ Before you run the provision tool .. image:: ../../images/ControlPlaneNic.png - *LOM NIC setup* .. image:: ../../images/ControlPlane_DedicatedNIC.png - *Dedicated NIC setup* * Set the hostname of the control plane using the ``hostname``. ``domain name`` format. From 8ee538dc81e472906b35e5d888d00c1662f92f09 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 11:45:43 +0530 Subject: [PATCH 20/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../InstallationGuides/BuildingClusters/installscheduler.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst b/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst index 309726a89..6b0c9158c 100644 --- a/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst +++ b/docs/source/InstallationGuides/BuildingClusters/installscheduler.rst @@ -16,6 +16,7 @@ Building clusters 3. ``omnia.yml`` is a wrapper playbook comprising of: + i. ``security.yml``: This playbook sets up centralized authentication (LDAP/FreeIPA) on the cluster. For more information, `click here. `_ ii. ``scheduler.yml``: This playbook sets up job schedulers (Slurm or Kubernetes) on the cluster. iii. ``storage.yml``: This playbook sets up storage tools like `BeeGFS `_ and `NFS `_. From a6c077f0a7d0282f5898e4876c28d530e199e15e Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 11:56:42 +0530 Subject: [PATCH 21/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- docs/source/InstallationGuides/addinganewnode.rst | 2 +- docs/source/InstallationGuides/reprovisioningthecluster.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/InstallationGuides/addinganewnode.rst b/docs/source/InstallationGuides/addinganewnode.rst index 940a3d480..58cc4e097 100644 --- a/docs/source/InstallationGuides/addinganewnode.rst +++ b/docs/source/InstallationGuides/addinganewnode.rst @@ -49,7 +49,7 @@ Alternatively, if a new node is to be added with no change in configuration, run .. note:: Do not change the manager node in the existing inventory. -2. To install `security `_, `job scheduler`_ and storage tools (`NFS `_, `BeeGFS `_) on the node, run ``omnia.yml``: :: +2. To install `security `_, `job scheduler `_ and storage tools (`NFS `_, `BeeGFS `_) on the node, run ``omnia.yml``: :: ansible-playbook omnia.yml -i inventory diff --git a/docs/source/InstallationGuides/reprovisioningthecluster.rst b/docs/source/InstallationGuides/reprovisioningthecluster.rst index eed46b6ea..4bc925104 100644 --- a/docs/source/InstallationGuides/reprovisioningthecluster.rst +++ b/docs/source/InstallationGuides/reprovisioningthecluster.rst @@ -34,7 +34,7 @@ Where the inventory contains a list of host IPs as shown below: 1. Update the inventory file with the required node details following the example `provided here. <../samplefiles.html>`_ -2. To install `security `_, `job scheduler`_ and storage tools (`NFS `_, `BeeGFS `_) on the node, run ``omnia.yml``: :: +2. To install `security `_, `job scheduler `_ and storage tools (`NFS `_, `BeeGFS `_) on the node, run ``omnia.yml``: :: ansible-playbook omnia.yml -i inventory From c4665886a9c561e8bfd33c98ec37c546df18a6e3 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 12:20:46 +0530 Subject: [PATCH 22/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- docs/source/InstallationGuides/addinganewnode.rst | 2 +- docs/source/InstallationGuides/reprovisioningthecluster.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/InstallationGuides/addinganewnode.rst b/docs/source/InstallationGuides/addinganewnode.rst index 58cc4e097..8d3089809 100644 --- a/docs/source/InstallationGuides/addinganewnode.rst +++ b/docs/source/InstallationGuides/addinganewnode.rst @@ -51,7 +51,7 @@ Alternatively, if a new node is to be added with no change in configuration, run 2. To install `security `_, `job scheduler `_ and storage tools (`NFS `_, `BeeGFS `_) on the node, run ``omnia.yml``: :: - ansible-playbook omnia.yml -i inventory + ansible-playbook omnia.yml -i inventory diff --git a/docs/source/InstallationGuides/reprovisioningthecluster.rst b/docs/source/InstallationGuides/reprovisioningthecluster.rst index 4bc925104..10d56f1f7 100644 --- a/docs/source/InstallationGuides/reprovisioningthecluster.rst +++ b/docs/source/InstallationGuides/reprovisioningthecluster.rst @@ -36,7 +36,7 @@ Where the inventory contains a list of host IPs as shown below: 2. To install `security `_, `job scheduler `_ and storage tools (`NFS `_, `BeeGFS `_) on the node, run ``omnia.yml``: :: - ansible-playbook omnia.yml -i inventory + ansible-playbook omnia.yml -i inventory From c0bbc0bd4afbcde3c61afcc8c8c7dd7554493ab4 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 12:27:25 +0530 Subject: [PATCH 23/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../InstallingProvisionTool/provisionprereqs.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst index 4d73c5c87..8f8b0ec9b 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst @@ -4,10 +4,13 @@ Before you run the provision tool * (Recommended) Run ``prereq.sh`` to get the system ready to deploy Omnia. Alternatively, ensure that `Ansible 2.12.10 `_ and `Python 3.8 `_ are installed on the system. SELinux should also be disabled. * Set the IP address of the control plane with a /16 subnet mask. The control plane NIC connected to remote servers (through the switch) should be configured with two IPs (BMC IP and admin IP) in a shared LOM or hybrid set up. In the case dedicated network topology, a single IP (admin IP) is required. -.. image:: ../../images/ControlPlaneNic.png +.. figure:: ../../images/ControlPlaneNic.png +Control plane NIC IP configuration in a LOM setup -.. image:: ../../images/ControlPlane_DedicatedNIC.png +.. figure:: ../../images/ControlPlane_DedicatedNIC.png + +Control plane NIC IP configuration in a dedicated setup * Set the hostname of the control plane using the ``hostname``. ``domain name`` format. From 7f4cceaf346534c2c3f9fa1db86b2964d09bc435 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Wed, 2 Aug 2023 12:31:54 +0530 Subject: [PATCH 24/26] Updating 1.4.3 doc fixes Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../InstallingProvisionTool/provisionprereqs.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst index 8f8b0ec9b..0c19a99b6 100644 --- a/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst +++ b/docs/source/InstallationGuides/InstallingProvisionTool/provisionprereqs.rst @@ -6,11 +6,11 @@ Before you run the provision tool .. figure:: ../../images/ControlPlaneNic.png -Control plane NIC IP configuration in a LOM setup + *Control plane NIC IP configuration in a LOM setup* .. figure:: ../../images/ControlPlane_DedicatedNIC.png -Control plane NIC IP configuration in a dedicated setup + *Control plane NIC IP configuration in a dedicated setup* * Set the hostname of the control plane using the ``hostname``. ``domain name`` format. From 62d3939c4511e44904f0a09e38e431a0ecaf88df Mon Sep 17 00:00:00 2001 From: cgoveas Date: Thu, 3 Aug 2023 17:46:16 +0530 Subject: [PATCH 25/26] Updating HPCApptainer Signed-off-by: cgoveas Signed-off-by: cgoveas --- .../OneAPI.rst | 4 +- .../Benchmarks/OpenMPI_AOCC.rst | 72 ++++++++++++++++++ .../InstallationGuides/Benchmarks/index.rst | 8 ++ .../BuildingClusters/index.rst | 4 +- docs/source/Roles/Monitor/index.rst | 15 +++- .../images/Grafana_ControlPlaneLoki.png | Bin 0 -> 69323 bytes 6 files changed, 98 insertions(+), 5 deletions(-) rename docs/source/InstallationGuides/{BuildingClusters => Benchmarks}/OneAPI.rst (95%) create mode 100644 docs/source/InstallationGuides/Benchmarks/OpenMPI_AOCC.rst create mode 100644 docs/source/InstallationGuides/Benchmarks/index.rst create mode 100644 docs/source/images/Grafana_ControlPlaneLoki.png diff --git a/docs/source/InstallationGuides/BuildingClusters/OneAPI.rst b/docs/source/InstallationGuides/Benchmarks/OneAPI.rst similarity index 95% rename from docs/source/InstallationGuides/BuildingClusters/OneAPI.rst rename to docs/source/InstallationGuides/Benchmarks/OneAPI.rst index e81f10f36..c3313c20d 100644 --- a/docs/source/InstallationGuides/BuildingClusters/OneAPI.rst +++ b/docs/source/InstallationGuides/Benchmarks/OneAPI.rst @@ -1,5 +1,5 @@ -Install oneAPI for MPI jobs -___________________________ +Install oneAPI for MPI jobs on Intel processors +________________________________________________ **Pre-requisites** diff --git a/docs/source/InstallationGuides/Benchmarks/OpenMPI_AOCC.rst b/docs/source/InstallationGuides/Benchmarks/OpenMPI_AOCC.rst new file mode 100644 index 000000000..2cb378d8d --- /dev/null +++ b/docs/source/InstallationGuides/Benchmarks/OpenMPI_AOCC.rst @@ -0,0 +1,72 @@ +Open MPI AOCC HPL benchmark for AMD processors +---------------------------------------------- + +**Prerequisites** + +* Provision the cluster and install slurm on all cluster nodes. +* OpenMPI should be installed and compiled with slurm on all cluster nodes or should be available on the NFS share. + + +**To execute multi-node jobs** + +1. Update the following parameters in ``/etc/slurm/slurm.conf``: :: + + SelectType=select/cons_tres + SelectTypeParameters=CR_Core + TaskPlugin=task/affinity,task/cgroup + +2. Restart ``slurmd.service`` on all compute nodes. :: + + systemctl stop slurmd + systemctl start slurmd + +3. Once the service restarts on the compute nodes, restart ``slurmctld.service`` on the manager node. :: + + systemctl stop slurmctld.service + systemctl start slurmctld.service + +4. Job execution can now be initiated. Provide the host list using ``srun`` and ``sbatch``. For example: + +For a job to run on multiple nodes (``omnianode00001.omnia.test``,``omnianode00006.omnia.test`` and,``omnianode00005.omnia.test``) and OpenMPI is compiled and installed on the NFS share (``/home/omnia-share/openmpi/bin/mpirun``), the job can be initiated as below: :: + + + srun -N 3 --partition=mpiexectrial /home/omnia-share/openmpi/bin/mpirun -host omnianode00001.omnia.test,omnianode00006.omnia.test,omnianode00005.omnia.test ./amd-zen-hpl-2023_07_18/xhpl + +For a batch job using the same parameters, the command would be: :: + + + + #!/bin/bash + + #SBATCH --job-name=test + + #SBATCH --output=test.log + + #SBATCH --partition=normal + + #SBATCH -N 3 + + #SBATCH --time=10:00 + + #SBATCH --ntasks=2 + + + + + + source /home/omnia-share/setenv_AOCC.sh + + export PATH=$PATH:/home/omnia-share/openmpi/bin + + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/omnia-share/openmpi/lib + + + + + mpirun -host omnianode00001.omnia.test,omnianode00005.omnia.test ./amd-zen-hpl-2023_07_18/xhpl + + srun sleep 30 + + + + diff --git a/docs/source/InstallationGuides/Benchmarks/index.rst b/docs/source/InstallationGuides/Benchmarks/index.rst new file mode 100644 index 000000000..909ad1ffa --- /dev/null +++ b/docs/source/InstallationGuides/Benchmarks/index.rst @@ -0,0 +1,8 @@ +Running HPC benchmarks on omnia clusters +========================================= + + + +.. toctree:: + OneAPI + OpenMPI_AOCC diff --git a/docs/source/InstallationGuides/BuildingClusters/index.rst b/docs/source/InstallationGuides/BuildingClusters/index.rst index 2061772bd..557003e3e 100644 --- a/docs/source/InstallationGuides/BuildingClusters/index.rst +++ b/docs/source/InstallationGuides/BuildingClusters/index.rst @@ -22,9 +22,11 @@ Configuring the cluster schedulerprereqs installscheduler Authentication - OneAPI BeeGFS NFS + OneAPI + OpenMPI_AOCC KernelUpdateRHEL + diff --git a/docs/source/Roles/Monitor/index.rst b/docs/source/Roles/Monitor/index.rst index b2e828383..ae32db2f2 100644 --- a/docs/source/Roles/Monitor/index.rst +++ b/docs/source/Roles/Monitor/index.rst @@ -63,11 +63,22 @@ The monitor role sets up `Grafana `_ , `Prometheus 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�CkARreTH7Bt>I_@hbWzy~wytC~L$+#Bk5d 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 Sen9*Pxa4J&rAs9Z{r(4KmZZ%9 literal 0 HcmV?d00001 From 657dc98b33b3129ef0e7deea6812536f81057085 Mon Sep 17 00:00:00 2001 From: cgoveas Date: Thu, 3 Aug 2023 17:47:14 +0530 Subject: [PATCH 26/26] Updating OpenMPI Signed-off-by: cgoveas Signed-off-by: cgoveas --- docs/source/InstallationGuides/Benchmarks/OpenMPI_AOCC.rst | 1 + docs/source/InstallationGuides/Benchmarks/index.rst | 2 -- docs/source/Roles/Monitor/index.rst | 2 -- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/source/InstallationGuides/Benchmarks/OpenMPI_AOCC.rst b/docs/source/InstallationGuides/Benchmarks/OpenMPI_AOCC.rst index 2cb378d8d..11d5a9c27 100644 --- a/docs/source/InstallationGuides/Benchmarks/OpenMPI_AOCC.rst +++ b/docs/source/InstallationGuides/Benchmarks/OpenMPI_AOCC.rst @@ -70,3 +70,4 @@ For a batch job using the same parameters, the command would be: :: + diff --git a/docs/source/InstallationGuides/Benchmarks/index.rst b/docs/source/InstallationGuides/Benchmarks/index.rst index 909ad1ffa..f49e9ae99 100644 --- a/docs/source/InstallationGuides/Benchmarks/index.rst +++ b/docs/source/InstallationGuides/Benchmarks/index.rst @@ -1,8 +1,6 @@ Running HPC benchmarks on omnia clusters ========================================= - - .. toctree:: OneAPI OpenMPI_AOCC diff --git a/docs/source/Roles/Monitor/index.rst b/docs/source/Roles/Monitor/index.rst index ae32db2f2..d082385c0 100644 --- a/docs/source/Roles/Monitor/index.rst +++ b/docs/source/Roles/Monitor/index.rst @@ -80,5 +80,3 @@ The monitor role sets up `Grafana `_ , `Prometheus