2014-02-12 3 views
0

요구 사항 : 테스트 및 프로덕션 환경에 안전한 자격 증명이 사용됩니다.Cloudbees Play : 테스트 및 프로덕션에 사용되는 자격 증명을 보호하는 방법

내 접근 :

  1. 스토어 로컬 파일에서 구성 매개 변수 (즉,이 파일이 자식-REPO에 있으면 안) 런타임에서
  2. 를 사용하여 재생하려면이 파일의 위치를 ​​제공 APP_CONFIG_FILE env 변수 또는 명령 행 매개 변수.

다음은 내가 직면 한 문제의 세부 사항입니다. 이 요구 사항에 대한 작업 솔루션을 제안하십시오.

테스트 환경 (젠킨스 사용)에서

:

  1. 스토어
  2. "산 Cloudbees 데브 클라우드 개인의 WebDAV 저장소 @"에서
  3. "빌드를 선택 /private/myaccount/testing.conf의 파일 - "Excute Shell"에 다음을 추가합니다. "APP_CONFIG_FILE =/private/myaccount/testing.conf"을 내 보냅니다.
  4. Global.java에서 {lay application}에서 다음을 사용하여 파일 이름을 가져옵니다. String configFilename = Play.application(). configuration) .getString (APP_CONFIG_FILE);

문제 : 널 (null)로 APP_CONFIG_FILE을 받고 테스트 스위트에서 . 질문 : "플레이 테스트"생산에서

에 대한 환경 변수를 전달하는 방법 :

  1. 스토어 /private/myaccount/production.conf에서 파일

문제 : 방법 RUN에서 개인 저장소에 액세스하려면 @ cloud? 어떻게하는지에 대한 문서를 찾을 수 없었습니다.

답변

0

런타임시 가장 좋은 옵션은 configuration parameters입니다.

파일 시스템이 클라우드에 지속적이지 않습니다. 그러나 클라우드의 ephermal 파일 시스템에 액세스하려면 System.getProperty ("java.io.tempDir")를 사용하여 경로를 가져올 수 있습니다.

AFAIK를 실행하면 RUN 및 viceversa에서 DEV에 액세스 할 수 없습니다. DEV와 RUN에서 당신의 비밀을 독자적으로 관리해야한다고 생각합니다.

+0

그냥 명확히하기 위해 DEV에서 RUN 및 viceversa에 액세스하지 않습니다. 이들은 독립적 인 환경입니다. 위에서 설명한대로 이러한 환경마다 각각 다른 문제점을 발견합니다. 두 가지 환경에 대한 내 목표가 같아서 (즉, 자격 증명을 보호하기 때문에) 동일한 스레드에 넣었습니다. – pradeep

0

구성 매개 변수가 시스템 특성으로 주입되므로, 좋은 이전 System.getProperty()를 사용하여 프로덕션 구성 값을 얻을 수 있습니다.

+0

테스트 환경에서 System.getProperty (APP_CONFIG_FILE)에 대해 null이 표시됩니다. 왜 "play test"가 시스템 속성을 얻지 못하는지 잘 모르겠습니다. – pradeep