C:\Users\<user>\.cde\config.yaml 을 정상적으로 만들어 뒀는데 cde resource list 가 아래처럼 뜬다. 엔드포인트를 플래그로 주면 이번에는 암호 프롬프트가 뜬다. 즉 user 키도 못 읽고 있는, 파일 자체가 무시되는 상태다.
Error: virtual cluster endpoint not specified. Use --vcluster-endpoint, ...
CDE CLI 는 Go 바이너리이고 home 경로 해석이 Linux · macOS 기준으로 되어 있어, Windows 빌드는 ~/.cde/config.yaml 을 자동 발견하지 않는다. HOME 을 C:\Users\<user> 로 맞춰 줘도 읽지 않는다. 환경변수로 절대경로를 직접 줘야 한다.
| 항목 | Windows 경로 | Linux 대응 |
|---|---|---|
cde.exe |
C:\Tools\cde\cde.exe |
/usr/local/bin/cde |
| 메인 설정 | C:\Users\<user>\.cde\config.yaml |
~/.cde/config.yaml |
| CDP 자격 증명 | C:\Users\<user>\.cdp\credentials |
~/.cdp/credentials |
| CA 인증서 | C:\Users\<user>\.cde\ca.pem |
~/.cde/ca.pem |
| 토큰 캐시 | C:\Users\<user>\AppData\Local\cloudera\cde\ |
~/.cache/cloudera/cde/ |
credentials 파일은 Linux 에서는 $HOME/.cdp/credentials 에 두면 자동 발견된다. .cde 가 아니라 .cdp 라는 점에 주의한다. 명시 지정하는 경우에는 폴더 이름이 아무 의미가 없으므로 .cde 아래로 합쳐도 무방하다.
cdp-endpoint 는 CDE CLI 의 정식 키다. credentials 파일이나 access key 방식을 쓸 때는 Cloudera 엔드포인트 URL(on-premises 콘솔 URL 과 동일) 이 필요하다.
[Environment]::SetEnvironmentVariable("CDE_CONFIG", "C:\Users\user\.cde\config.yaml", "User")
[Environment]::SetEnvironmentVariable("CDE_CREDENTIALS_FILE", "C:\Users\user\.cdp\credentials", "User")
SetEnvironmentVariable(..., "User") 는 레지스트리에 영구 저장하지만 현재 세션에는 반영되지 않는다. 그래서 바로 echo $env:CDE_CONFIG 를 하면 빈 값이 나온다. 창을 완전히 닫고 새 PowerShell 을 열어야 한다.
# 현재 세션에서 바로 시험하려면
$env:CDE_CONFIG = "C:\Users\user\.cde\config.yaml"
$env:CDE_CREDENTIALS_FILE = "C:\Users\user\.cdp\credentials"
# 레지스트리에 실제로 등록됐는지는 세션 캐시를 거치지 않고 확인한다
[Environment]::GetEnvironmentVariable("CDE_CONFIG", "User")
cde resource list
여기서도 빈 값이면 회사 정책으로 사용자 환경변수 등록이 막혀 있을 가능성을 본다.
PATH 에 C:\Tools\cde 를 넣어 cde.exe 를 찾게 하는 것과, CDE_CONFIG · CDE_CREDENTIALS_FILE 로 파일 위치를 알려주는 것은 서로 다른 일이다. 둘 다 필요하다.