티스토리 뷰
목표
- 현재 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 |
- Total
- Today
- Yesterday
- agile
- folklore
- 잡학툰
- 클린 애자일
- go
- OpenAI
- intellij
- 체호프
- websocket
- 인텔리제이
- clean agile
- 독서
- bun
- notion
- golang
- 엉클 밥
- 2023
- 영화
- API
- 독서후기
- github
- 오블완
- solid
- strange
- Gin
- Bug
- 티스토리챌린지
- 노션
- ChatGPT
- 제이펍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |