[OCI] 인스턴스 공인 IP 받아오기

nzero·2024년 3월 6일

인스턴스는 재부팅을 할 때 마다 IP 주소가 변경된다.
오라클 클라우드는 인스턴스는 두 개가 무료이지만 Static Public IP는 하나만 받을 수 있으므로, OCI CLI를 활용하여 공인 IP를 받아오려 한다.

환경 변수 설정

tenancy 값과 compartment 값을 설정할 환경변수 oci_env 파일을 생성한다.

#!/bin/bash

export T="ocid1.tenancy.oc1..[tenency value]"
export BC="ocid1.compartment.oc1..[compartment value 1]"
export BF="ocid1.compartment.oc1..[compartment value 2]"

스크립트 작성

환경변수에 작성해둔 compartment ID를 사용해 해당 구획 내 인스턴스 정보를 추출한다.

source ./oci_env
#echo "Compartment ID: $BC"

# 구획 내 인스턴스 아이디 추출
BACKID=$(oci compute instance list --compartment-id "$BC" | jq -r '.data[]."id"')
#echo "Instance ID: $BACKID"

# 해당 인스턴스의 공인 IP 추출
oci compute instance list-vnics --instance-id $BACKID | jq -r '.data[]."public-ip"'

공인 IP를 잘 받아온다. 다만 OCI 실행 속도가 생각보다 느리므로 어차피 고정인 인스턴스 ID를 바로 넘기는게..더 나을..수도...

0개의 댓글