Using Openstack CLI Client

From CAC Documentation wiki
Jump to navigation Jump to search

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 <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 <integer>] [--fit-width]
                             [--print-empty] [--noindent]
                             [--quote {all,minimal,none,nonnumeric}]
                             [--sort-column SORT_COLUMN]
                             [--public | --private | --shared]
                             [--property <key=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_url>]
             [--auth-version <auth_version> |
                 --os-identity-api-version <auth_version> ]
: 
:
Command-line interface to the OpenStack Swift API.
 
Positional arguments:
  <subcommand>
    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.
:
:
: