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 18.1.4.2 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.

Preparation

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/19.0.0.0/grid/bin/crsctl 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
U2FsdGVkX18D8KUpegiiA1TsgyHM0qbuDmssE0ds0obLgSzrJGe0qa6Anec7D5kV
O1Wqr+W9giQvmP3sVM5HMK6V7Xqn/u1wWBBn411xoo6oUc6UFDiBhQP0mJ+rrmol
qJQ+/xCDscCCzQ8l2bzv5Q==

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

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
cell="xxx.xxx.xxx.xxx;xxx.xxx.xxx.xxx"
cell="xxx.xxx.xxx.xxx;xxx.xxx.xxx.xxx"
cell="xxx.xxx.xxx.xxx;xxx.xxx.xxx.xxx"

Test

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.1.9.0.0_LINUX.X64_210416
         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
         offloadGroupEvents:
         powerCount:             2/2
         powerStatus:            normal
         ramCacheMaxSize:        0
         ramCacheMode:           Auto
         ramCacheSize:           0
         releaseImageStatus:     success
         releaseVersion:         20.1.9.0.0.210416
         rpmVersion:             cell-20.1.9.0.0_LINUX.X64_210416-1.x86_64
         releaseTrackingBug:     32738303
         rollbackVersion:        20.1.4.0.0.201203
         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
"

References

Leave a Reply

Your email address will not be published.