OpenStack CLI

The OpenStack CLI is a Command-Line Interface for interacting with OpenStack, running on Red Cloud. This page covers installation and some of the basic features of the CLI. For more information, please refer to the official documentation. If you prefer to use a Graphical User Interface, then please see the documentation on the Web Interface.

Installation

The Openstack CLI client can be installed on any host with python and pip installed. To install Openstack CLI client, run the pip install python-openstackclient python-swiftclient command either as root or as yourself, depending on where and how python is installed on the machine you are running this on. This command will also install the OpenStack SDK for python. You may also need to add the install directory to your PATH by running export PATH=$PATH:$HOME/.local/bin.

Openstack CLI client is also installed on linuxlogin.cac.cornell.edu. Simply ssh <user name>@linuxlogin.cac.cornell.edu and enter your CAC account password when prompted.

Download OpenStack RC File

  1. Using your web browser, Go to https://redcloud.cac.cornell.edu/dashboard/project/api_access/.
  2. Log in using your CAC account (do NOT use GLOBUS).
  3. Click on the Download Openstack RC File menu in the upper right corner and select Openstack RC File (Identity API v3).
  4. A file named <project name>-openrc.sh will be downloaded to your computer. Copy it to the host with Openstack CLI client installed and you are ready to go!

Usage

On the host where Openstack CLI client is installed,

  • Source the Openstack RC file. Enter your CAC account password when prompted. You will need to do this step before you can use the Openstack CLI client in a new terminal session. In addition, if you want to switch between multiple projects, you will need to source the RC file for the project that you want to switch to.

    bash-4.2$ **source <project name>-openrc.sh** 
    Please enter your OpenStack Password for project <project name> as user <user name>:
    
  • You should be able to list available images like this:

    
        bash-4.2$ openstack image list
      +--------------------------------------+----------------------------+--------+
      | ID                                   | Name                       | Status |
      +--------------------------------------+----------------------------+--------+
      | bb0efad8-5d21-46de-ba8b-6522b3328b48 | centos-7.5                 | active |
      | 9387131a-91ef-4cae-a3b7-da20c586af70 | ubuntu-18.04-LTS           | active |
      +--------------------------------------+----------------------------+--------+
    

  • Run openstack command help to get the list of available commands. Use -h option with any command to get detailed syntax help. For example:

    
      -bash-4.2$ openstack image list -h
      usage: openstack image list [-h] [-f {csv,json,table,value,yaml}] [-c COLUMN]
                                  [--max-width ] [--fit-width]
                                  [--print-empty] [--noindent]
                                  [--quote {all,minimal,none,nonnumeric}]
                                  [--sort-column SORT_COLUMN]
                                  [--public | --private | --shared]
                                  [--property ] [--name ]
                                  [--status ] [--long]
                                  [--sort [:]]
                                  [--limit ] [--marker <image>]

    List available images

    optional arguments: -h, --help show this help message and exit --public List only public images --private List only private images --shared List only shared images : :

  • Use the swift command to access object store:

     -bash-4.2$ swift stat
                         Account: v1
                      Containers: 1
                         Objects: 1
                           Bytes: 4611840
                     X-Timestamp: 1539699805.38623
     X-Account-Bytes-Used-Actual: 4612096
                      X-Trans-Id: tx00000000000000000000d-005bc5f45c-38952d-default
                    Content-Type: text/plain; charset=utf-8
                   Accept-Ranges: bytes
     -bash-4.2$ swift stat
                         Account: v1
                      Containers: 1
                         Objects: 1
                           Bytes: 4611840
                     X-Timestamp: 1539699998.81229
     X-Account-Bytes-Used-Actual: 4612096
                      X-Trans-Id: tx00000000000000000000e-005bc5f51e-38952d-default
                    Content-Type: text/plain; charset=utf-8
                    Accept-Ranges: bytes
     -bash-4.2$ swift help 
     usage: swift [--version] [--help] [--os-help] [--snet] [--verbose]
                  [--debug] [--info] [--quiet] [--auth ]
                  [--auth-version  |
                      --os-identity-api-version <auth_version> ]

    Command-line interface to the OpenStack Swift API.

    Positional arguments: delete Delete a container or objects within a container. download Download objects from containers. list Lists the containers for the account or the objects for a container. post Updates meta information for the account, container, or object; creates containers if not present. : : :

Available Scripts

  • Openstack CLI client is installed on linuxlogin.cac.cornell.edu. All CAC users can log in there. Three additional scripts are installed under /opt/openstack
    • source /opt/openstack/login-redcloud.sh: Authenticate the current login session to use Openstack CLI client.
    • /opt/openstack/create-private-net.sh: Create a private network with the specified name
    • /opt/openstack/delete-private-net.sh: Delete the specified private network