OCI¶
Credentials¶
Easy way¶
Run:
$ pip install oci-cli
$ oci setup config
When prompted:
location for your config: use default
user OCID: enter your user id found on the Oracle console at Identity>>Users>>User Details
tenancy OCID: enter your tenancy id found on the Oracle cnosole at Administration>>Tenancy Details
region: Choose something sensible
API Signing RSA key pair: use defaults for all prompts
* Note this ISN'T an SSH key pair
Follow instructions in your terminal for uploading your generated key
Now specify your config_path
in pycloudlib.toml.
Hard way¶
Construct your config file manually by filling in the appropriate entries
documented here:
https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm
Compartment id¶
In addition to the OCI config, pycloudlib.toml also requires you provide the
compartment id. This can be found in the OCI console
from the menu at Identity>Compartments>
SSH Keys¶
OCI does not require any special key configuration. See the SSH Key page for more details
Image Lookup¶
OCI doesn’t have a concept of releases vs daily images, so both API calls refer to the same thing. To get the list for a release of Ubuntu:
oci.released_image('focal')
'ocid1.compartment.oc1..aaaaaaaanz4b63fdemmuag77dg2pi22xfyhrpq46hcgdd3dozkvqfzwwjwxa'
The returned image id can then be used for launching instances.
Instances¶
Launching instances requires at minimum an image_id, though instance_type (shape in Oracle terms) can also be specified, in addition to the other parameters specified by the base API.
Snapshots¶
A snapshot of an instance is used to generate a new backing image. The generated image can in turn get used to launch new instances. This allows for customization of an image and then re-use of that image.
inst = oci.launch(image_id)
inst.execute('touch /etc/foobar')
snapshot = oci.snapshot(instance.id)
inst_prime = oci.launch(snapshot)