Trento Installation Automation
Automated testing infrastructure for Trento release candidate artifacts. This tool is used to provision Azure VMs and install Trento using the official Ansible collection to validate RPM packages before release on supported versions of SUSE SLES for SAP.
Overview
The workflow:
-
Provision Azure VMs (control and target nodes) using Terraform
-
Register SUSE machines and activates required modules
-
Download release candidate RPMs from Azure Blob Storage
-
Set up local RPM repositories on target machines
-
Install the Trento Ansible collection on control machines
-
Run the
suse.trento.siteAnsible playbook to install Trento & Trento agent (Agents are installed on same machine as Trento server). -
Verify Healthcheck endpoints in every Trento instance from the runner.
-
Optionally destroy the infrastructure after tests
Infrastructure
The infrastructure consists of paired VMs for each supported SLES version:
-
Control nodes (
control*): Run Ansible playbooks to install Trento on their paired target node -
Target nodes (
target*): Where Trento server gets installed
VM naming convention: {control|target}{slesVersion}sp{spVersion}
Example: control15sp6 and target15sp6 for SLES 15 SP6.
Prerequisites
Azure Blob Storage Structure
RPMs must be uploaded to Azure Blob Storage with the following structure:
<container>/
├── 15/
│ ├── 4/
│ │ ├── trento-web-*.rpm
│ │ ├── trento-wanda-*.rpm
│ │ ├── trento-checks-*.rpm
│ │ ├── trento-agent-*.rpm
│ │ └── ansible-trento-*.rpm
│ ├── 5/
│ │ └── ...
│ └── 6/
│ └── ...
└── 16/
└── 0/
└── ...
The directory structure follows the pattern: <sles_major_version>/<sp_version>/
Each version directory should contain:
-
trento-web-*.rpm- Trento web server -
trento-wanda-*.rpm- Trento checks engine -
trento-checks-*.rpm- Trento checks catalog -
trento-agent-*.rpm- Trento agent -
ansible-trento-*.rpm- Ansible collection for Trento installation
| If a package is not provided in blob storage, it will be installed from the official SUSE release sources instead. This is useful when you want to test only a specific package (e.g., Ansible) while installing the rest from official SUSE release sources, or vice versa. |
GitHub Configuration
Secrets
| Secret | Description |
|---|---|
|
Azure service principal credentials (JSON) |
|
SSH private key for VM access |
|
SAS token for blob storage access |
|
SUSE subscription registration code |
|
SUSE subscription email |
|
Trento web admin password |
Variables
| Variable | Description |
|---|---|
|
Azure resource group name |
|
Owner tag for Azure resources |
|
Storage account name |
|
Container with RPMs |
|
Container for Terraform state |
|
SSH public key for VM access |
|
Newline-separated list of SLES versions to test (see below) |
License
See LICENSE file.