The Oracle Public Cloud Command-Line Interface is a utility to enable management of your cloud environment from the command line. The current release (1.1.0) only supports the Compute service, but Oracle states that additional service support coming in future releases
I like command line interfaces and being familiar with Oracle’s cloud competitors implementation I was curious. So I downloaded the CLI tool here and since I had already python installed on my OS X the startup time as a newcomer is relatively short.
The initial setup
We need 3 variables to connect to the Oracle Cloud:
- The REST API endpoint
You can get the REST endpoint by logging in to the Oracle Cloud and check the service details under Oracle Compute Cloud Service.
So we get the REST Endpoint here for our OPC_API and the OPC_USER is a combination of prefix “/Compute-“, your domain and your Cloud username. So run the next 2 commands in your shell (and use your own version off course):
export OPC_API="https://api-z00.compute.us1.oraclecloud.com" export OPC_USER=/Compute-gse00000001/cloud.admin
We need to paste the password in a textfile, because the oracle-compute CLI otherwise will tell us:
ValidationError: Secure argument “password” can only be read from a file or terminal, but the argument “xxxxx” is not a regular file
So create a pwd.txt, store the password there and
chmod 600 /full/path/to/password/file
Next step is getting authenticated against the Oracle Compute Cloud.
oracle-compute auth /Compute-gse00000001/cloud.admin pwd.txt
This command returns an authentication token and sets the OPC_COOKIE environment variable. The token expires after 30 minutes. As the CLI tool handles authentication by managing the cookies file, you don’t need to run the export command yourself.
The authentication token expires 30 minutes from the time you run the auth command. The refresh_token command extends the expiry of the current authentication token with another 30 minutes, but not beyond the session expiry time, which is 3 hours.
You can now use all the CLI commands like list, delete, add, create, discover, get and more. At least for 30 minutes :)