In diesem Dokument wird beschrieben, wie Sie Betriebssystem-Images (OS) inTrusted Cloud by S3NS anpassen, um die Enterprise-Betriebssystem-Images zu verwenden, für die Sie Lizenzen haben.
Trusted Cloud by S3NS stellt Betriebssystem-Images für Debian, Ubuntu LTS, Rocky Linux und Container-Optimized OS bereit. Wenn Sie eines dieser bereitgestellten Images verwenden möchten, erstellen Sie eine Instanz und wählen Sie das gewünschte Image während der Instanzerstellung aus.
Wenn Sie eine Lizenz für ein Enterprise-Betriebssystem haben, für das Trusted Cloud 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 Sie benötigen, um mit Ihrem Image Instanzen in Trusted Cloud by S3NSzu erstellen.
Hinweise
- Installieren Sie den
jq
-Befehlszeilenprozessor. - Wenn Sie das noch nicht getan haben, laden Sie ein Laufwerk mit dem Betriebssystem-Image, das Sie verwenden möchten, 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 Trusted Cloud by S3NS -Dienste und APIs überprüft.
Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:
Select the tab for how you plan to use the samples on this page:
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 folgendem Befehl:
gcloud init
- Set a default region and zone.
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. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit folgendem Befehl:
gcloud init
Weitere Informationen finden Sie in der Dokumentation zur Trusted Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Skript zur Betriebssystemanpassung
Damit Sie Bilder für Trusted Cloud by S3NSanpassen können, Trusted Cloud 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 Betriebssystemanpassung auf dem Laufwerk der Instanz aus. Bei diesem Vorgang werden die Treiber installiert, die für die Funktion Ihres Betriebssystem-Images auf Trusted Cloud 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 vom Laufwerk der Instanz. Anschließend können Sie dieses Image verwenden, um Instanzen auf Trusted Cloud by S3NSzu erstellen.
- Löscht die Instanz und das Laufwerk, die während dieses Vorgangs erstellt wurden. Bei diesem Schritt werden nicht benötigte Ressourcen aus Ihrem Projekt entfernt.
Mit dem folgenden Skript werden Bilder für die Verwendung in Trusted Cloud by S3NSangepasst:
Vollständiges Skript zur Betriebssystemanpassung
#!/usr/bin/env bash # Sets variables set -e set -x set -o pipefail UNIQUE_ID='' TPC_PREFIX='' 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 " -i
OR -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}" ;; t) TPC_PREFIX="${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 "${TPC_PREFIX}" ]]; then echo "TPC prefix 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/${TPC_PREFIX}: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/${TPC_PREFIX}:${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}"Betriebssystemanpassungsskript ausführen
So passen Sie Ihr Betriebssystem-Image für Trusted Cloud by S3NSan:
- Erstellen Sie ein Shell-Skript.
- Kopieren Sie das Script zur Anpassung an das Betriebssystem und fügen Sie es in Ihre Shell-Script-Datei ein.
Führen Sie Ihr Shell-Skript mit den folgenden Flags aus:
SCRIPT_NAME \ -g 'INPUT_GCS_OBJECT' \ -o 'IMAGE_NAME' \ -z 'ZONE' \ -p 'PROJECT' \ -t 'TPC_PREFIX'
Ersetzen Sie Folgendes:
SCRIPT_NAME
: der Name der Datei mit dem BetriebssystemanpassungsskriptINPUT_GCS_OBJECT
: der Pfad zum Laufwerk in Ihrem Cloud Storage-BucketIMAGE_NAME
: der Name für das angepasste ImageZONE
: die Zone für das angepasste BildPROJECT
: Ihre Trusted Cloud by S3NS -Projekt-IDTPC_PREFIX
: ein Präfix, das für Ihre Ressourcennamen verwendet wird
Nachdem das Skript erfolgreich ausgeführt wurde, wird die folgende Meldung ausgegeben:
Adapted image: IMAGE_NAME
Nächste Schritte
Instanz aus Ihrem Image erstellen
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-19 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-19 (UTC)."],[],[]] -