Outils pour utilisateurs

Outils du site


tech:openstack_client_api

Ceci est une ancienne révision du document !


OpenStack client API

Install

Paquet Debian

apt-get install openstack-clients

Le script suivant permet de jouer avec les APIs /usr/bin/python2-openstack

Install python-openstackclient via pip

sudo apt-get install virtualenv build-essential python-dev
 
mkdir openstackcli
cd openstackcli
virtualenv .
source bin/activate
pip install python-openstackclient
sudo ln -fs $PWD/bin/openstack /usr/local/bin/
#deactivate

Install Auto-completion

openstack complete |sudo tee /etc/bash_completion.d/osc.bash_completion

Config

~/.config/openstack/clouds.yaml
clouds:
  devstack:
    auth:
      auth_url: http://192.168.56.11/identity/v3
      username: "admin"
      project_id: 17780b954c3a4b04a8123ac76d68f7b4
      project_name: "admin"
      user_domain_name: "Default"
      password: "toor"
    region_name: "RegionOne"
    interface: "public"
    identity_api_version: 3

Debug - Test flux

curl http://192.168.56.11/identity/v3

Test

openstack project list --os-cloud devstack
 
export OS_CLOUD=devstack
 
# python2-openstack service list
openstack service list
openstack project list
openstack server list

Ou par variables

devstack-openrc
#
# See :
# * https://docs.openstack.org/python-openstackclient/pike/cli/man/openstack.html#environment-variables
# * https://docs.openstack.org/newton/install-guide-ubuntu/keystone-openrc.html
 
unset $(set |grep _ENDPOINT_ |cut -d= -f1)
unset $(set |grep ^OS_ |cut -d= -f1)
 
export LC_ALL=C
# LC_ALL=C.UTF-8
export OS_NO_CACHE='true'
export OS_CACERT=/etc/ssl/certs/
 
export OS_PROJECT_NAME='admin'
export OS_USERNAME='admin'
export OS_PASSWORD='toor'
export OS_AUTH_URL='http://192.168.56.11/identity/v3'
#export OS_DEFAULT_DOMAIN='Default'
export OS_USER_DOMAIN_NAME='Default'
export OS_IDENTITY_API_VERSION='3'
#export OS_INTERFACE='public'
#export OS_AUTH_STRATEGY='keystone'
#export OS_REGION_NAME='RegionOne'
 
#export OS_ENDPOINT_TYPE="$OS_AUTH_URL"
#export CINDER_ENDPOINT_TYPE="OS_AUTH_URL"
#export GLANCE_ENDPOINT_TYPE="$OS_AUTH_URL"
#export KEYSTONE_ENDPOINT_TYPE="$OS_AUTH_URL"
#export NOVA_ENDPOINT_TYPE="$OS_AUTH_URL"
#export NEUTRON_ENDPOINT_TYPE="$OS_AUTH_URL"
 
export OS_CLOUDNAME=devstack
# Add OS_CLOUDNAME to PS1
if [ -z "${CLOUDPROMPT_ENABLED:-}" ]; then
    export PS1=${PS1:-""}
    export PS1=\${OS_CLOUDNAME:+"(\$OS_CLOUDNAME)"}\ $PS1
    export CLOUDPROMPT_ENABLED=1
fi

Syntaxe

openstack --os-identity-api-version 3 --help

Exemple

openstack keypair create --public-key ~/.ssh/id_rsa.pub maclef

Pb

Pb certificate verify failed

$ openstack project list --os-cloud vio
Failed to discover available identity versions when contacting https://vio.acme.local:5000/v3. Attempting to parse version from URL.
SSL exception connecting to https://vio.acme.local:5000/v3/auth/tokens: HTTPSConnectionPool(host='vio.acme.local', port=5000): Max retries exceeded with url: /v3/auth/tokens (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))

Solution

echo -n |openssl s_client -showcerts -verify 5 -connect 192.168.21.53:5000 > /usr/local/share/ca-certificates/vio.acme.local_5000.crt
update-ca-certificates
 
export OS_CACERT=/etc/ssl/certs/

Pb 'int' object has no attribute 'startswith'

$ openstack server list --os-cloud vio
'int' object has no attribute 'startswith'

Solution 1

Voir https://review.openstack.org/#/c/388832/

Patcher les fichiers ci-dessous comme https://review.openstack.org/#/c/388832/2/osc_lib/cli/client_config.py :

  • /usr/lib/python2.7/dist-packages/osc_lib/cli/client_config.py
  • /usr/lib/python2.7/dist-packages/openstackclient/common/client_config.py

Solution 2

Dans clouds.yaml remplacer identity_api_version: 3 par identity_api_version: “3”

Autres

tech/openstack_client_api.1742825205.txt.gz · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki