프린트 하기 URL 복사

EXADATA Image : 22.1.33.0.0.250304

 

OS 환경 : Oracle Linux 7.9 (64bit)

 

DB 환경 : Oracle Database 19.31.0.0

 

방법 : 오라클 Exadata dcli ssh password-less(패스워드 없는 SSH 통신) 설정

exadata에서 사용하는 dcli 명령어에서 셀 노드에 접근할때 패스워드 인증이 되어 있지 않은 경우 명령을 입력할때마다 매번 셀 노드 패스워드를 입력해줘야함
본문에서는 패스워드 없이 셀 노드에 명령어를 입력할수 있게 dcli 명령으로 password-less를 설정하는 방법을 설명함

 

 

dcli(Distributed Command Line Interface)란?
오라클 엑사데이터(Exadata) 환경에서 수십 대의 DB 노드와 스토리지 서버(Cell 노드)에 동일한 명령어를 한 번에 병렬로 실행할 수 있게 해주는 핵심 분산 관리 유틸리티임
기본적으로 패스워드 없는 SSH 통신(SSH Trust)을 기반으로 작동하고 단순한 OS 명령어부터 하드웨어 제어를 위한 cellcli 명령어까지 일괄 처리할 수 있어
대규모 인프라 관리의 효율성을 극대화하고 엔지니어의 작업 시간을 획기적으로 단축해 주는 명령임

 

 

cell group 확인

1
2
3
4
# cat cell_group
exa7celadm01
exa7celadm02
exa7celadm03

현재 3개의 셀 노드가 존재함

 

 

dcli 명령으로 각 셀 서버에서 date 명령어 수행

1
2
3
4
5
6
7
8
# dcli -g cell_group -l root "date"
The authenticity of host 'exa7celadm03 (192.168.137.205)' can't be established.
ECDSA key fingerprint is SHA256:kmT8nL3vffF2lpSaQrXX3pgyyYLbLGO1+oic3/BLuvg.
ECDSA key fingerprint is MD5:8c:61:9b:1d:e3:82:11:87:68:7f:d9:f2:64:df:92:ee.
Are you sure you want to continue connecting (yes/no)? The authenticity of host 'exa7celadm02 (192.168.137.204)' can't be established.
ECDSA key fingerprint is SHA256:o38tIi/ALGUfAqh5HKgc3zCrQN6LVeb7Nxg3KzX+gA0.
ECDSA key fingerprint is MD5:0f:75:e6:e2:41:df:c9:d6:c5:08:26:70:44:b3:69:24.
Are you sure you want to continue connecting (yes/no)? root@exa7celadm01's password:

현재 각 셀 노드의 패스워드를 물어봄

명령어 설명 : 

-g : 셀 그룹(셀 노드 정보가 있는 파일을 지정)

-l : 어떤 유저로 명령어를 수행할지 지정(본문에서는 root 사용)

"date" : 실제 수행할 명령어

 

 

dcli 명령시 -k 옵션 사용하여 재수행
각 셀서버마다 패스워드 입력 및 yes 입력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# dcli -k -g cell_group -l root "date"
root@exa7celadm01's password:
The authenticity of host 'exa7celadm02 (192.168.137.204)' can't be established.
ECDSA key fingerprint is SHA256:o38tIi/ALGUfAqh5HKgc3zCrQN6LVeb7Nxg3KzX+gA0.
ECDSA key fingerprint is MD5:0f:75:e6:e2:41:df:c9:d6:c5:08:26:70:44:b3:69:24.
Are you sure you want to continue connecting (yes/no)? yes
root@exa7celadm02's password:
The authenticity of host 'exa7celadm03 (192.168.137.205)' can't be established.
ECDSA key fingerprint is SHA256:kmT8nL3vffF2lpSaQrXX3pgyyYLbLGO1+oic3/BLuvg.
ECDSA key fingerprint is MD5:8c:61:9b:1d:e3:82:11:87:68:7f:d9:f2:64:df:92:ee.
Are you sure you want to continue connecting (yes/no)? yes
root@exa7celadm03's password:
exa7celadm01: ssh key added
exa7celadm01: Mon Jun 28 16:41:08 KST 2026
exa7celadm02: ssh key added
exa7celadm02: Mon Jun 28 16:41:12 KST 2026
exa7celadm03: ssh key added
exa7celadm03: Mon Jun 28 16:41:16 KST 2026

date 결과 값이 나옴

 

 

dcli 명령 재수행

1
2
3
4
# dcli -g cell_group -l root "date"
gdx7celadm01: Tue Jun 28 16:41:16 KST 2026
gdx7celadm02: Tue Jun 28 16:41:20 KST 2026
gdx7celadm03: Tue Jun 28 16:41:24 KST 2026

패스워드를 안물어보고 정상적으로 data가 표시됨

 

 

dcli에서 k 옵션은 ssh key 값을 보내는 명령임
dcli help에서 보면 이렇게 나와있음
k : push ssh key to cell's authorized_keys file
k : 셀의 authorized_keys 파일에 SSH 키를 추가합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# dcli -h
 
Distributed Shell for Oracle Storage
 
This script executes commands on multiple cells in parallel threads.
The cells are referenced by their domain name or ip address.
Local files can be copied to cells and executed on cells.
This tool does not support interactive sessions with host applications.
Use of this tool assumes ssh is running on local host and cells.
The -k option should be used initially to perform key exchange with
cells.  User may be prompted to acknowledge cell authenticity, and
may be prompted for the remote user password.  This -k step is serialized
to prevent overlayed prompts.  After -k option is used once, then
subsequent commands to the same cells do not require -k and will not require
passwords for that user from the host.
Command output (stdout and stderr) is collected and displayed after the
copy and command execution has finished on all cells.
Options allow this command output to be abbreviated.
 
Return values:
 0 -- file or command was copied and executed successfully on all cells
 1 -- one or more cells could not be reached or remote execution
      returned non-zero status.
 2 -- An error prevented any command execution
 
Examples:
 dcli -g mycells -k
 dcli -c stsd2s2,stsd2s3 vmstat
 dcli -g mycells cellcli -e alter iormplan active
 dcli -g mycells -x reConfig.scl
 
Usage: dcli [options] [command]
 
Options:
  --version             show program's version number and exit
  --batchsize=MAXTHDS   limit the number of target cells on which to run the
                        command or file copy in parallel
  -c CELLS              comma-separated list of cells
  --ctimeout=CTIMEOUT   Maximum time in seconds for initial cell connect
  -d DESTFILE           destination directory or file
  -f FILE               files to be copied
  -g GROUPFILE          file containing list of cells
  -h, --help            show help message and exit
  --hidestderr          hide stderr for remotely executed commands in ssh
  -k                    push ssh key to cell's authorized_keys file   <<-- !!
  --key-with-one-password
                        apply one credential for pushing ssh key to
                        authorized_keys files
  -l USERID             user to login as on remote cells (default: celladmin)
  --root-exadatatmp     root user login using directory /var/log/exadatatmp/
  --maxlines=MAXLINES   limit output lines from a cell when in parallel
                        execution over multiple cells (default: 100000)
  -n                    abbreviate non-error output
  -r REGEXP             abbreviate output lines matching a regular expression
  -s SSHOPTIONS         string of options passed through to ssh
  --scp=SCPOPTIONS      string of options passed through to scp if different
                        from sshoptions
  --serial              serialize execution over the cells
  --showbanner          show banner of the remote node in ssh
  -t                    list target cells
  --unkey               drop keys from target cells' authorized_keys file
  -v                    print extra messages to stdout
  --vmstat=VMSTATOPS    vmstat command options
  -x EXECFILE           file to be copied and executed

 

 

참고. exadcli
온프레미스 환경에서는 dcli를 많이 쓰지만 oci 환경에서는 exadcli 명령을 많이 사용 한다고함
dcli, exacli 비교
dcli(Distributed Command Line Interface)
통신 프로토콜 : SSH (포트 22). 사전에 known_hosts와 authorized_keys를 통한 패스워드 없는 SSH 구성(Trust)이 선행되어야 함
권한 체계 : OS 레벨의 권한(root, celladmin, oracle 등)에 전적으로 의존함
실행 범위 : OS 명령어(cat /var/log/messages, date 등)부터 Storage Server의 하위 하드웨어 제어 명령어까지 어떠한 제약 없이 실행 가능함

 

exadcli(Exadata Distributed Command Line Interface)
통신 프로토콜 : HTTPS를 통해 각 노드의 MS(Management Server) 프로세스가 노출하는 RESTful API 엔드포인트를 호출함 SSH 프로토콜을 사용하지 않음
권한 체계 (RBAC) : Exadata System Software 19.x 이상부터 강화된 Role-Based Access Control을 사용함
OS 계정이 아닌 MS 내부에 전용 사용자(예: cellmonitor)를 생성하고, 해당 사용자가 볼 수 있는 지표만 제한적으로 권한을 부여함
실행 범위 : ExaCLI 명령어만 실행할 수 있음 예를 들어, PMEM 에러 점검, Flash Cache 적중률 확인, Smart Scan (Cell Offload) 요청 처리량(list activerequest), Storage Index 상태 조회 등은 가능하지만, 단순 OS 명령어(예: ls -al)는 보안상 거부(Reject)됨

 

 

결론 :
dcli 명령에서 -k 옵션을 사용하여 명령어를 1회 수행하면 자동으로 password-less 설정이 됨

 

 

참조 : 

https://docs.oracle.com/en/engineered-systems/exadata-database-machine/sagug/overview-dcli-utility.html
https://docs.oracle.com/en/engineered-systems/exadata-database-machine/dbmmn/exadcli-command-reference.html

'ORACLE > Exadata' 카테고리의 다른 글

오라클 Exadata cellcli, dcli alerthistory 확인 명령  (0) 2026.07.01