From 0978f2f0ab93e8b8cae8123859092df724af221e Mon Sep 17 00:00:00 2001 From: fanta Date: Sun, 5 Jan 2025 19:06:59 +0100 Subject: [PATCH] script openstack --- o/README.md | 22 ++++++++++++++++++++++ o/o | 21 +++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 o/README.md create mode 100755 o/o diff --git a/o/README.md b/o/README.md new file mode 100644 index 0000000..7521e40 --- /dev/null +++ b/o/README.md @@ -0,0 +1,22 @@ + +Para que funcione el script se ha de instalar previamente el cliente unificado de openstack. +Se puede hacer con pip. El proceso es el siguiente: + +* 1 - Obtenemos el archivo RC desde Horizon (API Access --> Download OpenStack RC File) +* 2 - $ pip install python-novaclient python-openstackclient +* 3 - $ source nombrearchivoRC + +Una vez se tienen los archivos rc se copian con el nombre que queramos al directorio /home/tuusuario/.config/o/ +Y copias "o" a /usr/local/bin + +De esta forma ya podrás usar o simplemente escribiendo "o". + +Ejemplos: + +$ o +$ o nombrearchivoRC +$ o nombrearchivoRC "nova list" + +Si nos fijamos el comando va entre comillas para que se entienda que es el parametro $2. +Esto se puede mejorar en un futuro. De momento así funciona y es de utilidad. + diff --git a/o/o b/o/o new file mode 100755 index 0000000..50514a9 --- /dev/null +++ b/o/o @@ -0,0 +1,21 @@ +#!/bin/bash +# Ejemplo: o nombrercfile.sh "nova list" +# Este script sirve simplemente para lanzar comandos en diferentes proyectos openstack. +# En el directorio .config/o/ se han de dejar los archivos RC con las credenciales y variables de entorno. +# En esos archivos se puede especificar password en vez de que la solicite cada vez. +# La forma de uso es escribir o y te muestra los rc files. Con o + el nombre del rc file + el comando vamos a poder obetener la información + +oDir="$HOME/.config/o" +rcFileName="$1" +cmd="$2" + +check_root(){ if [ "$(id -u)" == 0 ]; then echo "don't run n as root"; exit; fi } +create_oDir(){ [ ! -d "$oDir" ] && mkdir -p $oDir ; } +getRCFiles(){ ls -1 $oDir ; } +sourceRCFile(){ [ -f "$oDir/$rcFileName" ] && source "$oDir/$rcFileName" ; } + +check_root +create_oDir + +[[ $# -eq 0 ]] && getRCFiles +[[ $# -ge 1 ]] && sourceRCFile ; exec $cmd