OpenStackClient 매뉴얼 페이지

Jmnote (토론 | 기여)님의 2024년 6월 27일 (목) 00:56 판 (→‎버그)

1 개요

openstack
OpenStack 커맨드 라인
OpenStackClient 매뉴얼 페이지

https://docs.openstack.org/python-openstackclient/2024.1/cli/man/openstack.html

Crystal Clear action info.png 작성 중인 문서입니다.


2 SYNOPSIS

openstack [<global-options>] <command> [<command-arguments>]

openstack help <command>

openstack --help

3 설명

openstack은 오픈스택 API에 공통 명령줄 인터페이스를 제공합니다. 이는 오픈스택 프로젝트 클라이언트 라이브러리에서 제공하는 CLI와 거의 동일하지만, 독특하고 일관된 명령어 구조를 가지고 있습니다.

4 인증 방법

openstack은 OpenStack 프로젝트 CLI와 유사한 인증 체계를 사용하며, 자격증명 정보는 환경변수나 명령줄 옵션으로 제공됩니다. 주요 차이점은 옵션 이름에 'project'가 포함되어 OS_PROJECT_NAME/OS_PROJECT_ID로 제공된다는 점입니다(이전의 테넌트 기반 이름 대신).

export OS_AUTH_URL=<url-to-openstack-identity>
export OS_PROJECT_NAME=<project-name>
export OS_USERNAME=<user-name>
export OS_PASSWORD=<password>  # (optional)

openstack은 keystoneclient 라이브러리가 제공하는 다양한 유형의 인증 플러그인을 사용할 수 있습니다. 기본적으로 사용할 수 있는 플러그인은 다음과 같습니다:

  • token: 토큰을 사용한 인증
  • password: 사용자명과 패스워드를 사용한 인증
  • openid: OpenID Connect 프로토콜을 사용한 인증

이 플러그인과 그 옵션에 대한 자세한 내용과 사용가능한 플러그인의 전체 목록은 keystoneclient 라이브러리 문서를 참조하십시오. 일부 플러그인은 openstack의 모든 기능을 지원하지 않을 수 있습니다. 예를 들어, v3unscopedsaml 플러그인은 범위가 지정되지 않은 토큰만 제공할 수 있으며, 이 인증 방법으로는 일부 명령을 사용할 수 없습니다.

또한, Keystone의 서비스 토큰을 사용하여 인증할 수도 있습니다. 이 경우, --os-token--os-endpoint 옵션(또는 환경변수 OS_TOKENOS_ENDPOINT)을 설정해야 합니다. 이 방법은 인증 플러그인보다 우선합니다.

Note

v3unscopedsaml 방법을 사용하려면 lxml 패키지를 설치해야 합니다.

4.1 페더레이션을 사용한 인증

페더레이션 인증을 사용하려면, 설정 파일에 다음이 필요합니다:

export OS_PROJECT_NAME=<project-name>
export OS_PROJECT_DOMAIN_NAME=<project-domain-name>
export OS_AUTH_URL=<url-to-openstack-identity>
export OS_IDENTITY_API_VERSION=3
export OS_AUTH_PLUGIN=openid
export OS_AUTH_TYPE=v3oidcpassword
export OS_USERNAME=<username-in-idp>
export OS_PASSWORD=<password-in-idp>
export OS_IDENTITY_PROVIDER=<the-desired-idp>
export OS_CLIENT_ID=<the-client-id-configured-in-the-idp>
export OS_CLIENT_SECRET=<the-client-secred-configured-in-the-idp>
export OS_OPENID_SCOPE=<the-scopes-of-desired-attributes-to-claim-from-idp>
export OS_PROTOCOL=<the-protocol-used-in-the-apache2-oidc-proxy>
export OS_ACCESS_TOKEN_TYPE=<the-access-token-type-used-by-your-idp>
export OS_DISCOVERY_ENDPOINT=<the-well-known-endpoint-of-the-idp>
export OS_ACCESS_TOKEN_ENDPOINT=<the-idp-access-token-url>

5 옵션

openstack은 전반적인 동작을 제어하는 전역 옵션과 명령어 실행을 제어하는 명령어별 옵션을 사용합니다. 대부분의 전역 옵션에는 해당 값을 설정하는 데 사용할 수 있는 환경변수가 있습니다. 둘 다 존재하는 경우 명령줄 옵션이 우선합니다. 환경변수 이름은 옵션 이름에서 앞에 붙은 대시(‘--’)를 제거하고, 사이사이의 대시(‘-’)를 밑줄(‘_’)로 변환하고, 대문자로 변환하여 파생됩니다.

openstack 은 다음과 같은 전역 옵션을 인식합니다:

--os-cloud <cloud-name>
openstack은 인증에 사용할 클라우드 설정을 포함하는 clouds.yaml 파일을 찾습니다. 자세한 내용은 아래의 클라우드 설정 섹션을 참조하십시오.
--os-auth-type <auth-type>
Identity 서비스에 연결할 때 사용할 인증 플러그인 유형입니다.
이 옵션이 설정되지 않은 경우, openstack은 다른 옵션을 기반으로 사용할 인증 방법을 추측하려고 합니다.
이 옵션이 설정된 경우, 해당 버전은 --os-identity-api-version과 매치해야 합니다.
--os-auth-url <auth-url>
인증 URL
--os-endpoint <service-url>
서비스 토큰을 사용한 인증 시 서비스 엔드포인트
--os-domain-name <auth-domain-name>
도메인 수준 인가 스코프 (이름으로)
--os-domain-id <auth-domain-id>
도메인 수준 인가 스코프 (ID로)
--os-project-name <auth-project-name>
프로젝트 수준 인가 스코프 (이름으로)
--os-project-id <auth-project-id>
프로젝트 수준 인가 스코프 (ID로)
--os-project-domain-name <auth-project-domain-name>
프로젝트를 포함하는 도메인 이름
--os-project-domain-id <auth-project-domain-id>
프로젝트를 포함하는 도메인 ID
--os-username <auth-username>
인증 사용자명
--os-password <auth-password>
인증 패스워드
--os-token <token>
인증된 토큰 또는 서비스 토큰
--os-user-domain-name <auth-user-domain-name>
사용자를 포함하는 도메인 이름
--os-user-domain-id <auth-user-domain-id>
사용자를 포함하는 도메인 ID
--os-trust-id <trust-id>
수탁자 사용자로 사용할 트러스트 ID
--os-default-domain <auth-domain>
기본 도메인 ID (기본값: ‘default’)
--os-region-name <auth-region-name>
인증 리전 이름
--os-cacert <ca-bundle-file>
CA 인증서 번들 파일
--verify | --insecure
서버 인증서를 확인하거나 무시 (기본값: 확인)
--os-cert <certificate-file>
클라이언트 인증서 번들 파일
--os-key <key-file>
클라이언트 인증서 키 파일
--os-identity-api-version <identity-api-version>
Identity API 버전 (기본값: 2.0)
--os-XXXX-api-version <XXXX-api-version>
설치된 API 라이브러리에 따라 추가적인 API 버전 옵션이 제공됩니다.
--os-interface <interface>
인터페이스 유형. 유효한 옵션은 public, admin, internal입니다.

Note

novaclient, neutronclient 등 프로젝트 지정 클라이언트에서 openstackclient로 전환하는 경우 --os-endpoint-type 대신 --os-interface를 사용하십시오.

--os-profile <hmac-key>
성능 프로파일링 HMAC 키. 컨텍스트 데이터를 암호화하는 데 사용합니다.
이 키는 추적할 OpenStack 서비스의 설정 파일에 정의된 HMAC 키 값 중 하나여야 합니다.
--os-beta-command
변경될 수 있는 베타 명령어 활성화
--log-file <LOGFILE>
출력 로그 파일 지정. 기본값은 비활성화.
-v, --verbose
출력의 상세함(verbosity)을 증가시킵니다. 반복할 수 있습니다.
-q, --quiet
경고와 오류를 제외한 출력 억제
--debug
오류 발생 시 추적 정보를 표시하고 상세함(verbosity)을 디버그로 설정
--help
도움말 메시지를 표시하고 종료
--timing
API 호출 타이밍 정보 출력

6 명령어

명령어 목록을 얻으려면:

openstack --help

특정 명령어에 대한 설명을 얻으려면:

openstack help <command>

API 버전에 따라 표시되는 명령어 세트가 다를 수 있습니다. 예를 들어, Identity v3 명령어를 강제로 표시하려면:

openstack --os-identity-api-version 3 --help
complete
현재 명령어 세트에 대한 bash 완성 기능을 출력합니다.
help <command>
개별 명령어에 대한 도움말을 출력합니다.

OpenStackClient 명령어 구조와 인수에 대한 추가 정보는 OpenStackClient 명령어 목록에서 확인할 수 있습니다.

6.1 명령어 객체

OpenStack 프로젝트 지원이 추가됨에 따라 명령어 객체 목록이 점점 길어지고 있습니다. 객체 이름은 고유한 이름을 구성하기 위해 여러 단어로 구성될 수 있습니다. 때때로 여러 API가 공통된 이름과 겹치는 목적을 가지고 있을 때, 사용할 객체를 선택할 수 있는 옵션이 있거나, Compute와 Block Storage 할당량을 참조하는 quota 객체와 같이 API 리소스가 병합될 수 있습니다.

6.2 명령어 액션

OpenStackClient에서 사용되는 액션들은 각 객체에 대해 일관된 액션을 제공하기 위해 특정 의미로 정의됩니다. 일부 액션들은 논리적으로 반대되는 액션이 있으며, 이러한 쌍은 해당 객체에서 항상 매치하게 됩니다.

7 클라우드 설정

여러 클라우드를 다루는 작업은 해당 클라우드의 설정 정보를 로컬 파일에 저장함으로써 간소화할 수 있습니다. openstackclouds.yaml 설정 파일을 사용하는 것을 지원합니다.

7.1 설정 파일

openstack은 다음 위치에서 clouds.yaml 파일을 찾습니다:

  • 현재 디렉토리
  • ~/.config/openstack
  • /etc/openstack

가장 먼저 발견된 파일이 사용됩니다.

키는 --os- 접두어 없이 openstack 전역 옵션과 매치합니다:

clouds:
  devstack:
    auth:
      auth_url: http://192.168.122.10:5000/
      project_name: demo
      username: demo
      password: 0penstack
    region_name: RegionOne
  ds-admin:
    auth:
      auth_url: http://192.168.122.10:5000/
      project_name: admin
      username: admin
      password: 0penstack
    region_name: RegionOne
  infra:
    cloud: rackspace
    auth:
      project_id: 275610
      username: openstack
      password: xyzpdq!lazydog
    region_name: DFW,ORD,IAD

위 예제에서 rackspace 클라우드의 auth_urlclouds-public.yaml에서 가져옵니다:

public-clouds:
  rackspace:
    auth:
      auth_url: 'https://identity.api.rackspacecloud.com/v2.0/'

7.2 인증 세팅

OpenStackClient는 Keystone 인증 플러그인을 사용하므로, 필요한 인증 세팅은 인증 유형이 선택될 때까지 항상 알 수 있는 것은 아닙니다. openstack은 전달된 인수나 설정 파일에서 찾은 내용을 기반으로 몇 가지 일반적인 인증 유형을 감지하려고 시도하지만, 불완전한 경우에는 어떤 인증 유형이 의도된 것인지 알 수 없을 수 있습니다. --os-auth-type 옵션을 사용하여 특정 유형을 강제로 지정할 수 있습니다.

--os-token--os-endpoint가 모두 존재할 때는 token_endpoint 인증 유형이 자동으로 선택됩니다. --os-auth-url--os-username이 존재할 때는 password 인증 유형이 선택됩니다.

7.3 로깅 세팅

openstack은 설정 파일의 로그 세팅을 통해 작업 내역을 기록할 수 있습니다. 사용자 작업을 기록함으로써, 리소스 변경사항을 식별할 수 있으며, 이는 트러블슈팅에 유용한 정보가 됩니다.

로그 세팅에 대한 자세한 내용은 설정을 참조하십시오.

8 참고

도움말 출력에 표시되는 명령어 목록은 선택된 API 버전을 반영합니다. 예를 들어, Identity v3 명령어를 보려면 OS_IDENTITY_API_VERSION3으로 세팅되어야 합니다.

9 예시

서버 appweb01에 대한 상세 정보를 표시하는 예시:

openstack \
    --os-project-name ExampleCo \
    --os-username demo --os-password secret \
    --os-auth-url http://localhost:5000:/v2.0 \
    server show appweb01

keystone에서 openid를 사용하여 인증하는 동일한 명령어:

openstack \
    --os-project-name ExampleCo \
    --os-auth-url http://localhost:5000:/v2.0 \
    --os-auth-plugin openid \
    --os-auth-type v3oidcpassword \
    --os-username demo-idp \
    --os-password secret-idp \
    --os-identity-provider google \
    --os-client-id the-id-assigned-to-keystone-in-google \
    --os-client-secret 3315162f-2b28-4809-9369-cb54730ac837 \
    --os-openid-scope 'openid email profile'\
    --os-protocol openid \
    --os-access-token-type access_token \
    --os-discovery-endpoint https://accounts.google.com/.well-known/openid-configuration \
    server show appweb01

인증 환경변수(OS_AUTH_URL, OS_PROJECT_NAME, OS_USERNAME, OS_PASSWORD)가 설정된 경우의 동일한 명령어:

openstack server show appweb01

새 이미지를 생성하는 명령어:

openstack image create \
    --disk-format=qcow2 \
    --container-format=bare \
    --public \
    --copy-from http://somewhere.net/foo.img \
    foo

10 파일

~/.config/openstack/clouds.yaml
--os-cloud 전역 옵션에 의해 사용되는 설정 파일입니다.
~/.config/openstack/clouds-public.yaml
인증 URL 및 서비스 정의와 같은 공개 클라우드 제공자 정보를 포함하는 설정 파일입니다. 이 파일의 내용은 공개적이고 공유가능해야 합니다. clouds.yaml 파일은 여기 정의된 클라우드를 참조하여 단축키로 사용할 수 있습니다.
/.openstack
미래의 로컬 상태 디렉토리를 위한 플레이스홀더입니다. 이 디렉토리는 여러 OpenStack 관련 애플리케이션 간에 공유되도록 의도되었으며, 내용에는 해당 애플리케이션에서 식별자를 사용하여 네임스페이스가 지정됩니다. 공유된 내용(/.openstack/cache와 같은)에는 접두어가 없으며, 컨텐츠는 포터블이어야 합니다.

11 환경변수

다음 환경변수를 세팅하면 openstack의 동작을 변경할 수 있습니다. 대부분의 환경변수는 세팅된 경우 우선순위를 갖는 해당 명령줄 옵션이 있습니다.

OS_CLOUD
clouds.yaml에 있는 클라우드 설정의 이름입니다.
OS_AUTH_PLUGIN
Identity 서비스에 연결할 때 사용할 인증 플러그인입니다. 플러그인의 버전은 Identity API 버전과 일치해야 합니다.
OS_AUTH_URL
인증 URL
OS_AUTH_TYPE
인증 과정을 처리하는 데 사용될 인증 플러그인을 정의합니다. 다음 중 하나입니다:
  • v2password
  • v2token
  • v3password
  • v3token
  • v3oidcclientcredentials
  • v3oidcpassword
  • v3oidcauthorizationcode
  • v3oidcaccesstoken
  • v3totp
  • v3tokenlessauth
  • v3applicationcredential
  • v3multifactor
OS_ENDPOINT
(서비스 토큰을 사용할 때의) 서비스 엔드포인트입니다.
OS_DOMAIN_NAME
도메인 수준의 인증 범위 (이름 또는 ID)
OS_PROJECT_NAME
프로젝트 수준의 인증 범위 (이름 또는 ID)
OS_PROJECT_DOMAIN_NAME
프로젝트가 포함된 도메인 이름 또는 ID
OS_USERNAME
인증 사용자명
OS_TOKEN
인증된 또는 서비스 토큰
OS_PASSWORD
인증 패스워드
OS_USER_DOMAIN_NAME
사용자가 포함된 도메인의 이름 또는 ID
OS_TRUST_ID
신뢰할 수 있는 사용자로 사용할 트러스트 ID
OS_DEFAULT_DOMAIN
기본 도메인 ID (기본값: ‘default’)
OS_REGION_NAME
인증 리전 이름
OS_CACERT
CA 인증서 번들 파일
OS_CERT
클라이언트 인증서 번들 파일
OS_KEY
클라이언트 인증서 키 파일
OS_IDENTITY_API_VERSION
Identity API 버전 (기본값: 2.0)
OS_XXXX_API_VERSION
설치된 API 라이브러리에 따라 추가 API 버전 옵션을 사용할 수 있습니다.
OS_INTERFACE
인터페이스 유형입니다. 유효한 옵션은 public, admin, internal입니다.
OS_PROTOCOL
연합 인증 프로세스를 실행하는 데 사용되는 프로토콜을 정의합니다. Keystone 인증 URL 생성 과정에 사용됩니다.
OS_IDENTITY_PROVIDER
사용할 페더레이션의 신원 제공자를 정의합니다. Keystone 인증 URL 생성 과정에 사용됩니다. 사용할 수 있는 신원 제공자는 openstack identity provider list 명령어를 사용하여 나열할 수 있습니다.
OS_CLIENT_ID
Identity Provider에서 애플리케이션(OpenStack)을 인증하는 데 CLI가 사용할 CLIENT_ID를 설정합니다. 이 값은 Identity Provider 측에서 정의됩니다. 사용자 ID와 혼동하지 마십시오.
OS_CLIENT_SECRET
CLI(신원 제공자에 있는 OpenStack 시크릿)를 인증하는 데 CLI가 사용할 OS_CLIENT_SECRET을 설정합니다.
OS_OPENID_SCOPE
서비스 제공자(SP)인 OpenStack이 신원 제공자에게 요청할 속성 스코프를 구성합니다. 이 스코프와 각 스코프가 포함하는 속성은 신원 제공자 측에서 정의됩니다. 이 매개변수는 공백으로 구분된 여러 값을 받을 수 있습니다.
OS_ACCESS_TOKEN_TYPE
토큰 검사 과정에서 사용되는 액세스 토큰 유형을 정의합니다. 이 변수는 “access_token” 또는 “id_token” 상태 중 하나를 가질 수 있습니다.
OS_DISCOVERY_ENDPOINT
신원 제공자의 발견 URL을 설정합니다. 이 URL은 신원 제공자 엔드포인트를 설명하는 메타데이터가 포함된 발견 문서를 제공합니다. 이 변수는 OS_ACCESS_TOKEN_ENDPOINT가 정의된 경우 선택사항입니다.
OS_ACCESS_TOKEN_ENDPOINT
OS_DISCOVERY_ENDPOINT URL 요청에서 조회된 문서에 표시된 값을 재정의합니다. 이 변수는 OS_DISCOVERY_ENDPOINT가 설정된 경우 선택사항입니다.

Note

novaclient, neutronclient 등 프로젝트별 클라이언트에서 openstackclient로 전환하는 경우 OS_ENDPOINT_TYPE 대신 OS_INTERFACE를 사용하십시오.

12 버그

버그 리포트는 python-openstackclient Launchpad 프로젝트 https://bugs.launchpad.net/python-openstackclient 에서 접수됩니다.

13 저자

14 저작권

15 라이선스

16 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}