The OCI Cloud Shell is an excellent way of quickly using the OCI CLI and other tools for managing you OCI environment from the command line, but what if you’re still using the OCI Classic services?

If you’re running in an environment with access to both OCI and OCI Classic Services, or maybe you’re in the process of moving from OCI Classic to OCI then the following tips will help you run the OCI Classic command line utilities from with the OCI Cloud Shell

  • opc cli for OCI Classic Compute, Storage, and Networking
  • ftmcli for OCI Classic Object Storage
  • psm

This article was partially inspired by a question on Reddit asking how to list all Oracle Cloud Infrastructure instances and their IP addresses.

One way to approach this is using a simple Python script with the OCI Python-SDK, but I also wanted to find a way to run this directly in Cloud Shell from the OCI Console, to minimize any additional setup needed to run the script.

When you launch the Cloud Shell from OCI Console you are provided a terminal environment with a number of common tools and utilities pre-installed including the OCI CLI and the Python SDK.


This article covers a common configuration pattern that I’ve been meaning to post for a while. When provisioning resources in Oracle Cloud Infrastructure (OCI), some resources, specifically IAM resources, can only be created in the Home Region.

If a configuration requires the creation of IAM resource, like a new compartment or deployment specific Policies, then the Terraform configuration needs to target multiple regions. Terraform allows for provisioning to multiple regions by declaring additional providers and assigning a provide alias, so for a simple example

# default provider for the configuration
provider "oci" {
region = var.region
# provider for…

compiling graphviz-2.42.0

For general usage installing GraphViz on MacOS is fairly straightforward. GraphViz is available as a Homebrew package which can be installed as simply as:

$ brew install graphviz

However, at the time of writing, the brewed version of Graphviz 2.40.1_1 has some limitations. Graphviz can be built with several optional capabilities and plugins depending on the build flags and the libraries available on the system at build time. The current Homebrew formula excludes some of these optional capabilities, including PDF support. …

The OCI Terraform provider terraform-provider-oci v3.33.0 introduces support for Network Security Groups. This, in my opinion, is a game-changer for how to define security rules in your Terraform configurations.

With the current VCN Security Lists, security rules are applied to all instance vNICs within the subnet that uses the security list. In contrast, Network Security Group security rules are applied to a defined subset of vNICs across the entire VCN, regardless of the subnet, the vNIC is located in. This separation of the security context from the network topology allows for more fine-grained security control.

For users coming for Oracle…

My initial post on Managing Oracle Cloud Infrastructure iSCSI Block Volume attachments with Terraform only covered the steps for Oracle Linux instances. In this article we’ll look at how the same approach can be used for attaching iSCSI block volumes to Windows instances.

Enable remote-exec provisioning with WinRM

First we need to enable the instance for remote provisioning on creation. The Oracle Cloud Infrastructure Windows images are enabled for cloudbase-init and WinRM (see Oracle-Provided Images), but before being able to use the Terraform remote-exec provisioner with WinRM there are some network and instance configuration pre-requisites that must be satisfied.

Enable ingress WinRM traffic

Configure your subnet security rules to…

Attaching additional block storage data volumes to instances is a common use case for many cloud deployments. This article outlines an approach to managing the attachment and connection details for iSCSI block volumes on Oracle Cloud Infrastructure (OCI) compute instances with Terraform.

| Terraform 0.11.10, provider.oci 3.5.0, Oracle Linux 7.4

When connecting additional block storage data volumes to an instance there are 4 key steps to consider:

  1. Create — create the block storage volume resource. This is created in Terraform using the oci_core_volume resource. If you are working with an existing storage volume you can use the oci_core_volume data source.

This article covers how to get started using the Terraform Providers for Oracle Cloud to deploy and manage application deployments to the Oracle Application Container Cloud Service

Oracle Application Container Cloud Service provides a rapid and scalable platform for application deployment on a choice of runtime platforms including Java EE, Java SE, Node.js, PHP, Python, Ruby, Go, and .NET

To use the Application Container Cloud Service with the oraclepaas provider set the application_endpoint to the REST API Endpoint provided on the Service Details page of the Oracle Cloud My Services dashboard.

provider "oraclepaas" {

This article provides an introduction to using the Load Balancer resources to provision and configure an Oracle Cloud Infrastructure Load Balancer Classic instance using Terraform

When using the Load Balancer Classic resources with the opc Terraform Provider the lbaas_endpoint attribute must be set in the provider configuration.

provider "opc" {
version = "~> 1.2"
user = "${var.user}"
password = "${var.password}"
identity_domain = "${var.compute_service_id}"
endpoint = "${var.compute_endpoint}"
lbaas_endpoint = ""

First we create the main Load Balancer instance resource. The Server Pool, Listener and Policy resources will be created as child resources associated to this instance.

resource "opc_lbaas_load_balancer" "lb1" {…

This article is follow-up to previous post on “Using Cyberduck and duck CLI to access Oracle Cloud Infrastructure Classic Storage”. This article provides a quick overview of using Cyberduck with the Oracle Cloud Infrastructure Object Storage Service.

If you don’t already have Cyberduck installed go to and, or use one of the supported package installer such a Choco on Windows, or Homebrew on MacOS, e.g.

$ brew cask install cyberduck

Now download OCI Object Storage profile(s) from the Cyberduck wiki

If a profile file is not…

Stephen Cross

Product Manager, Oracle Cloud Infrastructure

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store