CF CLI 가이드

개요

문서 목적

본 문서는 OpenPaaS에 대한 설치 및 운영 관리를 위한 도구인 OpenPaaS CLI에 대해 기본 사용법 및 사용 예시를 통해 OpenPaaS를 이해하는데 목적이 있습니다.

범위

본 문서는 OpenPaaS CLI 분류 및 기본 사용법에 대해서 작성하였습니다.

참고 자료

본 문서는 Cloud Foundry의 CF Document를 참고로 작성하였습니다.

OpenPaaS CLI기본 사용법

OpenPaaS CLI : OpenPaaS를 관리하기 위한 CLI 도구입니다.
CLI는 OpenPaaS배포와 Release를 관리하기 위해 도움을 주는 커맨드 라인 유틸리티로 사용법은 다음과 같습니다.
    기본 Syntax
1
cf [global options] command <arguments...> [command options]
Copied!
OpenPaaS command 명령어에 따라 약어를 제공해 줍니다. 예를 들어 App start CLI명령어는 start 이지만 st도 사용가능합니다.
    약어 사용예시
1
$ cf start
2
3
$ cf st
Copied!
OpenPaaS 명령어에 대괄호로 묶인 인자인 [command options]은 명령어에 따라 선택적으로 사용되고, command <arguments> 인자는 필수 인자입니다. OpenPaaS 운영 및 관리하기 위한 도구인 OpenPaaS CLI 아래와 같은 명령어들을 제공하고 있습니다.

GETTING STARTED

login

    기본 Syntax
1
$ cf login [-a API_URL] [-u USERNAME] [-p PASSWORD] [-o ORG] [-s SPACE]
Copied!
    설명
1
OpenPaaS에 로그인 하기 위한 명령어
Copied!
    파라미터
파라미터명
설명
필수(O/X)
-a API_URL
CLI가 접속 하려는 OpenPaaS URL Ex) https://api.10.244.0.34.xip.io
X
-u USERNAMEL
OpenPaaS에 접속하는 사용자 id
X
-p PASSWORD
OpenPaaS에 접속하는 사용자 password
X
-o ORG
OpenPaaS에 접속하는 사용자의 소속조직 명
X
-s SPACE
OpenPaaS에 접속하는 사용자의 소속조직 스페이스직 명
X
    사용예시
1
# 파라미터 지정한 경우
2
$ cf login --skip-ssl-validation -a https://api.10.244.0.34.xip.io -u admin -p admin -o crossent -s development
3
4
# 파라미터 지정하지 않을 경우
5
$ cf login
6
API endpoint: https://api.10.244.0.34.xip.io
7
8
Email> admin
9
10
Password>
11
Authenticating...
12
OK
13
14
Targeted org crossent
15
16
Select a space (or press enter to skip):
17
1. development
18
2. staged
19
3. oper
20
21
Space> 1
22
Targeted space development
23
24
API endpoint: https://api.10.244.0.34.xip.io (API version: 2.29.0)
25
User: admin
26
Org: crossent
27
Space: development
Copied!

logout

    기본 Syntax
1
$ cf logout
Copied!
    설명
1
cf에 logout합니다.
Copied!
    파라미터
    -없음
    사용예시
1
$ cf logout
Copied!

passwd

    기본 Syntax
1
$ cf passwd
Copied!
    설명
1
OpenPaaS 사용자계정의 패스워드를 변경합니다.
Copied!
    파라미터
    -없음
    사용예시
1
$ cf passwd
2
Current Password>
3
4
New Password>
5
6
Verify Password>
7
Changing password...
8
OK
9
Please log in again
Copied!

target

    기본 Syntax
1
$ cf target [-o ORG] [-s SPACE]
Copied!
    설명
1
로그인한 사용자가 사용할 Target 조직 및 스페이스 설정합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
-o ORG
Target 조직
X
-s SPACE
Target 스페이스
X
    사용예시
1
# 파라미터 지정한 경우
2
$ cf target -o cf -s development
3
API endpoint: https://api.10.244.0.34.xip.io (API version: 2.29.0)
4
User: admin
5
Org: cf
6
Space: development
7
# 파라미터 지정하지 않은 경우(현재 Target된 정보가 출력)
8
$ cf target
9
API endpoint: https://api.10.244.0.34.xip.io (API version: 2.29.0)
10
User: admin
11
Org: cf
12
Space: development
Copied!

api

    기본 Syntax
1
$ cf api <URL>
Copied!
    설명
1
Target api를 조회하거나 target api URL을 설정합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
URL
Api Target URL
O
    사용예시
1
$ cf api --skip-ssl-validation api.10.244.0.34.xip.io
Copied!

auth

    기본 Syntax
1
$ cf auth <USERNAME> <PASSWORD>
Copied!
    설명
1
OpenPaaS login시 로그인만 되며 스페이스, 타겟은 지정되지 않습니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
USERNAME
로그인 사용자 ID
O
PASSWORD
로그인 사용자 PASSWORD
O
    사용예시
1
$ cf api --skip-ssl-validation api.10.244.0.34.xip.io
Copied!

APPS

apps

    기본 Syntax
1
$cf apps
Copied!
    설명
1
타겟 스페이스에 App 목록을 조회합니다.
Copied!
    파라미터
    -없음
      사용예시
    1
    $ cf apps
    Copied!

app

    기본 Syntax
1
$cf app <APP_NAME>
Copied!
    설명
1
App의 상태를 조회합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
    사용예시
    1
    $ cf app spring-music
    Copied!

push,p

    기본 Syntax
1
$ cf push <APP_NAME> [-b BUILDPACK_NAME] [-c COMMAND] [-d DOMAIN] [-f MANIFEST_PATH] [-i NUM_INSTANCES] [-k DISK] [-m MEMORY] [-n HOST] [-p PATH] [-s STACK] [-t TIMEOUT] [--no-hostname] [--no-manifest] [--no-route] [--no-start]
Copied!
    설명
1
App을 OpenPaaS에 배포 하고 app을 Start합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
push하는 App명(지정하지 않으면 디렉토리명)
O
-b BUILDPACK
X
-c COMMAND
App start command
X
-d DOMAIN
App 도메인
X
-f MANIFEST_PATH
Manifest 파일 경로
X
-i NUM_INSTANCES
App 인스턴스 갯수
X
-m MEMORY
인스턴스 메모리 용량
X
-k DISK
디스크 사용 용량
X
-n HOST
호스트명 ex) my-subdomain)
X
-p PATH
App의 디렉토리 경로 또는 App file(zip,war등)경로
X
-s STACK
App이 실행되는 운영체제 파일시스템(default: cflinuxfs2)
X
-t TIMEOUT
App이 실행되는동안 CLI가 대기하는 timeout시간
X
--no-hostname
App에 root 도메인을 매핑
X
--no-manifest
Manifest 파일을 무시합니다.
X
--no-route
Push된 앱에 라우트 정보를 삭제하고 App에 라우트 정보를 매핑하지 않음
X
--no-start
App을 push하고 Start하지 않음
X
--random-route
App에게 라우트 정보를 랜덤하게 생성
X
    사용예시
    1
    $ cf push spring-music
    Copied!

scale

    기본 Syntax
1
$ cf scale <APP_NAME> [-i INSTANCES] [-k DISK] [-m MEMORY] [-f]
Copied!
    설명
1
App의 메모리,디스크 크기 및 인스턴스 갯수를 조정합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
-i INSTANCES
인스턴스 갯수
X
-k DISK
디스크 용량
X
-m MEMORY
메모리 용량
X
-f
App 강제 restart
X
    사용예시
    1
    $ cf scale spring-music -i 2 -m 512m
    Copied!

delete

    기본 Syntax
1
$ cf delete <APP_NAME> [--f] [--r]
Copied!
    설명
1
App을 삭제합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
--f
확인 없이 App 삭제
X
--r
App에 매핑된 라우트 정보 삭제
X
    사용예시
    1
    $ cf delete spring-music
    Copied!

rename

    기본 Syntax
1
$ cf rename <APP_NAME> <NEW_APP_NAME>
Copied!
    설명
1
App명을 변경합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
NEW_APP_NAME
변경하려는 App명
O
    사용예시
    1
    $ cf rename spring-music new-spring-music
    Copied!

start,st

    기본 Syntax
1
$ cf start <APP_NAME>
Copied!
    설명
1
App을 기동 합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
    사용예시
    1
    $ cf start spring-music
    Copied!

stop,sp

    기본 Syntax
1
$ cf stop <APP_NAME>
Copied!
    설명
1
App을 중지 합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
    사용예시
    1
    $ cf stop spring-music
    Copied!

restart, rs

    기본 Syntax
1
$ cf restart <APP_NAME>
Copied!
    설명
1
App을 재기동 합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
    사용예시
    1
    $cf restart spring-music
    Copied!

restage, rg

    기본 Syntax
1
$ cf restage <APP_NAME>
Copied!
    설명
1
App을 restage합니다.(환경변수 설정 또는 서비스 바인딩시 사용)
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
    사용예시
    1
    $cf restage spring-music
    Copied!

restart-app-instance

    기본 Syntax
1
$ cf restart-app-instance <APP_NAME> <INDEX>
Copied!
    설명
1
App의 인스턴스중 특정 인스턴스를 재기동 합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
INDEX
인스턴스 인덱스
O
    사용예시
    1
    $cf restart-app-instance spring-music 1
    Copied!

events

    기본 Syntax
1
$ cf events <APP_NAME>
Copied!
    설명
1
App에서 발생한 최근 Event정보를 조회합니다. (start/stop/scale등의 이력)
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
    사용예시
    1
    $ cf events spring-music
    Copied!

files

    기본 Syntax
1
$ cf files <APP_NAME> [PATH] [-i INSTANCE]
Copied!
    설명
1
App의 file및 디렉토리 목록을 조회합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
PATH
APP의 디렉토리
X
-i INSTANCE
App인스턴스 인덱스
X
    사용예시
    1
    $ cf files spring-music
    Copied!

logs

    기본 Syntax
1
$ cf logs <APP_NAME> [--recent]
Copied!
    설명
1
App에서 발생한 로그를 조회합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
PATH
APP의 디렉토리
X
-i INSTANCE
App인스턴스 인덱스
X
    사용예시
    1
    $ cf logs spring-music
    Copied!

env,e

    기본 Syntax
1
$ cf env <APP_NAME>
Copied!
    설명
1
App의 환경변수를 조회합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
    사용예시
    1
    $ cf env spring-music
    Copied!

set-env,se

    기본 Syntax
1
$ cf set-env <APP_NAME> <ENV_VAR_NAME> <ENV_VAR_VALUE>
Copied!
    설명
1
App의 환경변수를 설정합니다. (적용시 restage필요)
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
ENV_VAR_NAME
App의 환경변수 Key
O
ENV_VAR_VALUE
App의 환경변수 Value
O
    사용예시
    1
    $ cf se spring-music author Jim
    Copied!

unset-env

    기본 Syntax
1
$ cf unset-env <APP_NAME> <ENV_VAR_NAME>
Copied!
    설명
1
App에 설정된 환경변수를 삭제합니다.(적용시 restage필요)
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
ENV_VAR_NAME
App의 환경변수 Key
O
    사용예시
    1
    $ cf unset-env spring-music author
    Copied!

stacks

    기본 Syntax
1
$ cf stacks
Copied!
    설명
1
OpenPaaS의 stack목록(운영체제 파일시스템) 목록을 조회합니다.
Copied!
    파라미터
    없음
    사용예시
    1
    $ cf stacks
    Copied!

stack

    기본 Syntax
1
$ cf stack <STACK_NAME> [--guid]
Copied!
    설명
1
OpenPaaS의 stack목록(운영체제 파일시스템) 목록을 조회합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
APP_NAME
APP명
O
--guid
Stack guid를 조회
X
    사용예시
    1
    $ cf stack cflinuxfs2
    Copied!

copy-source

    기본 Syntax
1
$ cf copy-source <SOURCE-APP> <TARGET-APP> [-o TARGET-ORG] [-s TARGET-SPACE] [--no-restart]
Copied!
    설명
1
App의 소스를 다른 App에 복사합니다. 파일이 덥어 쓰이지 않으면 자동 restart합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
SOURCE-APP
원본 APP명
O
TARGET-APP
소스가 복사될 대상 App명
X
-o TARGET-ORG
타겟 조직
O
-s TARGET-SPACE
타겟 스페이스
X
--no-restart
소스 복사 후 restart하지 않음
X
    사용예시
    1
    $ cf copy-source spring-music another-music
    Copied!

create-app-manifest

    기본 Syntax
1
$ cf create-app-manifest <APP_NAME> [-p /path/<app-name>-manifest.yml]
Copied!
    설명
1
App의 manifest파일을 생성합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
SOURCE-APP
원본 APP명
O
-p /path/.yml
파일이 생성될 위치와 파일명(-p 를 사용하지 않으면 자동생성된다)
X
    사용예시
    1
    $ cf create-app-manifest spring-music -p ./spring-music-manifest.yml
    Copied!

SERVICES

marketplace,m

    기본 Syntax
1
$ cf marketplace [-s SERVICE_NAME]
Copied!
    설명
1
cf 마켓플레이스에서 제공하는 서비스 목록을 조회합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
-s SERVICE_NAME
서비스의 plan이 조회된다.
X
    사용예시
    1
    $ cf create-app-manifest spring-music -p ./spring-music-manifest.yml
    Copied!

services,s

    기본 Syntax
1
$ cf services
Copied!
    설명
1
타겟 스페이스에 서비스 인스턴스 목록을 조회합니다.
Copied!
    파라미터
파라미터명
설명
필수(O/X)
-s SERVICE_NAME
서비스의 plan이 조회된다.
X
    사용예시
    1
    $ cf create-app-manifest spring-music -p ./spring-music-manifest.yml
    Copied!

service

    기본 Syntax