Oracle Cloud Infrastructure 명령행 인터페이스를 사용하여 Cloud@CustomerOracle Exadata Database Service on Cloud@Customer의 Oracle Exadata Database Service 관리
소개
OCI CLI(Oracle Cloud Infrastructure Command Line Interface)는 Oracle Exadata Database Service on Cloud@Customer 리소스를 포함하여 OCI에서 리소스를 관리하기 위한 훌륭한 도구입니다. OCI CLI를 사용하면 OCI 작업을 쉽고 효율적으로 통합관리하고 자동화할 수 있습니다. OCI CLI가 OCI REST API를 호출할 때 이는 구문이 다르더라도 OCI CLI와 OCI REST API가 호환됨을 의미합니다. OCI REST API 자동화를 개발하는 동안 OCI CLI를 사용하여 체험판 및 오류를 생성한 후 적은 노력으로 자동화를 배포할 수 있습니다.
이 두 부분 시리즈로, 첫 번째 부분에서는 OCI CLI의 기본 사항을 소개하고 두 번째 부분에서는 Oracle Exadata Database Service on Cloud@Customer 특정 명령 및 워크플로우에 대해 자세히 다룹니다.
주: OCI CLI는 원격 플러그인에서 동적 스케일링을 사용할 때도 필요하지만 이 자습서에서는 동적 스케일링 자체에 대해 다루지 않습니다.
목표
-
OCI CLI를 설치합니다.
-
출력 형식 지정을 사용하여 필요에 따라 명령 출력을 필터링하고 형식을 지정합니다.
-
입력 지원을 사용하여 OCI CLI 사용을 간소화합니다.
필수 조건
-
Oracle Exadata Database Service on Cloud@Customer 인프라를 통해 OCI 테넌시에 액세스할 수 있습니다.
-
원하는 권한을 부여하는 정책이 있는 그룹에서 테넌시에 생성된 사용자입니다.
-
OCI 테넌시에 액세스할 수 있는 지원되는 OS(운영체제)에 설치된 지원되는 버전의 Python 환경입니다. 자세한 내용은 지원되는 Python 버전 및 운영 체제를 참조하십시오.
-
Oracle에 업로드된 퍼블릭 키로 API 요청 서명에 사용되는 키 쌍입니다.
작업 1: OCI CLI 설치
OCI CLI는 Python용 OCI SDK(소프트웨어 개발 키트)를 기반으로 구축되었으며 Mac, Windows 또는 Linux에서 실행됩니다. Python 코드는 OCI API를 호출하여 Oracle Exadata Database Service on Cloud@Customer 및 Oracle Autonomous Database on Exadata Cloud@Customer를 비롯한 다양한 서비스에 구현된 기능을 제공합니다.
-
OCI CLI GitHub 저장소에서 OS용 OCI CLI를 다운로드합니다.
-
운영 체제에 따라 설치 지침을 따릅니다.
-
다음 명령을 실행하여 설치를 확인합니다.
$ oci --version
-
OCI 작업 시 필요한 인증서가 포함된 설정 대화상자를 사용하여 구성을 설정합니다.
$ oci setup config
-
구성 파일을 확인합니다.
예:
[DEFAULT] user=ocid1.user.oc1..<unique_ID> fingerprint=<your_fingerprint> key_file=~/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..<unique_ID> # Some comment region=us-ashburn-1
-
다음 명령을 실행하여 테넌시의 네임스페이스를 표시하는 접속을 확인합니다.
$ oci os ns get
-
다음 명령을 실행하여 사용 가능한 구획을 나열합니다.
$ oci iam compartment list
그러면 다음 JSON 응답이 생성됩니다.
{ "data": [ { "compartment-id": "ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq", "defined-tags": { "Oracle-Tags": { "CreatedBy": "default/some-email@oracle.com", "CreatedOn": "2023-11-10T13:27:32.885Z" } }, "description": "Compartment for Exadata Infrastructure", "freeform-tags": {}, "id": "ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q", "inactive-status": null, "is-accessible": null, "lifecycle-state": "ACTIVE", "name": "ExaInfra", "time-created": "2023-11-10T13:27:32.945000+00:00" } ] }
주: 첫번째 컴파트먼트만 표시되도록 출력이 잘렸습니다.
-
다음 명령을 실행하여 컴파트먼트의 모든 작업 요청을 나열합니다.
$ oci work-requests work-request list --compartment-id ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q
출력 형식 지정을 사용하여 필요에 맞게 명령 출력 필터링 및 형식 지정
이전 예제에서 보았듯이 OCI CLI 명령의 JSON 응답은 광범위하고 따르기 어렵고 읽기 쉽지 않을 수 있습니다.
예를 들어, Linux의 명령 프롬프트에서는 항상 응답을 필터링하기 위해 grep과 같은 전원 도구에 출력을 파이프할 수 있습니다.
다음 명령을 사용하여 특정 컴파트먼트의 모든 VM 클러스터를 나열하고 id
에 대해 필터링합니다.
$ oci db vm-cluster list --compartment-id <OCID> | grep \"id\"
그러면 다음 응답이 생성됩니다.
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"
그러나 OCI CLI에는 쿼리할 필드를 지정할 수 있는 --query
매개변수를 사용하여 쿼리 기능이 내장되어 있습니다.
-
--query
매개변수를 사용하여 다음 명령을 실행합니다.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"id\"]"
JSON 응답은 다음과 같습니다.
[ [ "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq" ], [ "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra" ] ]
-
--query
뒤에 추가 필드를 쉽게 지정하여 보다 복잡한 쿼리를 작성할 수 있습니다.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]"
JSON 응답은 다음과 같습니다.
[ [ "fraexaclu1-uvlkz", "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq" ], [ "fraexaclu2-2uyfk", "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra" ] ]
-
--output
테이블 매개변수를 사용하여 보다 사용자 친화적인 출력을 얻을 수 있습니다.$oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]" --output table
응답은 다음과 같습니다.
+----------------------------------------------------------------------------------------------------------------------+ | Column1 | Column2 | +----------------------------------------------------------------------------------------------------------------------+ | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra | +------------------+---------------------------------------------------------------------------------------------------+
-
--query
매개변수를 사용하여 열의 머리글을 지정할 수도 있습니다.$ oci db vm-cluster list --compartment-id <OCID> --query "data[].{\"Hostname\" : \"hostname\" , \"OCID\" : \"id\" }" --output table
응답은 다음과 같습니다.
+----------------------------------------------------------------------------------------------------------------------+ | Hostname | OCID | +----------------------------------------------------------------------------------------------------------------------+ | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra | +------------------+---------------------------------------------------------------------------------------------------+
주:
--query
매개변수와 함께 사용되는 구문과 JSON 응답 간의 상관 관계를 이해하는 것이 중요합니다.list
와 같은 OCI CLI 하위 명령은 일반적으로 많은 결과를 반환하지만get
와 같은 OCI CLI 하위 명령은 하나의 결과만 반환합니다.-
JSON 응답에서 데이터가
[
으로 지정된 list 또는 array임을 표시하는 경우[opc@jens-oci-1 ~]$ oci db vm-cluster list { "data": [ {
그런 다음 query 구문은 다음과 유사합니다.
--query "data[].[ field1 , field2 ]"
-
여기서 JSON 응답은 데이터가 단일 객체임을 보여줍니다.
[opc@jens-oci-1 ~]$ oci db vm-cluster get { "data": {
그런 다음
get
명령의 구문은 다음과 같습니다.--query "data.[ field1 , field2 ]"
-
입력 지원을 사용하여 OCI CLI 사용 간소화
임시 및 자동화된 사용 사례 모두에 대해 OCI CLI에 대한 입력 지원을 얻는 여러 가지 방법이 있습니다.
-
환경 변수 사용:
환경 변수를 사용하여 OCI CLI에 전달되는 매개변수 값을 저장할 수 있습니다.
예를 들어, 테넌시 OCID의 경우
$T
, 컴파트먼트 OCID의 경우$C
를 사용할 수 있습니다.T=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq C=ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a
다음과 같은 OCI CLI 명령에서 사용할 수 있습니다.
$ oci work-requests work-request list --compartment-id $C
-
--help
사용:항상
--help
를 사용하여 명령에 대한 추가 정보를 얻을 수 있습니다. 이는 OCI CLI 명령 구조의 모든 레벨에서 적용할 수 있습니다.예:
oci --help oci db --help oci db vm-cluster --help oci db vm-cluster list --help
다음은
oci db vm-cluster --help
명령의 응답 예입니다.Usage: oci db vm-cluster [OPTIONS] COMMAND [ARGS]... Details of the cloud VM cluster. Applies to Exadata Cloud Service instances only. Options: -?, -h, --help For detailed help on any of these individual commands, enter <command> --help. Commands: add Add Virtual Machines to the Cloud... change-vm-cluster-subscription Associate a cloud VM cluster with... change-compartment Moves a cloud VM cluster and its... create Creates a cloud VM cluster. delete Deletes the specified cloud VM... get Gets information about the... get-exadata-iorm-config Gets the IORM configuration for... get-update Gets information about a... get-update-history Gets the maintenance update... list Gets a list of the cloud VM... list-update-histories Gets the history of the... list-updates Lists the maintenance updates... remove Remove Virtual Machines from the... update Updates the specified cloud VM... update-exadata-iorm-config Updates the IORM settings for the...
-
기본 구성 파일에서 프로파일 사용:
설정 대화상자를 사용하여 OCI CLI를 설정하면 기본 구성 파일이 생성되고 출력에 나열된 경로입니다. Linux 및 Unix에서는 기본 구성 파일이
/home/opc/.oci/config
에 있습니다.기본 구성 파일의 예:
[opc@jens-oci-1 ~]$ cat .oci/config [DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-frankfurt-1
위의 예에서는 정의된 사용자, 테넌시 및 지역을 사용하여 기본 프로파일이 생성되었습니다. 매개변수를 지정하지 않고 명령줄을 사용하는 경우 프로파일에서 기본값이 사용됩니다. 프로파일 파일에 정의된 값 밖에서 결과를 보려면 명령줄에서 값을 명시적으로 지정할 수 있습니다.
기본 구성 파일에서 여러 프로파일을 만들 수도 있습니다.
[DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-frankfurt-1 [AMS] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-amsterdam-1
다음 명령을 사용하여 미리 정의된 프로파일을 참조할 수 있습니다.
oci db vm-cluster list --compartment-id $C --profile AMS --query "data[].[\"display-name\"]" --output table
-
Runtime 구성 파일 사용:
서로 다른 영역, 구획, VM 클러스터 등을 더 쉽게 선택할 수 있도록 하려면 두번째 선택적 런타임 구성 파일에 이 정보가 포함된 프로파일을 지정합니다. 런타임 구성 파일이 기본 구성 파일을 보완하고 있습니다. 런타임 구성 파일에서 명령행 매개변수에 대한 기본값을 지정할 수 있습니다.
다음 명령을 사용하여 런타임 구성 파일을 만들 수 있습니다.
$ oci setup oci-cli-rc --file .oci/oci_cli_rc
기본 구성 파일의 프로파일을 보완하고 런타임 구성 파일의 끝에 추가 프로파일 세부정보를 추가할 수 있습니다.
[DEFAULT] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a [AMS] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a vm-cluster-id = ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq
다음 명령을 사용하여 명령 실행 시 이러한 정의된 프로파일을 지정할 수 있습니다.
$ oci db vm-cluster get --profile AMS --query "data.{\"OCID\" : \"id\" , \"Core Count\" : \"cpu-core-count\" }" --output table +------------+------------------------------------------------------------------------------------------------------+ | Core Count | OCID | +------------+------------------------------------------------------------------------------------------------------+ | 0 | ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | +------------+------------------------------------------------------------------------------------------------------+
-
전체 명령 JSON 입력 파일 생성:
전체 명령 JSON 입력 파일은
--from-json file://<json file name>
매개변수와 함께 사용하여 명령에 대한 모든 매개변수를 지정합니다. 이를 실현하기 위해 해당 명령에 대한 모든 매개변수가 포함된 JSON 파일을 생성하는--generate-full-command-json-input
라는 매개변수가 있습니다.다음 명령을 사용하여 파일 이름이
vm-cluster_update.json
인 JSON 파일을 생성합니다.oci db vm-cluster update --generate-full-command-json-input > vm-cluster_update.json
이 JSON 입력 파일을 편집하고 실행할 명령과 관련된 매개변수만 유지할 수 있습니다. 이 예에서는 0이었던 VM 클러스터의 OCPU 수를 스케일 조정합니다. 이렇게 하려면 VM 클러스터 ID와 새 OCPU 양(OCPU 4개로 확장)이 필요합니다.
{ "vmclusterId": "ocid1.vmcluster.oc1.eu-frankfurt-1.antheljrvwun52iawxlyg2hp6lr3xawbvub7kcjje7yta45yluiz6xxl2tkq", "cpuCoreCount": 4 }
다음 명령을 사용하여 JSON 입력 파일을 활용합니다.
oci db vm-cluster update --from-json file://vm-cluster_update.json
관련 링크
승인
- Authors - Jens Ejvinsson(Exadata Cloud@Customer 블랙벨트), Zsolt Szokol(Exadata Cloud@Customer 블랙벨트)
추가 학습 자원
docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Use Oracle Cloud Infrastructure Command Line Interface to manage Oracle Exadata Database Service on Cloud@Customer
G38695-01
Copyright ©2025, Oracle and/or its affiliates.