diff --git a/CHANGELOG.md b/CHANGELOG.md index fca0368a606..30bfad9a90f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ +- Updated instructions for deploying PAYG on Azure - Added instructions for Server installation on SUSE Linux Enterprise Server 15 SP6 to Installation and Upgrade Guide - Add section about container image inspection to Image diff --git a/modules/specialized-guides/assets/images/AzureManagedApp.png b/modules/specialized-guides/assets/images/AzureManagedApp.png new file mode 100644 index 00000000000..1d78d22ff61 Binary files /dev/null and b/modules/specialized-guides/assets/images/AzureManagedApp.png differ diff --git a/modules/specialized-guides/assets/images/AzureManagedApp.svg b/modules/specialized-guides/assets/images/AzureManagedApp.svg new file mode 100644 index 00000000000..33c1f3f22a7 --- /dev/null +++ b/modules/specialized-guides/assets/images/AzureManagedApp.svg @@ -0,0 +1,755 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Customer Tenant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Icon-general-7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Managed Resource Group (MRG) + + + + Icon-general-7 + + + + + + + + + + + + + + + + + + + + Res.Group A + + + + Icon-general-7 + + + + + + + + + + + + + + + + + + + + Res.Group Z + + + + + + + + + + + + + Customer + + + + Icon-compute-21 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Icon-web-41 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Icon-storage-86 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Publisher + + + + Icon-general-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Azure Portal + + + + + + + + + + + + + + + + + + + + + + + + + + Managed Application + + + + + + SUMa VM + + + + + + Storage + + + + + + Network + + + + Icon-general-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MarketplaceBillingAPI + + + + + + + + + + + + + Emit billing meter + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-configure-the-image.adoc b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-configure-the-image.adoc index 3f2634136d2..49bfc5a5ba6 100644 --- a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-configure-the-image.adoc +++ b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-configure-the-image.adoc @@ -5,49 +5,147 @@ endif::[] This section covers initial preparation and configuration of the Managed Application on {azure}. -.Procedure: Configuring your {productname} instance +== Configuring your {productname} instance -. Start by logging into your Azure account at Azure Portal. +There are two tabs you need to fill out: _Basics_ and _Virtual Machine Settings_. -. In the Azure Portal, find the menu:[Virtual Machines] section. This can be done either through the **dashboard** or by using the **search bar**. +=== Fill Out the _Basics_ Tab -. Select menu:[Create a resource] in the top left corner of the portal. +.. Project Details + ... As with every resource in Azure, you need to provide a _Resource Group_ (RG). This can be an existing RG or you can create a new RG for this deployment. -. Choose menu:[Compute] and then select menu:[Virtual Machine]. +.. Instance Details + ... Region – where the instance should run. + ... Virtual Machine Name – the name of the VM in which {productname} will run. + ... Username – the administrator account for the {productname} VM. + ... SSH Key Source and Key – needed to access the machine. -. You will be guided through the **Create a virtual machine** process. ++ +[NOTE] +==== +We do not allow the use of a password here. This is to reduce the risk of brute force attacks. +==== + +.. Managed Application Details + ... Application Name – the name of the Managed Application. + ... Managed Resource Group (MRG) – where the {productname} VM and its resources will be deployed into. -. Fill in the required details such as subscription, resource group, and VM name. +=== Switch to the _Virtual Machine Settings_ Tab -. Choose a region for your VM. Ensure it complies with any geo-fencing policies you might have. +.. Instance Size + ... The default for the instance size is _D8as v5_, which is a good baseline for a production server. It provides enough resources for more data disks and IOPS throughput for disk and network. + https://learn.microsoft.com/en-us/azure/virtual-machines/dasv5-dadsv5-series -. In the **Image** dropdown, select the **{productname} {productnumber} with 24x7 Support ltd** or the **{productname} {productnumber} with 24x7 Support llc** image for your VM. If the image is not listed, select **Browse all public and private images** to find the required image. - - . Suggested sizes are selected by default for this VM. Configure optional features such as virtual CPUs, memory as required. ++ -. Set up an administrator account for the VM. This can be a username and SSH public key. +[NOTE] +==== +If you only need a test instance, you can go smaller and choose an instance size with 4 vCPUs and 16GB memory or use a _B-Series (Burstable)_ instance with a similar configuration. +==== -. Ensure the VM is connected to the appropriate virtual network (VNet) and subnet, especially if it needs to communicate with other specific services like {productname}. -For network requirements, see xref:specialized-guides:public-cloud-guide/payg/azure/payg-azure-server-setup.adoc[Azure Server Setup: Network Configuration]. ++ -. Configure additional settings such as storage, monitoring, or any extensions you may need. The following partitions are created by default when initializing the {azure} image: +.. Diagnostic Storage Account +... If you normally create a VM in the Azure portal, boot diagnostics are enabled by default using a managed storage account. You can choose an existing storage account or create a new one (default). -* **100 GB** for the root partition - -* **500 GB** for spacewalk storage - -* **80 GB** for the database. +.. OS Disk Size +... This is the root disk of the {productname} installation, which holds: +.... The OS and the {productname} application. +.... [path]``/var/cache`` – where you need to provide storage space for each product you want to manage. + ++ -. Once all configurations are set, review the settings. +The proposed default of 100GB should be accepted. -. Click "Create" to deploy your VM. +.. Database Disk Size +... This holds the Database for {productname} and needs a minimum of 50GB. The proposed value of 80GB is a good default suggestion. -. After the VM is deployed, you can access it via SSH. +.. Spacewalk Disk Size +... This holds the package repositories and should have at least 100GB. Additional requirements include: +.... 50GB for every SUSE product. +.... >360GB for every RedHat or other Linux product. + ++ -[NOTE] -.Usage and Costs +The proposed default of 500GB is a safe default to start with. + ++ + +[NOTE] ==== -Keep in mind that since this is a {payg} image, you will be billed according to your actual usage, including the number of systems you **manage** and **monitor** with this instance. It's essential to regularly track and review your usage to prevent unexpected costs and ensure alignment with your needs. +Repository synchronization will fail if this directory runs out of disk space. +==== ++ + +.. Public IP Address for the VM +... By default, a Public IP Address is created to access the {productname} VM and Application. +.... *If you use it, please ensure this is secure and access is limited.* + ++ + +[IMPORTANT] +==== +Running {productname} on the public cloud means implementing robust security measures. It is essential to limit, filter, monitor, and audit access to the instance. SUSE strongly advises against a globally accessible {productname} instance that lacks adequate perimeter security. ==== ++ + +You should carefully consider this, as the {productname} Server will have access to all managed nodes. If someone gains access to {productname}, it would mean access to all managed nodes as well. Threat actors actively scan for accessible machines with open management ports (e.g., SSH or RDP), especially on cloud providers. + ++ + +A Network Security Group (NSG) is created by default if you choose to create a Public IP. It only allows inbound SSH access via port 22 as a minimal protection for the public IP. + ++ + +It is recommended to additionally restrict access to a defined list of networks and allow Azure's virtual network to drop requests originating from other networks. + ++ + +Furthermore, you can add Just-in-Time access and/or use the Azure Bastion Service, Firewall, VPN, or private network methods to secure public access. + ++ +You can choose not to create a Public IP address (which is more secure), but you will need to use other methods to access the created {productname} VM and its Web UI for further configuration. Additionally, you must take care of the DNS and ensure a correct FQDN. + +.. DNS Prefix for the Public IP Address + +... The {productname} server must resolve its FQDN correctly. If the FQDN cannot be resolved, it can cause issues in several {productname} components. + +... To ensure that the {productname} domain name can be resolved by its clients, both server and client machines must be connected to a working DNS server. You also need to ensure that *reverse lookups* are correctly configured. + ++ + +If you use the Public IP address, a DNS name is automatically created from Azure. You only need to ensure that a unique name is used. The default suggestion creates one by including a random number to make the domain name unique. + ++ + +If you do not use the Public IP, you need to make sure that your setup can resolve the FQDN correctly as mentioned above. + +.. Virtual Network / Subnet + +... You will see a default proposal for a virtual network where {productname} will reside. By clicking _edit_, you can adjust it to your needs. + +... Remember that a _Managed Application_ will be deployed from SUSE to your Azure tenant. Therefore, this network is the network in the _Managed Resource Group (MRG)_ and cannot overlap with existing networks. + ++ + +At a later stage, you need to peer this network to the network with the nodes you want to manage. Alternatively, you can create the managed nodes within this network. + ++ + +With all fields filled out, press _Next_ or _Create_. The Azure portal will perform a final check and provide a summary screen of this deployment. + ++ + +If everything is correct, press _Create_ to deploy the _Managed Application_ for {productname}. + +=== After Deployment + +After the VM is deployed, you can access it via SSH. + +.Usage and Costs +[NOTE] +==== +Keep in mind that since this is a {payg} image, you will be billed according to your actual usage, including the number of systems you **manage** and **monitor** with this instance. It's essential to regularly track and review your usage to prevent unexpected costs and ensure alignment with your needs. +==== \ No newline at end of file diff --git a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-connections-and-bootstrapping.adoc b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-connections-and-bootstrapping.adoc index 830ce1a8bf8..dd7fe61c8b0 100644 --- a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-connections-and-bootstrapping.adoc +++ b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-connections-and-bootstrapping.adoc @@ -95,4 +95,3 @@ tcp_keepalive_cnt: 3 ---- . Restart the [literal]`venv-salt-minion service`. - diff --git a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-public-cloud-images.adoc b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-public-cloud-images.adoc index 943b927868a..1656d03c28b 100644 --- a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-public-cloud-images.adoc +++ b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-public-cloud-images.adoc @@ -4,30 +4,60 @@ ifeval::[{uyuni-content} == true] endif::[] Follow these step-by-step instructions to locate the {productname} {productnumber} {payg} image on {azure}. -You can also review the latest available images for the public cloud using Pint (Public Cloud Information Tracker). -See: link:https://pint.suse.com/[pint.suse.com] +. Firstly, log in to your Azure account, via https://portal.azure.com + ++ + +This makes sure that the Azure system is able to identify in which country your account get billed. + ++ + +It is important, as billing for {productname} {payg} is handled via the Azure Marketplace. +As there are restrictions on which countries this listing can be billed, the account you will transact to should be the one you are logged into. + ++ There are currently two offers for {productname} {payg} on {azure}: -* **{productname} {productnumber} with 24x7 Support ltd** -* **{productname} {productnumber} with 24x7 Support llc** +* ** {productname} {productnumber} with 24x7 Support (EMEA Orders only)** +* **{productname} {productnumber} with 24x7 Support** + ++ + +Pick the listing that reflects in which country your Azure account gets billed. It depends on the _sold to address_ of the account, see https://learn.microsoft.com/azure/cost-management-billing/manage/change-azure-account-profile. + ++ + +[NOTE] +==== +Do *not* go directly to the Azure Marketplace and get the offer. Even if the offers are visible, they should not be selected from here, as the Azure Web page is not able to identify your billing account. *Always log into the portal first* +==== + +. After you are logged into the Azure Portal, click btn:[Create a resource]. + +. Enter {productname} {productnumber} into the search field on the top and press kbd:[RETURN] + ++ + +You get a list of offerings and need to select the version of _{productname} {productnumber} with 24x7 Support_ depending on your billing country. + ++ +For example, for an account billed in Germany, it would be _{productname} {productnumber} with 24x7 Support (EMEA Orders Only)_. -.Procedure: Obtaining the {productname} {payg} Image on {azure} -. Start by logging into your {azure} account at {azure} Portal. ++ -. Once logged in, navigate to the **Virtual Machines** section. - This can be found in the dashboard or by using the search bar at the top of the {azure} Portal. +[NOTE] +==== +The offer show up as _Azure Application_ and not as a _Virtual Machine_ +==== -. Click on **Create a Virtual Machine.** - Here, you will be asked to fill in details such as the subscription, resource group, and virtual machine name. +. Click the description text to get the Product description and then on btn:[Plans + Pricing]. If this is shown with a description and plan, you have chosen the right offer. If there is nothing shown you selected the wrong one. -. During the creation of a virtual machine there is an option for **Image.** - Select the correct cloud image for your VM. +. Next, click on the btn:[Create_ button] -. If you do not find the image you need, you can browse the {azure} Marketplace. - Click on **See all images** or go to the **Marketplace** and search for the image you need. ++ -. After selecting your image, continue with the configuration of your virtual machine. - Review all settings, and then create your VM. +This will bring you to a form similar you may know from creating other Azure resources. +There are two tabs you need to fill _Basic_ and _Virtual Machine Settings_ \ No newline at end of file diff --git a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-requirements.adoc b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-requirements.adoc index adc71bc528c..3535171aa2b 100644 --- a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-requirements.adoc +++ b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-requirements.adoc @@ -5,14 +5,57 @@ endif::[] The {productname} {payg} offering in Azure need to communicate with the Azure Billing API, therefore it is not a simple virtual machine (VM) offering. -When setting up a {productname} {payg} instance on {azure}, it s essential to consider system requirements for optimal performance and functionality. -The default requirements outlined below have been tailored for smooth deployment and operation. +Azure has created the Managed Application offering for this use case. +For more information, see https://learn.microsoft.com/en-us/azure/azure-resource-manager/managed-applications/overview. -By default, certain disks are automatically generated when establishing a {productname} {payg} instance on {azure}. -To complete the setup of these disks, use the [literal]``mgr-storage-server tool. +.Architecture Diagram of a managed application +image::AzureManagedApp.svg[architecture of a managed application, 60%] + + + +== Application resource group + +This resource group ( in the diagram _ResGroup A_ ) holds the managed application instance, which could be translated as the metadata or definition of the offering. It can only contain a single resource. + +A customer has full access to the resource group and uses it to manage the life cycle of the managed application. + + + +== Managed resource group (MRG) + +This resource group ( in the diagram _MRG_ ) holds all the resources that are required by the managed application. For example, an application's virtual machines, storage accounts, and virtual networks. + +A _managed application_ is similar to a solution template in Azure Marketplace, with a few key differences: + +* The resources are deployed into a _managed resource group_ that is normally managed by the application's publisher. + +* It is present in the customer's subscription, but an identity in the publisher's tenant can be given access to the managed resource group. + +* The publisher's _management access_ and the customers _deny assignment_ are optional. + ++ + +There are different permission scenarios available. SUSE is using here the _Customer managed_ to give our customers of SUSE Manager full control. + +Customer managed:: + +* Customer +** Customer has full access to the solution (in the managed resource group) +** The customer manages the solution +* Publisher +** The publisher has no access to manage the solution. +** The publisher develops the application and publishes on Azure Marketplace but does not manage the application. +** The publisher licenses the application for billing through Azure Marketplace. + + + +== Instance requirements +When setting up a {productname} {payg} instance on {azure}, it's essential to consider system requirements for optimal performance and functionality. The default requirements outlined below have been tailored for smooth deployment and operation. + +By default, certain disks are automatically generated when establishing a {productname} {payg} instance on {azure}. To complete the setup of these disks, use the **mgr-storage-server** tool. .{azure} System Requirements -[cols="1,1"] +[cols="1,1", options="header"] |=== | Requirement | Details @@ -34,4 +77,4 @@ To complete the setup of these disks, use the [literal]``mgr-storage-server tool | Network Configuration | Typically configured by your organization -|=== +|=== \ No newline at end of file diff --git a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-server-setup.adoc b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-server-setup.adoc index 57f90058024..869f7109c13 100644 --- a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-server-setup.adoc +++ b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-server-setup.adoc @@ -5,26 +5,33 @@ ifeval::[{uyuni-content} == true] endif::[] .Procedure: Log in and Update the System -. SSH into your {azure} instance. +. Within the Managed Resource group you have set up, you will find the virtual machine. To get the details, click on the name of the virtual machine. +Here you can see the (public) IP address which you need to connect to the running instance. SSH into your {azure} instance. + +. Switch to the root user and update the system . -. Switch to the root user and update the system. + +[source,shell] ---- sudo -i transactional-update ---- -+ + . Reboot the system. + == Network Configuration // (Azure requirement, not ours). -For {productname} {payg} setup it is required, that a new Virtual Network and a new subnet is configured. -It is impossible to setup the instance in an existing network. -When you setup new clients which should be managed, take care that you put them into the private subnet which is configured with {productname} {payg}. +Remember, the {productname} {payg} setup requires, that a new Virtual Network and a new subnet is configured, which was performed in the previous step. +Because {productname} {payg} is deployed as a 'Managed Application' it is not possible to deploy into an existing network. + +Before moving on to the next step, ensure the network is correctly configured: + +When you setup new clients which should be managed, take care that you put them into the private subnet which is configured with {productname} {payg} or peer your networks. [NOTE] ==== @@ -37,10 +44,17 @@ For more information, see link:https://learn.microsoft.com/en-us/azure/virtual-n .Procedure: Network Configuration . Ensure the network configuration aligns such that `hostname -f` yields the identical name as the reverse DNS lookup of the private IP address. For instance, when executing `nslookup 10.0.0.X`. -. Insert the private IP with its Fully Qualified Domain Name (FQDN) into `/etc/hosts`. For example: + -`10.0.0.4 instancename.internal.cloudapp.net` +. Insert the private IP with its Fully Qualified Domain Name (FQDN) into `/etc/hosts`. + ++ + +For example: + ++ -. Edit `/etc/sysconfig/network/config` and append `internal.cloudapp.net` to `NETCONFIG_DNS_STATIC_SEARCHLIST`. +`10.0.0.4 _instancename.location_.internal.cloudapp.azure.com` + +. Edit `/etc/sysconfig/network/config` and append `internal.cloudapp.azure.com` to `NETCONFIG_DNS_STATIC_SEARCHLIST`. . Execute `netconfig update`. @@ -48,21 +62,25 @@ For more information, see link:https://learn.microsoft.com/en-us/azure/virtual-n [IMPORTANT] ==== -When adding new virtual machines (VMs), such as {sles} 15 SP5, it is crucial to ensure that they are configured within the same subnet as the {productname} instance. +When adding new virtual machines (VMs), such as {sles}, it's crucial to ensure that they are configured within the same subnet as the {productname} instance, or that you have setup network peering. This step is essential for successful network setup and integration. Additionally, be mindful of the geographical restrictions associated with your plans. -Make sure to utilize the appropriate Azure accounts which correspond to the specific geographic zones of your project. +Make sure to utilize the appropriate Azure accounts which correspond to the specific geographic zones of your project. ==== == Configure Storage .Procedure: Configuring Storage + . SSH into your {azure} instance. -. Switch to the root user and update the system. + +. Switch to the root user and update the system: + + +[source,shell] ---- sudo -i transactional-update @@ -70,28 +88,60 @@ transactional-update . Reboot the system. -. Configure storage with the [command]``mgr-storage-server`` tool or in the case of the proxy use [command]``mgr-storage-proxy``. -For more information, see [command]``mgr-storage-server --help`` or [command]``mgr-storage-proxy --help``. -This tool simplifies creating the container storage and database volumes. -. Format the command in the following manner: +. Configure storage using the appropriate tool: + +* For a standard setup, use [command]``mgr-storage-server``. +* For a proxy configuration, use [command]``mgr-storage-proxy``. + +For more details, run: + + +[source,shell] ---- -mgr-storage-server [] +mgr-storage-server --help +mgr-storage-proxy --help ---- + +These tools simplify the creation of container storage and database volumes. + +. Identify the block devices: + + -For example: -+ + +[source,shell] ---- -mgr-storage-server /dev/nvme1n1 /dev/nvme2n1 +ls /dev/disk/azure/scsi1/ ---- + +This command lists the disks created during deployment. Typically: + +* `lun3` is the storage disk. +* `lun4` is the database disk. + +. Configure storage using the identified devices: + + +[source,shell] +---- +mgr-storage-server /dev/disk/azure/scsi1/lun3 /dev/disk/azure/scsi1/lun4 +---- + [NOTE] ==== -This command will create the following persistent storage volumes at [path]``/var/lib/containers/storage/volumes``: +This command creates persistent storage volumes at: -For more information, see xref:installation-and-upgrade:container-management/persistent-container-volumes.adoc[]. +[path]``/var/lib/containers/storage/volumes`` + +For more details, see xref:installation-and-upgrade:container-management/persistent-container-volumes.adoc[]. ==== -. As root run `mgradm install podman ` to deploy. +. Deploy using `mgradm` as root: + ++ + +[source,shell] +---- +mgradm install podman +---- diff --git a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-webui-configuration.adoc b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-webui-configuration.adoc index ea5d5f72df6..d61a75ce6c6 100644 --- a/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-webui-configuration.adoc +++ b/modules/specialized-guides/pages/public-cloud-guide/payg/azure/payg-azure-webui-configuration.adoc @@ -61,4 +61,4 @@ Ubuntu and Debian are not currently supported by our RMT servers. {productname} offers support for {rhel} clients; however it is important to note that content still needs to be added manually and is not available through the cloud-based RMT service. For more information, see xref:client-configuration:registration-overview-redhat.adoc[Red Hat Client Registration]. -==== +==== \ No newline at end of file diff --git a/modules/specialized-guides/pages/public-cloud-guide/payg/payg-overview.adoc b/modules/specialized-guides/pages/public-cloud-guide/payg/payg-overview.adoc index a59f89d1b04..52acc8c098b 100644 --- a/modules/specialized-guides/pages/public-cloud-guide/payg/payg-overview.adoc +++ b/modules/specialized-guides/pages/public-cloud-guide/payg/payg-overview.adoc @@ -26,6 +26,7 @@ The email should include proof of at least 10 active SLES for SAP {payg} instanc The subscription key is valid for one year and can be renewed by providing updated proof of the instances at the end of the subscription period. ==== + == Benefits of Using {payg} The {productname} {payg} instance offers a flexible solution tailored to the modern business landscape. @@ -41,4 +42,4 @@ Key benefits include: * *Rapid Deployment:* Quickly run the image of your choice and begin managing your systems, enhancing responsiveness to your needs. -* *Integration with Cloud Services:* Leverage {productname} {payg} on {aws}, {azure}, or {gcp} taking advantage of cloud infrastructure for an agile systems management experience. +* *Integration with Cloud Services:* Leverage {productname} {payg} on {aws}, {azure}, or {gcp} taking advantage of cloud infrastructure for an agile systems management experience. \ No newline at end of file