프로그래밍 OpenPages 방식으로 서비스 인스턴스 생성

설치 OpenPages 후에는 최소한 하나의 OpenPages 서비스 인스턴스를 생성해야 합니다. 각 서비스 인스턴스는 서로 다른 Red Hat® OpenShift® Container Platform 프로젝트에 있어야 합니다. 서비스 인스턴스는 operands 프로젝트 내에서 또는 operands 프로젝트에 연결된 프로젝트에서 생성할 수 있습니다. 사용자라면 IBM® Software Hub REST /v3/service_instances API 호출을 사용하여 프로그래밍 방식으로 서비스 인스턴스를 생성할 수 있습니다.

누가 이 작업을 완료해야 합니까?
REST API /v3/service_instances 호출을 사용하여 프로그래밍 방식으로 서비스 인스턴스를 생성하려면, 에서 '서비스 인스턴스 생성 (can_provision) IBM Software Hub' 권한이 있어야 합니다.
이 작업을 언제까지 완료해야 합니까?
REST API /v3/service_instances 호출을 사용하여 프로그래밍 방식으로 서비스 인스턴스를 생성하려는 경우에만 이 작업을 완료하십시오.
서비스 인스턴스 생성 대체 방법

이 태스크를 완료하는 데 필요한 정보

다음 정보를 검토한 후 서비스 인스턴스를 생성하십시오 OpenPages :

버전 요구사항

의 인스턴스와 연관된 모든 구성 요소는 동일한 IBM Software Hub 릴리스에서 설치되거나 생성되어야 합니다. 예를 들어, 가 버전 으로 OpenPages 5.3.1 설치된 경우, 서비스 인스턴스를 버전 으로 5.3.1 생성해야 합니다.

중요: 는 다른 버전 OpenPages 번호를 IBM Software Hub 사용합니다. 이 항목에는 의 각 업데이트 버전을 OpenPages 보여주는 IBM Software Hub 표가 포함되어 있습니다. 설치된 IBM Software Hub 버전에 따라 올바른 버전을 찾으려면 이 표를 사용하십시오.
환경 변수

이 작업의 명령어는 환경 변수를 사용하므로, 작성된 그대로 정확히 실행할 수 있습니다.

  • 환경 변수를 정의하는 스크립트가 없는 경우, 설치 환경 변수 설정을 참조하십시오.
  • 스크립트에서 환경 변수를 사용하려면, 이 작업의 명령어를 실행하기 전에 환경 변수를 소스 처리해야 합니다. 예를 들면, 다음을 실행하십시오.
    source ./cpd_vars.sh

시작하기 전에

이 작업은 다음의 전제 조건이 충족된다는 것을 가정합니다:

필수 소프트웨어 자세한 정보를 찾을 위치
OpenPages 설치되어 있습니다. 이 작업이 완료되지 않은 경우, ' OpenPages 설치'를 참조하십시오.
API 키를 생성했습니다.

API 키는 에서 서비스 인스턴스 생성 (can_provision) 권한을 IBM Software Hub가진 사용자와 연결되어야 합니다.

이 작업이 완료되지 않은 경우, API 인증 토큰 생성을 참조하십시오.
임베디드 Db2 데이터베이스를 사용 중이며 제한된 권한으로 Db2 실행하려면 구성하십시오 Db2. 실행 권한 지정 Db2U 참조.
배치에서 외부 데이터베이스를 사용 중인 경우 데이터베이스가 준비되었는지 확인하십시오.
클러스터 관리자에게 필요한 정보가 있는지 확인하십시오. OpenPages 인스턴스 프로비저닝 준비를 참조하십시오.
OpenPages 통합하려면 Cognos Analytics, Cognos Analytics 인스턴스가 프로비저닝되어 실행 중인지 확인하십시오.
참고: 의 프로비저닝 OpenPages 과정에서 가 Cognos Analytics 재시작됩니다.
서비스 인스턴스 생성 Cognos Analytics

프로시저

서비스 인스턴스를 생성하려면 다음 작업을 완료하십시오:

  1. 서비스 인스턴스 생성
  2. 서비스 인스턴스가 생성되었는지 확인
  3. 다음에 무엇을 해야 할까

서비스 인스턴스 작성

서비스 인스턴스를 작성하려면 다음을 수행하십시오.

  1. 서비스 인스턴스 페이로드를 정의하는 JSON 파일을 생성하려는 워크스테이션의 디렉터리로 이동하십시오.
  2. 서비스 인스턴스의 JSON 페이로드에 사용될 환경 변수를 설정합니다:
    1. 서비스 인스턴스의 표시 이름으로 사용할 고유한 이름을 환경 INSTANCE_NAME 변수로 설정하십시오:
      export INSTANCE_NAME="<display-name>"

      이 이름은 웹 IBM Software Hub 클라이언트의 인스턴스 페이지에 표시됩니다.

      표시 이름은 string 이며 영숫자(a-z, A-Z, 0-9), 공백( ), 대시(-), 밑줄(_), 마침표(.)를 포함할 수 있습니다. 앞서 보여준 export 명령어에서와 같이 표시 이름을 따옴표로 묶어야 합니다.

    2. 클러스터의 IBM Software Hub 버전과 일치하는 버전으로 환경 INSTANCE_VERSION 변수를 설정하십시오:
      export INSTANCE_VERSION=<version>

      다음 표를 사용하여 적절한 값을 결정하십시오:

      IBM Software Hub버전 서비스 인스턴스 버전
      5.3.1 9.7.0
      5.3.0 9.6.0
    3. 환경 INSTANCE_SIZE 변수를 설정하십시오. 크기는 서비스 인스턴스에 할당되는 리소스를 결정합니다.
      export INSTANCE_SIZE=<size>
      유효값은 다음과 같습니다.
      • small_mincpureq
      • xsmall
      • small
      • medium
      • large

      각 크기와 관련된 리소스에 대한 자세한 내용은 구성 요소 크기 조정 가이드 PDF를 참조하십시오. 해당 IBM Entitled Registry문서는 에서 다운로드할 수 있습니다.

    4. 서비스 인스턴스를 글로벌 검색과 통합할지 여부에 따라 환경 GLOBAL_SEARCH 변수를 설정하십시오.

      글로벌 검색은 고급 텍스트 처리 기술과 분석을 활용하여 모든 객체 유형을 가로질러 검색하여 검색어와 관련된 레코드를 찾습니다.

      export GLOBAL_SEARCH=<boolean>
      • 서비스 인스턴스를 글로벌 검색과 통합하도록 true 지정하십시오.
      • 서비스 인스턴스의 글로벌 검색을 통합하지 않으려면 false 지정하십시오.
    5. 서비스 인스턴스를 서비스와 Cognos Analytics 통합할지 여부에 따라 환경 COGNOS_INTEGRATION 변수를 설정하십시오:
      export COGNOS_INTEGRATION=<boolean>
      • 서비스 인스턴스를 와 통합하도록 trueCognos Analytics 지정하십시오.
      • 서비스 인스턴스를 통합하지 않으려면 Cognos Analytics false 지정하십시오.
    6. 외부 데이터베이스를 사용할지 자동으로 프로비저닝된 데이터베이스를 사용할지에 따라 적절한 환경 변수를 지정하십시오:
      외부 데이터베이스를 사용하십시오
      1. 연결하려는 데이터베이스 유형에 따라 환경 DATABASE_PROVIDER 변수를 적절한 값으로 설정하십시오:
        Db2
        export DATABASE_PROVIDER=Db2
        Oracle
        export DATABASE_PROVIDER=Oracle
      2. 데이터베이스 자격 증명을 포함하는 시크릿의 이름으로 환경 DATABASE_SECRET_NAME 변수를 설정하십시오:
        export DATABASE_SECRET_NAME=<secret_name>
      3. 서비스 인스턴스를 생성하려는 프로젝트의 환경 INSTANCE_PROJECT 변수를 설정하십시오.
        오퍼랜즈 프로젝트에서 서비스 인스턴스를 생성하십시오
        export INSTANCE_PROJECT=${PROJECT_CPD_INST_OPERANDS}

        테더링된 프로젝트에서 서비스 인스턴스를 생성합니다
        중요: 이 인스턴스에 연결된 프로젝트가 IBM Software Hub 여러 개인 경우, 명령어를 export 실행하기 전에 환경 ${PROJECT_CPD_INSTANCE_TETHERED} 변수가 올바른 프로젝트 이름으로 설정되어 있는지 확인하십시오:
        echo $PROJECT_CPD_INSTANCE_TETHERED
        export INSTANCE_PROJECT=${PROJECT_CPD_INSTANCE_TETHERED}

        기억하세요: 각 프로젝트에서 하나의 서비스 인스턴스만 생성할 수 있습니다.
      자동으로 프로비저닝된 데이터베이스를 사용하십시오
      1. 데이터베이스를 전용 노드에서 실행할지 여부에 따라 환경 DEDICATED_NODE 변수를 설정하십시오.
        export DEDICATED_NODE=<boolean>
        • 데이터베이스를 전용 노드에서 실행하도록 true 지정하십시오.
        • 다른 파드가 실행 중인 노드에서 데이터베이스를 실행하도록 false 지정하십시오.
      2. 환경에 적합한 값으로 환경 NODE_LABEL 변수를 설정하십시오:
        • 환경 NODE_LABEL 변수를 로 설정하려면 false다음을 설정하십시오:
          export NODE_LABEL=""
        • 환경 NODE_LABEL 변수를 로 true 설정했지만 노드 레이블을 사용하지 않는 경우, 다음을 설정하십시오:
          export NODE_LABEL=""

          데이터베이스는 사용 가능한 모든 노드에서 실행됩니다.

        • 환경 NODE_LABEL 변수를 로 true 설정하고 특정 노드에서 데이터베이스를 실행하려면 다음을 설정하십시오:
          export NODE_LABEL=<node-label>

          동일한 레이블을 가진 노드가 여러 개 존재할 경우, 데이터베이스는 지정된 레이블을 가진 노드 중 하나에서 실행됩니다.

      3. 자동으로 프로비저닝된 데이터베이스를 보안 컨텍스트 restricted-v2 제약 조건(SCC)과 함께 실행할지 여부에 따라 환경 RESTRICTED_V2_SCC 변수를 설정하십시오.
        • SCC를 restricted-v2 사용하려면 다음을 설정하십시오:
          export RESTRICTED_V2_SCC=true
          중요: 이 옵션은 테더링된 프로젝트에서 서비스 인스턴스를 생성하는 경우에만 사용할 수 있으며, 클러스터 관리자가 프로젝트에 필요한 어노테이션을 추가한 경우에만 적용됩니다.
          클러스터에 접근 권한이 있다면 다음 명령어를 실행하여 테더링된 프로젝트의 주석을 확인할 수 있습니다:
          oc describe project ${INSTANCE_PROJECT}

          이 프로젝트에는 다음 주석이 반드시 포함되어야 합니다:

          openshift.io/sa.scc.supplemental-groups=1001000000/10000 
          openshift.io/sa.scc.uid-range=1001000000/10000 
          openshift.io/sa.scc.mcs=s0:c27,c512
        • 기본 SCC를 사용하려면 다음을 설정하십시오:
          export RESTRICTED_V2_SCC=false
  3. 페이로드 openpages-instance.json 파일을 생성하십시오.

    실행하는 명령어는 외부 데이터베이스를 사용할지 내부 데이터베이스를 사용할지에 따라 달라집니다.


    외부 데이터베이스를 사용하십시오
    cat << EOF > ./openpages-instance.json
    {
        "display_name": "${INSTANCE_NAME}",
        "namespace": "${INSTANCE_PROJECT}",
        "addon_version": "${INSTANCE_VERSION}",
        "addon_type": "openpages",
        "create_arguments": {
            "metadata": {
                "databaseType": "external",
                "database": "${DATABASE_PROVIDER}",
                "dbSecretName": "${DATABASE_SECRET_NAME}",
                "blockStorageClass": "",
                "fileStorageClass": "${STG_CLASS_FILE}",
                "enableGlobalSearch": ${GLOBAL_SEARCH},
                "enableIntegrationWithCognos": ${COGNOS_INTEGRATION}, 
                "scaleConfig": "${INSTANCE_SIZE}"
            }
        },
    }
    EOF
    다음 환경 변수는 설치 환경 변수 스크립트에 이미 정의된 값을 사용합니다:
    • ${STG_CLASS_FILE}

    자동으로 프로비저닝되고 통합된 데이터베이스를 사용하십시오

    클러스터의 스토리지 유형에 따라 적절한 명령어를 실행하십시오.

    모든 저장소 제외 Portworx
    cat << EOF > ./openpages-instance.json
    {
        "display_name": "${INSTANCE_NAME}",
        "namespace": "${PROJECT_CPD_INST_OPERANDS}",
        "addon_version": "${INSTANCE_VERSION}",
        "addon_type": "openpages",
        "create_arguments": {
            "metadata": {
                "databaseType": "internal",
                "database": "Db2",
                "enableRestrictedV2SCCForDb2": ${RESTRICTED_V2_SCC},
                "dedicatedDbNodes": ${DEDICATED_NODE},
                "dbNodeLabelValue": "${NODE_LABEL}",
                "dbDataStorageClass": "${STG_CLASS_BLOCK}",
                "dbMetaStorageClass": "${STG_CLASS_FILE}",
                "dbBackupStorageClass": "${STG_CLASS_FILE}",
                "appStorageClass": "${STG_CLASS_FILE}",,
                "enableGlobalSearch": ${GLOBAL_SEARCH},
                "enableIntegrationWithCognos": ${COGNOS_INTEGRATION},
                "scaleConfig": "${INSTANCE_SIZE}"
            }
        }
    }
    EOF
    다음 환경 변수는 설치 환경 변수 스크립트에 이미 정의된 값을 사용합니다:
    • ${PROJECT_CPD_INST_OPERANDS}
    • ${STG_CLASS_BLOCK}
    • ${STG_CLASS_FILE}
    Portworx 스토리지
    cat << EOF > ./openpages-instance.json
    {
        "display_name": "${INSTANCE_NAME}",
        "namespace": "${PROJECT_CPD_INST_OPERANDS}",
        "addon_version": "${INSTANCE_VERSION}",
        "addon_type": "openpages",
        "create_arguments": {
            "metadata": {
                "databaseType": "internal",
                "database": "Db2",
                "enableRestrictedV2SCCForDb2": ${RESTRICTED_V2_SCC},
                "dedicatedDbNodes": ${DEDICATED_NODE},
                "dbNodeLabelValue": "${NODE_LABEL}",
                "dbDataStorageClass": "portworx-db2-rwo-sc",
                "dbMetaStorageClass": "portworx-db2-rwx-sc",
                "dbBackupStorageClass": "portworx-db2-rwx-sc",
                "appStorageClass": "portworx-shared-gp3",,
                "enableGlobalSearch": ${GLOBAL_SEARCH},
                "enableIntegrationWithCognos": ${COGNOS_INTEGRATION},
                "scaleConfig": "${INSTANCE_SIZE}"
            }
        }
    }
    EOF
    다음 환경 변수는 설치 환경 변수 스크립트에 이미 정의된 값을 사용합니다:
    • ${PROJECT_CPD_INST_OPERANDS}

    다음 환경 변수는 설치 환경 변수 스크립트에 이미 정의된 값을 사용합니다:
    • ${PROJECT_CPD_INST_OPERANDS}
    • ${STG_CLASS_FILE}
  4. 워크스테이션에서 JSON 페이로드 파일의 완전한 경로 이름을 환경 PAYLOAD_FILE 변수로 설정하십시오:
    export PAYLOAD_FILE=<fully-qualified-JSON-file-name>
  5. 서비스 인스턴스를 생성하려는 IBM Software Hub 인스턴스에 연결하는 데 사용되는 환경 변수를 설정하십시오:
    1. 환경 CPD_ROUTE 변수를 설정하십시오:
      export CPD_ROUTE=$(oc get route cpd -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath={".spec.host"})

      이 명령어는 설치 환경 변수 스크립트에 이미 정의된 변수를 PROJECT_CPD_INST_OPERANDS 사용합니다.

    2. 환경 API_KEY 변수를 생성한 API 키로 설정하십시오:
      export API_KEY=<your_api_key>
  6. 페이로드 파일로부터 서비스 인스턴스를 생성합니다.

    서비스 인스턴스를 생성하려는 IBM Software Hub 인스턴스가 자체 서명된 인증서를 사용하는지, 신뢰할 수 있는 인증 기관에서 서명한 인증서를 사용하는지에 따라 실행하는 명령이 달라집니다.


    해당 인스턴스는 신뢰할 수 있는 인증 기관이 서명한 인증서를 사용합니다
    curl --request POST \
    --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \
    --header "Authorization: ZenApiKey ${API_KEY}" \
    --header 'Content-Type: application/json' \
    --data @${PAYLOAD_FILE}

    해당 인스턴스는 자체 서명된 인증서를 사용합니다(기본값)
    curl -k --request POST \
    --url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \
    --header "Authorization: ZenApiKey ${API_KEY}" \
    --header 'Content-Type: application/json' \
    --data @${PAYLOAD_FILE}

    요청이 성공한 경우, 명령어는 다음 HTTP 응답 코드 중 하나를 반환합니다:
    • 200 - 요청이 성공적으로 완료되었으며 서비스 인스턴스가 프로비저닝되었습니다.
    • 202 - 요청이 성공적으로 제출되었습니다. 서비스 인스턴스가 프로비저닝 중입니다.

    요청이 성공하지 못한 경우, 응답 HTTP 코드를 사용하여 원인을 확인하십시오.

서비스 인스턴스가 생성되었는지 확인

서비스 인스턴스가 생성되었는지 확인하려면:

  1. 환경 INSTANCE_ID 변수를 명령어가 POSTcURL 반환한 ID로 설정하십시오:
    export INSTANCE_ID=<ID-from-response>
  2. 서비스 인스턴스의 상태를 확인합니다.

    서비스 인스턴스를 생성하려는 IBM Software Hub 인스턴스가 자체 서명된 인증서를 사용하는지, 신뢰할 수 있는 인증 기관에서 서명한 인증서를 사용하는지에 따라 실행하는 명령이 달라집니다.


    해당 인스턴스는 신뢰할 수 있는 인증 기관이 서명한 인증서를 사용합니다
    curl --request GET \
      --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \
      --header "Authorization: ZenApiKey ${API_KEY}" \
      --header 'Content-Type: application/json'

    해당 인스턴스는 자체 서명된 인증서를 사용합니다(기본값)
    curl -k --request GET \
      --url "https://${CPD_ROUTE}/zen-data/v3/service_instances/${INSTANCE_ID}" \
      --header "Authorization: ZenApiKey ${API_KEY}" \
      --header 'Content-Type: application/json'

    • 요청이 성공한 경우, 명령어는 다음 HTTP 응답 코드를 반환합니다: 200
      JSON 응답에서 provision_status 매개변수를 찾으십시오.
      • 값이 인 경우 PROVISIONED, 서비스 인스턴스가 성공적으로 생성되었습니다.
      • 값이 인 경우 PROVISION_IN_PROGRESS, 몇 분간 기다린 후 명령어를 다시 실행하십시오.
      • 값이 인 경우 FAILED, 및 zen-watcher zen-core-api 포드의 로그를 검토하여 가능한 원인을 확인하십시오.
    • 요청이 성공하지 못한 경우, 응답 HTTP 코드를 사용하여 원인을 확인하십시오.

다음에 수행할 작업

인스턴스를 프로비저닝한 후에는 사용자가 사용하기 전에 몇 가지 설치 후 OpenPages 작업을 수행해야 합니다.