2017-11-07 1 views
0

다른 클라우드 공급자가 제공하는 debian 인스턴스에서 실행할 때 약간 다르게 동작하도록 쉘 스크립트가 필요합니다.쉘 스크립트가 Google Cloud Compute Engine 인스턴스에서 실행되고 있는지 확인하는 가장 좋은 방법은 무엇입니까?

스크립트를 사용하여 EC2에서 실행중인 경우 내가 결정할 수 있습니다 : 그것은이 "EC2"를 반환합니다

head -c 3 /sys/hypervisor/uuid 

.

스크립트가 Google Cloud Compute Engine 인스턴스에서 실행되고 있는지를 알기 위해 사용할 수있는 것과 동일한 것은 무엇입니까?

답변

0

스크립트가 Google Compute Engine 인스턴스 내에서 실행되는지 확인하는 데 사용할 수있는 몇 가지 방법이 있습니다.

먼저 스크립트가 GCE 인스턴스에서 메타 데이터 서버를 쿼리하면 응답에 'Metadata-Flavor : Google'헤더가 포함됩니다. 당신은 또한 당신이 GCE 특정 문자열을 검색 할 수 있습니다/proc 디렉토리/MEM에서 DMI/SMBIOS 정보에 액세스 할 수 dmidecode와 도구를 사용할 수 있습니다

HTTP/1.1 200 OK Metadata-Flavor: Google 
Content-Type: application/text 
Date: Tue, 07 Nov 2017 16:33:41 GMT 
Server: Metadata Server for VM 
Content-Length: 22 
X-XSS-Protection: 1; mode=block 
X-Frame-Options: SAMEORIGIN 0.1/ computeMetadata/ 

예를 들어, curl metadata.google.internal -i을 실행하는 같은 출력을 생성합니다. 예를 들어

, 다음 명령은 GCE 인스턴스에서 실행되는 경우 :

Google Compute Engine 
:

sudo dmidecode -s system-product-name | grep "Google Compute Engine" 

이것은 GCE 인스턴스에서 실행되는 명령을 확인 할 다음과 같은 출력을 생성하는 것

관련 문제