Using an OpenStack CLI Client

Installation

Openstack CLI client can be installed on any host with python and pip installed. To install Openstack CLI client, run the

pip install --upgrade 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 -openrc.sh
    Please enter your OpenStack Password for project  as user :

  • 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 -hoption 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 <integer>] [--fit-width]
                                  [--print-empty] [--noindent]
                                  [--quote {all,minimal,none,nonnumeric}]
                                  [--sort-column SORT_COLUMN]
                                  [--public | --private | --shared]
                                  [--property <ey=value>] [--name <name>]
                                  [--status <status>] [--long]
                                  [--sort <key>[:<direction>]]
                                  [--limit <num-images>] [--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  ]
     : 
     :
     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.
     :
     :
     :