티스토리 뷰

반응형

목표

- 현재 SSH 접속한 Google Colud Engine VM External IP 얻고 싶다.

- 더해서 번거롭게 zone 정보를 묻지 않게 하고 싶다.

 

zone

 

1) VM instance zone 값을 가져오기

$ZONE=$(curl "http://metadata.google.internal/computeMetadata/v1/instance/zone" -H "Metadata-Flavor: Google")

 

- 링크참조: https://cloud.google.com/compute/docs/storing-retrieving-metadata

- response format "projects/618279678221/zones/us-east1-b" 같은 형태를 가진다

 

2) 원하는 zone 값만 추출하기

$ZONE=${ZONE##*/}

 

- 링크참조: https://stackoverflow.com/questions/19482123/extract-part-of-a-string-using-bash-cut-split

- "projects/618279678221/zones/us-east1-b" 에서 "us-east1-b" 추출된다.

 

 EXTERNAL_IP

 

- 링크참조: https://cloud.google.com/compute/docs/storing-retrieving-metadata

$EXTERNAL_IP=$(curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip" -H "Metadata-Flavor: Google")

$echo ${EXTERNAL_IP}

 

1) 링크에서는 network-interfaces/ 언급되어 있었음

2) network-interfaces/0/ 으로 index 지정해주니 많은 하위 정보들이 나왔고

3) network-interfaces/0/access-configs/0/ 으로 index 지정해주니 external-ip 나왔음

 

정보 추출하는 또다른 방법

 

참고링크: https://cloudplatform.googleblog.com/2016/06/filtering-and-formatting-fun-with.html

 

먼저 zone 값을 얻는다

$ZONE=$(curl "http://metadata.google.internal/computeMetadata/v1/instance/zone" -H "Metadata-Flavor: Google")

$ZONE=${ZONE##*/}

 

아래 명령으로 VM instance 많은 정보를 얻을 있다.

$gcloud compute instances describe ${HOSTNAME}  --zone=${ZONE}

 

jq 설치했다면 좀더 쉽게 원하는 값에 대한 정보를 얻을 있다.

$sudo apt-get install jq

$gcloud compute instances describe ${HOSTNAME}  --zone=${ZONE} |  jq

 

원하는 값을 추출하기

 

External IP 추출해보자.


   명령의 결과를 보면 원하는 값을 찾아가는 구조를 이해할 있다.

 

- networkInterfaces 배열의 index 0

- accessConfigs 배열의 index 0

- natIP 값이 우리가 찾는 External IP 이다.

   


 

따라서, 아래와 같이 External IP 추출해낼 있다.


$export EXTERNAL_IP=$(gcloud compute instances describe ${HOSTNAME} --zone=${ZONE} --format="value(networkInterfaces[0].accessConfigs[0].natIP)")

$echo ${EXTERNAL_IP}


반응형

'google cloud platform' 카테고리의 다른 글

Jupyter lab - on Google Cloud Engine - update  (0) 2018.05.10
Jupyter lab - on Google Cloud Engine  (0) 2018.05.06
댓글
댓글쓰기 폼