In diesem Dokument wird beschrieben, wie Sie Betriebssystem-Images (OS-Images) inCloud de Confiance by S3NS anpassen, um die Enterprise-OS-Images zu verwenden, für die Sie Lizenzen haben.
Cloud de Confiance by S3NS bietet Betriebssystem-Images für Debian, Ubuntu LTS, Rocky Linux und Container-Optimized OS. Wenn Sie eines dieser bereitgestellten Images verwenden möchten, erstellen Sie eine Instanz und wählen Sie das gewünschte Image bei der Instanzerstellung aus.
Wenn Sie eine Lizenz für ein Unternehmensbetriebssystem haben, für das Cloud de Confiance by S3NS kein Betriebssystem-Image bereitgestellt wird, z. B. Windows, Red Hat Enterprise Linux (RHEL) oder SUSE Linux Enterprise Server (SLES), verwenden Sie das in diesem Dokument bereitgestellte Skript, um ein Image für die Verwendung mit Ihrer Lizenz anzupassen. Das Skript installiert die Treiber, die erforderlich sind, damit Sie mit Ihrem Image Instanzen in Cloud de Confiance by S3NSerstellen können.
Hinweis
- Installieren Sie den
jq-Befehlszeilenprozessor. - Falls noch nicht geschehen, laden Sie ein Laufwerk, das das gewünschte Betriebssystem-Image enthält, in einen Cloud Storage-Bucket hoch.
- Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Erstellen benutzerdefinierter Bilder haben.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Cloud de Confiance by S3NS Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren:
Wählen Sie den Tab für die geplante Verwendung der Beispiele auf dieser Seite aus:
gcloud
-
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:
gcloud init
-
- Legen Sie eine Standardregion und -zone fest.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an.
Weitere Informationen finden Sie in der Dokumentation zur Cloud de Confiance -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Unterstützte Betriebssysteme
Der Prozess für das Betriebssystem-Anpassungsskript, bei dem das Tool v2v-tpc verwendet wird, ist nur für die Anpassung der folgenden BYOL-Betriebssysteme (Bring Your Own License) vorgesehen:
- Windows Server 2016, 2019, 2022, 2025
- Red Hat Enterprise Linux (RHEL) 8.x, 9.x, 10.x
- SUSE Linux Enterprise Server (SLES) 12.x, 15.x
Wenn Sie andere Betriebssysteme wie AlmaLinux oder Fedora Cloud ausführen möchten, verwenden Sie eines der öffentlich verfügbaren Betriebssystem-Images.
Betriebssystemanpassungsskript
Damit Sie Bilder für Cloud de Confiance by S3NSanpassen können, Cloud de Confiance by S3NS bietet ein Skript, das die folgenden Schritte ausführt:
- Erstellt eine Instanz mit dem Laufwerk aus Cloud Storage und führt das Tool zur Anpassung des Betriebssystems auf dem Laufwerk der Instanz aus. Bei diesem Vorgang werden die Treiber installiert, die für die Funktion Ihres Betriebssystem-Images auf Cloud de Confiance by S3NSerforderlich sind.
- Extrahiert den Bericht zur Betriebssystemanpassung und kopiert die Ausgabedateien auf Ihren lokalen Computer. Dieser Bericht enthält Informationen zu den Ergebnissen des Anpassungsprozesses sowie Details zum erkannten Betriebssystem. Wenn das Skript nicht erfolgreich ausgeführt wird, enthält der Bericht Fehler, Warnungen und Maßnahmen zur Behebung von Anpassungsproblemen.
- Erstellt ein Image aus dem Laufwerk der Instanz. Anschließend können Sie dieses Image verwenden, um Instanzen auf Cloud de Confiance by S3NSzu erstellen.
- Löscht die Instanz und das Laufwerk, die während dieses Vorgangs erstellt wurden. In diesem Schritt werden nicht benötigte Ressourcen aus Ihrem Projekt entfernt.
Das folgende Script passt Bilder für die Verwendung in Cloud de Confiance by S3NSan:
Vollständiges Betriebssystemanpassungsskript
#!/usr/bin/env bash # Sets variables set -e set -x set -o pipefail UNIQUE_ID='' ZONE='' PROJECT='' INPUT_IMAGE='' INPUT_DISK='' IMAGE_NAME='' ADAPTATION_INSTANCE_TYPE='c3-highcpu-4' # needs to support nested virtualization usage() { echo "" echo "Usage:" echo " $0 -g -o -z -t -p " echo "" echo "" echo "Parameters:" echo " -iOR -d echo " -oOR -g " " echo " -z" echo " -t" echo " -p" echo " -h (help)" echo "" } while getopts ":i:d:g:o:z:t:p:h" opt; do case "${opt}" in i) INPUT_IMAGE="${OPTARG}" ;; d) INPUT_DISK="${OPTARG}" ;; g) INPUT_GCS_OBJECT="${OPTARG}" ;; o) IMAGE_NAME="${OPTARG}" ;; z) ZONE="${OPTARG}" ;; p) PROJECT="${OPTARG}" ;; h) echo "$0 help:" usage exit 0 ;; *) echo "Unknown arg -${opt} ${OPTARG}" usage exit 1 ;; esac done shift $((OPTIND-1)) # Defines errors if [[ -n "${INPUT_IMAGE}" && -n "${INPUT_DISK}" ]] || [[ -n "${INPUT_IMAGE}" && -n "${INPUT_GCS_OBJECT}" ]] || [[ -n "${INPUT_DISK}" && -n "${INPUT_GCS_OBJECT}" ]]; then echo "Only one of -i, -d, or -g must be specified" usage exit 1 fi if [[ -z "${IMAGE_NAME}" ]]; then echo "The name of the image must be specified" usage exit 1 fi if [[ -z "${ZONE}" ]]; then echo "Zone must be specified" usage exit 1 fi if [[ -z "${PROJECT}" ]]; then echo "Project must be specified" usage exit 1 fi # Creates disk OS_ADAPTATION_IMAGE="projects/s3ns-system:v2v-community/global/images/family/v2v-tpc-stable" if [[ -z "${UNIQUE_ID}" ]]; then UNIQUE_ID=$(head /dev/urandom | tr -dc a-z0-9 | head -c4) fi if [[ -n "${INPUT_IMAGE}" ]]; then DISK_ID="${IMAGE_NAME}-disk-${UNIQUE_ID}" echo "Creating disk ${DISK_ID} from image ${INPUT_IMAGE}..." gcloud compute disks create "${DISK_ID}" --zone="${ZONE}" --image "${INPUT_IMAGE}" elif [[ -n "${INPUT_GCS_OBJECT}" ]]; then DISK_ID="${IMAGE_NAME}-disk-${UNIQUE_ID}" echo "Creating disk ${DISK_ID} from GCS object ${INPUT_GCS_OBJECT}..." CURL_OUTPUT=$(curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H 'Content-Type: application/json' \ -X POST \ "https://compute.s3nsapis.fr/compute/v1/projects/s3ns-system:${PROJECT}/zones/${ZONE}/disks" \ -d '{"name":"'"${DISK_ID}"'", "sourceStorageObject":"'"${INPUT_GCS_OBJECT}"'"}') OPERATION_ID=$(jq -r '.name' <<< "${CURL_OUTPUT}") while ! gcloud compute operations describe --zone "${ZONE}" --format=json \ "${OPERATION_ID}" | jq -e '.status == "DONE"' >/dev/null; do sleep 5 done elif [[ -n "${INPUT_DISK}" ]]; then DISK_ID="${INPUT_DISK}" fi QUERY_PATH='v2v/report' DEVICE_NAME="dev-${UNIQUE_ID}" OUTPUT_DIR='/var/v2v' STARTUP_SCRIPT="docker run --privileged -v /dev:/dev -v ${OUTPUT_DIR}:${OUTPUT_DIR} v2v-tpc -vv --log file=${OUTPUT_DIR}/output.log,level=trace --report file=${OUTPUT_DIR}/report.json --report file=http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/${QUERY_PATH},headers=Metadata-Flavor=Google --license=byol --in-place --drive file=/dev/disk/by-id/google-${DEVICE_NAME},format=raw" # Creates instance and runs adaptation tool on disk echo "Adapting disk ${DISK_ID}" INSTANCE="os-adaptation-instance-${UNIQUE_ID}" gcloud compute instances create "${INSTANCE}" \ --zone="${ZONE}" \ --machine-type="${ADAPTATION_INSTANCE_TYPE}" \ --enable-nested-virtualization \ --metadata="^@@@^enable-guest-attributes=TRUE@@@startup-script=${STARTUP_SCRIPT}" \ --create-disk="auto-delete=yes,boot=yes,image=${OS_ADAPTATION_IMAGE}" \ --disk="name=${DISK_ID},auto-delete=no,device-name=${DEVICE_NAME}" # Retrieves report while [[ -z "${REPORT}" ]]; do sleep 5 set +e REPORT=$(gcloud compute instances get-guest-attributes "${INSTANCE}" \ --zone="${ZONE}" \ --query-path="${QUERY_PATH}" \ --format='value(value)') 2>/dev/null echo -n '.' set -e done echo "Operating System adaptation report:" jq . <<< "${REPORT}" gcloud compute scp --recurse "${INSTANCE}:${OUTPUT_DIR}" "$(pwd)" echo "Output file: $(pwd)/v2v/output.log, Report file: $(pwd)/v2v/report.json" echo "Deleting ${INSTANCE}..." gcloud compute instances delete "${INSTANCE}" --zone="${ZONE}" --quiet if jq --exit-status '.status != "SUCCESS"' <<< "${REPORT}" >/dev/null; then echo "Operating System adaptation failed" exit 1 fi # Creates image echo "Operating System adaptation successful, creating image..." IMAGE="image-${UNIQUE_ID}" gcloud compute images create "${IMAGE}" \ --source-disk-zone="${ZONE}" \ --guest-os-features="$(jq --raw-output '.guest_os_features | join(",")' <<< "${REPORT}")" \ --source-disk="${DISK_ID}" if [[ -z "${INPUT_DISK}" ]]; then gcloud compute disks delete "${DISK_ID}" --zone="${ZONE}" --quiet fi echo "Adapted image: ${IMAGE}"
Script zur Betriebssystemanpassung ausführen
So passen Sie Ihr Betriebssystem-Image für Cloud de Confiance by S3NSan:
- Shell-Script erstellen
- Kopieren Sie das Script zur Betriebssystemanpassung und fügen Sie es in Ihre Shell-Scriptdatei ein.
Führen Sie Ihr Shell-Script mit den folgenden Flags aus:
SCRIPT_NAME \ -g 'INPUT_GCS_OBJECT' \ -o 'IMAGE_NAME' \ -z 'ZONE' \ -p 'PROJECT'
Ersetzen Sie Folgendes:
SCRIPT_NAME: der Name der Scriptdatei für die BetriebssystemanpassungINPUT_GCS_OBJECT: der Pfad zum Laufwerk in Ihrem Cloud Storage-BucketIMAGE_NAME: der Name für das angepasste BildZONE: Die Zone für das angepasste ImagePROJECT: Ihre Cloud de Confiance by S3NS Projekt-ID
Nachdem das Skript erfolgreich ausgeführt wurde, wird die folgende Meldung ausgegeben:
Adapted image: IMAGE_NAME