ExaCC: Configuration and usage of ExaCLI

In the context of an ExaCC Gen2 environment, the command-line utility ExaCLI can be used to monitor and manage (only a subset of commands are allowed) the Exadata Storage Server (with and higher). For example, you can check the software version of the Dom0 layer. In this blog post, I will describe all the required steps to get ExaCLI running.


Oracle creates a user on the Exadata Storage Server for every existing VM cluster. The naming notation is cloud_user_<cluster name>. The cluster name is auto-generated and does not reflect the name which is used during the creation of the VM cluster. To get the cluster name run the following command as root or grid user.

$> /u01/app/ get cluster name
CRS-6724: Current cluster name is 'fra123456ex-371'

The above result would result in the username cloud_user_fra123456ex-371. A default password is defined and saved as the encrypted value in the file /opt/exacloud/cs_data.enc and can be converted using the get_cs_data.py Python script (run as root or opc).

$> cat /opt/exacloud/cs_data.enc

$> /opt/exacloud/get_cs_data.py --data_file /opt/exacloud/cs_data.enc
ExaCli initial password is:

To connect to the Exadata Storage Servers we need their IP addresses. If you don’t know the IP addresses, check the content of the file /etc/oracle/cell/network-config/cellip.ora.

$> cat /etc/oracle/cell/network-config/cellip.ora


Now it is time to check the connection.

$> exacli -l cloud_user_fra123456ex-371 -c xxx.xxx.xxx.xxx
Password: ************************
EXA-30000: Cannot connect to MS at xxx.xxx.xxx.xxx:443. Error: Connection refused (Connection refused).

I used the initial password, but the connection failed. It looks like that the initial password is not correct – I tested this with different clusters and the result is always the same.

To reset the password a service request needs to be open.

If the connection was successful, you are connected to the Exadata Storage Server.

$> exacli -l cloud_user_fra123456ex-371 -c xxx.xxx.xxx.xxx
exacli cloud_user_fra123456ex-37@xxx.xxx.xxx.xxx>

Not all commands can be used. If you use a command which is not allowed, you will get an error.

exacli cloud_user_fra123456ex-37@xxx.xxx.xxx.xxx> LIST SOFTWAREUPDATE;
CELL-06015: Current user does not have privileges to run this command.

One of the useful commands is LIST CELL DETAIL. With the help of this command, you can for example see the software version and other details.

exacli cloud_user_fra123456ex-37@xxx.xxx.xxx.xxx> LIST CELL DETAIL;
         name:                   fra123456exdcl02
         accessLevelPerm:        remoteLoginEnabled
         bbuStatus:              normal
         cellVersion:            OSS_20.
         cpuCount:               96/96
         diagHistoryDays:        7
         doNotServiceLEDStatus:  off
         exacliEnabled:          TRUE
         fanCount:               8/8
         fanStatus:              normal
         flashCacheMode:         WriteBack
         httpsAccess:            ALL
         id:                     XXXXXXXXXX
         interconnectCount:      4
         interconnect1:          stre0
         interconnect2:          stre1
         iormBoost:              0.0
         ipaddress1:             xxx.xxx.xxx.xxx/23
         ipaddress2:             xxx.xxx.xxx.xxx/23
         kernelVersion:          4.14.35-1902.306.2.2.el7uek.x86_64
         locatorLEDStatus:       off
         makeModel:              Oracle Corporation ORACLE SERVER X8-2L High Capacity
         memoryGB:               188
         metricHistoryDays:      7
         powerCount:             2/2
         powerStatus:            normal
         ramCacheMaxSize:        0
         ramCacheMode:           Auto
         ramCacheSize:           0
         releaseImageStatus:     success
         rpmVersion:             cell-
         releaseTrackingBug:     32738303
         status:                 online
         temperatureReading:     20.0
         temperatureStatus:      normal
         upTime:                 10 days, 16:05
         usbStatus:              normal
         rsStatus:               running
         msStatus:               running
         cellsrvStatus:          running

Batch Mode

ExaCLI asks for the password interactively. There is no password parameter to provide it. If you want to use it for scripts, you have to use a workaround.

$> echo "my_password" | exacli -l cloud_user_fra123456ex-371 -c xxx.xxx.xxx.xxx -e "LIST CELL DETAIL;"

Of course, this has the side effect, that the password is visible in clear text and in the process list.

As an alternative, the password can be provided using the expect utility.

$> expect -c "
spawn  exacli -l cloud_user_fra12345ex-611 -c xxx.xxx.xxx.xxx -e \"LIST CELL DETAIL\"
expect \"Password:\"
send -- \"my_password\r\"
send -- \"\r\"
expect eof



  1. Hi,

    we have this exaCli stuff at our EXACC systems running,

    currently we try to integrate the Exadata Storagecells to CloudControl 13.5 to get metrics displayed.

    At SuperCluster this was quite easy – did somebody managed to get this running on EXACC ?


    1. Hi Charly,

      I know that the colleagues had also some issues with the integration of ExaCC into OEM. For example, only one VM Cluster was/is visible.

      I am currently on vacation, I can try to get more information on Monday.


Leave a Reply

Your email address will not be published. Required fields are marked *