Nova CLI produce salida cero en stderr y stdout

Nova CLI produce salida cero en stderr y stdout

siguiente problema. Obtuve este script de shell:

#!/bin/sh

# Provide log for debugging
if [ ! -f /home/some-user/port-control.log ]; then
  touch /home/some-user/port-control.log
  chown some-user /home/some-user/port-control.log
fi

# Load environment variables for authentication
source /home/some-user/.openstack/nova-openrc.sh

# Open ports at login
if [ "$PAM_TYPE" = "open_session" ] && [ "$PAM_USER" = "some-user" ]; then
  echo "Opening ports ... Nova response:" >> /home/some-user/port-control.log
  nova --debug add-secgroup some-server some-secgroup &>> /home/some-user/port-control.log
fi

# Close ports at logout
if [ "$PAM_TYPE" = "close_session" ] && [ "$PAM_USER" = "some-user" ]; then
  echo "Closing ports ... Nova response:" >> /home/some-user/port-control.log
  nova --debug remove-secgroup some-server some-secgroup &>> /home/some-user/port-control.log
fi

Estoy usando este script para abrir/cerrar algunos puertos en mi firewall cuando me conecto/desconecto a través de ssh agregando dinámicamente un grupo de segundos ya configurado a mi servidor; al menos esa es la idea. Desafortunadamente, los comandos nova de alguna manera no parecen ejecutarse en absoluto, no aparece nada en mi registro. Ahora, como no tengo stderr, la depuración es un poco difícil. ¿Qué estoy haciendo mal?

Cuando obtengo las credenciales de inicio de sesión de nova y ejecuto los comandos de nova manualmente fuera de un script, todo funciona perfectamente bien.

Por cierto: si ayuda: estoy ejecutando todo esto dentro de un contenedor acoplable basado en una imagen de Ubuntu:14.04. Si lo se:Si estás usando sshd dentro de un contenedor acoplable, lo estás haciendo mal.En este caso, hay una razón para el sshd;)

Respuesta1

Algo simple, pero finalmente encontré la respuesta. Esto es lo que hice:

Con la ayuda de unresponder a otra pregunta en StackOverflowRedirigí todo el resultado del script a un archivo y me di cuenta de que las variables de entorno para la autenticación no se obtuvieron. Por qué: porque el shell no conocía el sourcecomando. ¿Por qué? Porque fui lo suficientemente estúpido como para no comprobar el caparazón de bruja que estaba usando.

El problema se solucionó simplemente cambiando #/bin/sha #!/bin/bash. ¡Tada!

información relacionada