Table des matières
- 2026:
- 2025:
4 billet(s) pour septembre 2026
| Notes HTTP Strict Transport Security - HSTS | 2026/09/18 11:04 | Jean-Baptiste |
| Notes GNU Linux GPU carte graphiques | 2026/09/08 15:49 | Jean-Baptiste |
| Notes GNU Linux graphique | 2026/09/08 15:42 | Jean-Baptiste |
| Notes urlencoding - passer des mots de passe en HTTPS | 2026/09/03 17:58 | Jean-Baptiste |
OpenStack client API
Voir :
Sur le fonctionnement des APIs :
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
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
Clone multi disques dd tee
Voir aussi :
Source : http://superuser.com/questions/145516/cloning-single-disk-drive-to-multiple-drives-simultaneously
cat drive.image | tee >(dd of=/dev/sda) >(dd of=/dev/sdb) >(dd of=/dev/sdc) | dd of=/dev/sdd
cat drive.image | tee >(dd of=/dev/sda) >(dd of=/dev/sdb) >(dd of=/dev/sdc) >(dd of=/dev/sdd) > /dev/null
Avec barre de progression
# sudo apt-get install pv pv drive.image | tee >(dd of=/dev/sda) >(dd of=/dev/sdb) >(dd of=/dev/sdc) | dd of=/dev/sdd
OpenSSL Proxy http_proxy
Voir aussi:
On peut utiliser proxytunnel
proxytunnel -p 192.168.56.1:3128 -d www.acme.fr:443 -a 7000 openssl s_client -connect localhost:7000 -showcerts
Générer un CSR avec OpenSSL
Voir : https://www.tbs-certificats.com/FAQ/fr/192.html
Génération de la clef RSA
openssl genrsa 2048 > acme.fr.key chmod 400 acme.fr.key
Ou pour générer une clef Elliptic Curve
#openssl ecparam -genkey ....
Créez la demande de certificat (CSR)
openssl req -new -key acme.fr.key > acme.fr.csr
san.cnf
[ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = req_ext [ req_distinguished_name ] countryName = Country Name (2 letter code) stateOrProvinceName = State or Province Name (full name) localityName = Locality Name (eg, city) organizationName = Organization Name (eg, company) commonName = Common Name (e.g. server FQDN or YOUR name) [ req_ext ] subjectAltName = @alt_names [alt_names] DNS.1 = acme.fr DNS.2 = www.acme.fr
openssl req -new -sha256 -nodes -out acme.fr.csr -newkey rsa:2048 -keyout acme.fr.key -config san.cnf
Voir les infos du CSR
openssl req -in acme.fr.csr -noout -text
https://raw.githubusercontent.com/openssl/openssl/master/apps/openssl.cnf
OpenSSL - Créer un certificat autosigné / create a self-signed ssl certificate
make-ssl-cert generate-default-snakeoil --force-overwrite
Les certs générées sont ici :
- /etc/ssl/certs/ssl-cert-snakeoil.pem
- /etc/ssl/private/ssl-cert-snakeoil.key
Ou
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
ou
FQDN="plop.local" PORT=9443 # create private key for TLS openssl genrsa -out $FQDN.key 2048 # create public certificate for TLS # openssl req -new -key $FQDN.key -x509 -subj '/CN=localhost' -out $FQDN.cert openssl req -new -key $FQDN.key -x509 -days 3653 -out $FQDN.crt -subj "/C=FR/ST=FR/L=PLOP/O=myorg/CN=$FQDN" # create pem format key+cert cat $FQDN.key $FQDN.crt >$FQDN.pem
Source : https://fabianlee.org/2022/10/26/linux-socat-used-as-secure-https-web-server/
