Dokumen ini menjelaskan cara menyesuaikan image sistem operasi (OS) di Cloud de Confiance by S3NS untuk menggunakan image OS Enterprise yang lisensinya Anda miliki.
Cloud de Confiance by S3NS menyediakan image OS untuk Debian, Ubuntu LTS, Rocky Linux, dan Container-Optimized OS. Jika Anda ingin menggunakan salah satu gambar yang disediakan ini, lanjutkan untuk membuat instance dan pilih gambar yang ingin Anda gunakan selama pembuatan instance.
Jika Anda memiliki lisensi untuk OS tingkat perusahaan yang Cloud de Confiance by S3NS tidak menyediakan image OS, seperti Windows, Red Hat Enterprise Linux (RHEL), atau SUSE Linux Enterprise Server (SLES), gunakan skrip yang disediakan dalam dokumen ini untuk menyesuaikan image agar dapat digunakan dengan lisensi Anda. Skrip ini menginstal driver yang diperlukan agar Anda dapat menggunakan image untuk membuat instance di Cloud de Confiance by S3NS.
Sebelum memulai
- Instal
jqpemroses command line.
- Jika Anda belum melakukannya, upload disk yang berisi image OS yang ingin Anda gunakan ke bucket Cloud Storage.
- Pastikan Anda memiliki izin yang diperlukan untuk membuat image kustom.
- 
  
  Jika Anda belum melakukannya, siapkan autentikasi.
  Autentikasi memverifikasi identitas Anda untuk mengakses Cloud de Confiance by S3NS layanan dan API. Untuk menjalankan
  kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
  Compute Engine dengan memilih salah satu opsi berikut:
  
   
   
     
   
  
   
   
     
   
  
   
   
     
   
  
 
 
 
  
    
      Select the tab for how you plan to use the samples on this page: gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut: gcloud init
- Set a default region and zone.
 RESTUntuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, Anda menggunakan kredensial yang Anda berikan ke gcloud CLI. Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut: gcloud initUntuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Cloud de Confiance . Skrip adaptasi OSUntuk membantu Anda menyesuaikan gambar untuk Cloud de Confiance by S3NS, Cloud de Confiance by S3NS menyediakan skrip yang menyelesaikan langkah-langkah berikut: - Membuat instance dengan disk dari Cloud Storage dan menjalankan alat adaptasi OS di disk instance. Proses ini menginstal driver yang diperlukan agar image OS Anda berfungsi di Cloud de Confiance by S3NS.
- Mengekstrak laporan adaptasi OS dan menyalin file output ke komputer lokal Anda. Laporan ini memberikan informasi tentang hasil proses adaptasi, beserta detail tentang OS yang terdeteksi. Jika skrip tidak berhasil dijalankan, laporan akan memberikan error, peringatan, dan item tindakan untuk memperbaiki masalah adaptasi.
- Membuat image dari disk instance. Kemudian, Anda dapat menggunakan image ini untuk membuat instance di Cloud de Confiance by S3NS.
- Menghapus instance dan disk yang dibuat selama proses ini. Langkah ini membersihkan resource yang tidak diperlukan dari project Anda.
 Skrip berikut menyesuaikan gambar untuk digunakan di Cloud de Confiance by S3NS: Skrip adaptasi OS penuh#!/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 " -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}" ;; 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}"Jalankan skrip adaptasi OSUntuk menyesuaikan image OS Anda untuk Cloud de Confiance by S3NS, lakukan hal berikut: - Buat skrip shell.
- Salin skrip adaptasi OS dan tempelkan ke file skrip shell Anda.
- Jalankan skrip shell Anda dengan tanda berikut: - SCRIPT_NAME \ -g 'INPUT_GCS_OBJECT' \ -o 'IMAGE_NAME' \ -z 'ZONE' \ -p 'PROJECT' - Ganti kode berikut: - SCRIPT_NAME: nama file skrip adaptasi OS
- INPUT_GCS_OBJECT: jalur ke disk di bucket Cloud Storage Anda
- IMAGE_NAME: nama untuk image yang diadaptasi
- ZONE: zona untuk gambar yang disesuaikan
- PROJECT: Cloud de Confiance by S3NS project ID Anda
 
 Setelah skrip berhasil dijalankan, skrip akan mencetak pesan berikut: Adapted image: IMAGE_NAME Langkah berikutnyaBuat instance dari image Anda. Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya. Terakhir diperbarui pada 2025-10-19 UTC. [[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-10-19 UTC."],[],[]]
-