Outils pour utilisateurs

Outils du site


tech:openstack_client_api

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tech:openstack_client_api [2025/06/02 14:51] Jean-Baptistetech:openstack_client_api [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Brouillon Cloud}}
 +
 +# OpenStack client API
 +
 +
 +Voir : 
 +* https://docs.openstack.org/python-openstackclient/pike/configuration/index.html
 +* https://developer.rackspace.com/blog/openstack-cli-basics/
 +* https://docs.openstack.org/security-guide/api-endpoints/api-endpoint-configuration-recommendations.html
 +
 +Sur le fonctionnement des APIs :
 +* https://adam.younglogic.com/2013/09/keystone-v3-api-examples/
 +* https://www.oreilly.com/learning/lets-use-keystone
 +* https://www.mirantis.com/blog/manage-openstack-projects-using-domains-havana/
 +* http://alexconst.net/2016/02/08/ansible/
 +
 +
 +## Install
 +
 +### Paquet Debian
 +
 +~~~bash
 +apt-get install openstack-clients
 +~~~
 +
 +
 +Le script suivant permet de jouer avec les APIs `/usr/bin/python2-openstack`
 +
 +### Install python-openstackclient via pip
 +
 +
 +~~~bash
 +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
 +~~~bash
 +openstack complete | sudo tee /etc/bash_completion.d/osc.bash_completion
 +~~~
 +
 +
 +
 +## Config 
 +
 +`~/.config/openstack/clouds.yaml`
 +~~~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
 +~~~bash
 +curl http://192.168.56.11/identity/v3
 +~~~
 +
 +Test
 +~~~bash
 +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`
 +~~~bash
 +#
 +# 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 
 +~~~bash
 +openstack --os-identity-api-version 3 --help
 +~~~
 +
 +
 +## Exemple 
 +
 +~~~bash
 +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
 +
 +~~~bash
 +openssl s_client -showcerts -verify 5 -connect 192.168.21.53:5000 </dev/null > /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
 +
 +[How to Automate the Export of AWS EC2 to Your Openstack Cloud](https://www.stratoscale.com/blog/compute/how-to-automate-the-export-of-aws-ec2-to-your-openstack-cloud/)
 +
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki