1 개요[ | ]
- openstack
- OpenStack 커맨드 라인
- OpenStackClient 매뉴얼 페이지
https://docs.openstack.org/python-openstackclient/2024.1/cli/man/openstack.html
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_TOKEN
과 OS_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 클라우드 설정[ | ]
여러 클라우드를 다루는 작업은 해당 클라우드의 설정 정보를 로컬 파일에 저장함으로써 간소화할 수 있습니다. openstack은 clouds.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_url
은 clouds-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_VERSION
이 3
으로 세팅되어야 합니다.
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 저자[ | ]
OpenStackClient와 함께 배포된 AUTHORS 파일을 참조하십시오.
14 저작권[ | ]
Copyright 2011-2014 OpenStack 재단 및 AUTHORS 파일에 나열된 저자들.
15 라이선스[ | ]
http://www.apache.org/licenses/LICENSE-2.0
16 같이 보기[ | ]
OpenStack Docs의 OpenStackClient 페이지에 추가 문서가 포함되어 있습니다.
개별 OpenStack 프로젝트 CLI, OpenStack API 참고자료.