Deployment
This section describes step by step how to deploy the OSISM Testbed.
Initializing
-
Request access from the administrator of the respective cloud or get access to an OpenStack cloud.
-
Clone the osism/testbed repository.
The repository can also be cloned to any other location.
mkdir -p ~/src/github.com/osismgit clone https://github.com/osism/testbed ~/src/github.com/osism/testbedcd ~/src/github.com/osism/testbed -
Configure your cloud access profile
The OSISM automation needs credentials to deploy resources on your cloud. These are stored in a file called
terraform/clouds.yaml, which you create in the following steps.To create this file, log in to the OpenStack Dashboard (Horizon) of your cloud provider and create an application credential:
- Navigate to Identity → Application Credentials.
- Click Create Application Credential.
- Enter a name (e.g.,
OSISM Testbed) and accept all other defaults. - Click Create Application Credential.
- In the confirmation dialog, click Download clouds.yaml.
Open the downloaded file and rename the cloud entry (typically
openstack) to match your environment's profile name from the table on the prerequisites page (e.g.,regiocloud). The cloud name inclouds.yamlmust match theENVIRONMENTvalue used in subsequentmakecommands.terraform/clouds.yaml (example for REGIO.cloud)clouds:regiocloud: # <- renamed from "openstack" to match ENVIRONMENTauth:auth_url: https://keystone.services.a.regiocloud.tech/v3application_credential_id: "YOUR_ID"application_credential_secret: "YOUR_SECRET"region_name: RegionAidentity_api_version: 3auth_type: v3applicationcredentialMove the file to
terraform/clouds.yamlin the testbed repository. -
Prepare for the deployment.
The versions of Ansible and OpenTofu are managed automatically, and necessary dependencies are cloned.
make preparetipIf any error occurs during preparation, and you want to run the preparation again, it is important to run
make wipe-local-installfirst. Otherwise, the preparation will not be redone completely, and necessary parts will be missing later on.
Start deployment
-
Create the infrastructure, deploy the OSISM Manager and bootstrap all nodes.
- Deploy latest version
- Deploy a stable version
make ENVIRONMENT=regiocloud managermake ENVIRONMENT=regiocloud VERSION_MANAGER=8.0.1 managerReplace the version with the version you prefer. Check the OSISM release notes to find out what's available.
-
After the bootstrap, you can log in to the OSISM Manager via SSH.
make ENVIRONMENT=regiocloud loginYou can log in to the nodes of the cluster via the OSISM Manager.
osism console testbed-node-0 -
Deploy all services.
- Deployment in single steps
- Deployment of all services
It is also possible to deploy the services step by step on the OSISM Manager. To do this, first log in with
make ENVIRONMENT=regiocloud loginand then execute the deployment scripts one after the other. It is recommended to do this within a screen session.Deploying the services takes some time and depends on how much bandwidth is available, how the instances are equipped, etc. 90–120 minutes is not unusual when Ceph and OpenStack are fully deployed.
To speed up the Ansible playbooks, ARA can be disabled. This is done by executing
/opt/configuration/scripts/disable-ara.sh. Run this script before the deployment scripts. Afterwards, no more logs are available in the ARA web interface. To re-enable ARA use/opt/configuration/scripts/enable-ara.sh.There is also the option of pre-population of images with
/opt/configuration/scripts/pull-images.shso that deployments do not have to be lengthy. Run this script before the deployment scripts. The script will start background tasks and not wait for them to finish before exiting. To wait for all containers to be pulled, you can useosism wait --live(waiting for all tasks to finish). Depending on the internet connection, this should take around 2 to 3 minutes./opt/configuration/scripts/deploy/001-helpers.sh/opt/configuration/scripts/deploy/100-ceph-with-ansible.sh/opt/configuration/scripts/deploy/200-infrastructure.sh/opt/configuration/scripts/deploy/300-openstack.sh/opt/configuration/scripts/deploy/400-monitoring.sh/opt/configuration/scripts/deploy/500-kubernetes.shPrepare OpenStack resources like public network, flavors and images by running
/opt/configuration/scripts/bootstrap.sh. Run this script after the deployment scripts.infoIf you only want to deploy the monitoring services with
/opt/configuration/scripts/deploy/400-monitoring.sh, a few dependencies must be deployed first. You can then use the monitoring services without having to install a complete OpenStack & Ceph environment.osism apply commonosism apply loadbalancerosism apply opensearchosism apply mariadbIn this single-step deployment, Ceph, OpenStack and all necessary infrastructure services (MariaDB, RabbitMQ, ...) are deployed. Depending on the cloud, the deployment will take some time. Up to two hours is not unusual.
make ENVIRONMENT=regiocloud deploy
Verify and adjust deployment
-
If you want to verify the deployment with refstack run
/opt/configuration/scripts/check.sh. This step will take some time and is optional. -
The machine images required for the use of Kubernetes Cluster API and the amphora driver of OpenStack Octavia service are not provided by default to save resources on the OSISM Testbed and improve deployment time. These can be provisioned if required.
/opt/configuration/scripts/bootstrap/301-openstack-octavia-amphora-image.sh/opt/configuration/scripts/bootstrap/302-openstack-k8s-clusterapi-images.sh -
If you want, you can create a test project with a test user after login. It also creates an instance with a volume attached to a network with a router. This step is optional.
osism apply --environment openstack test -
When the OSISM Testbed is no longer needed, it can be deleted.
make ENVIRONMENT=regiocloud clean