es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Extraer datos del comando de terminal.

Estoy haciendo una consulta:

az aks nodepool show \
                --resource-group $RESOURCE_GROUP_NAME \
                --cluster-name $CLUSTER_NAME \
                --name $NODE_POOL_NAME -o table

Obtengo una salida con un nombre de tabla ProvisiongState. Necesito ayuda para recopilar ese resultado de la consulta en una variable, para poder realizar comprobaciones en ella hasta que cambie de UpgradingNodeImageVersion a Succeeded. Estaba pensando en hacer esto como un script de shell o tal vez un programa de Python.

Tabla de la que necesito obtener información:
aquí

¡Gracias!

EDIT: Usé este comando para obtener lo que necesitaba. ¡Gracias a todos por la ayuda!

az aks nodepool show --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME | grep "provisioningState": "Succeeded"
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el resultado de la consulta en una variable, puedes utilizar un script de shell o un programa en Python. Aquí tienes un ejemplo de cómo hacerlo en un script de shell:

    # Ejecuta la consulta y guarda la salida en una variable
    result=$(az aks nodepool show --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME -o json)
    
    # Extrae el estado de aprovisionamiento de la salida
    provisioning_state=$(echo $result | jq -r '.provisioningState')
    
    # Repite hasta que el estado de aprovisionamiento sea 'Succeeded'
    while [ "$provisioning_state" != "Succeeded" ]
    do
        echo "Esperando que el estado de aprovisionamiento sea 'Succeeded'..."
        sleep 5
        result=$(az aks nodepool show --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME -o json)
        provisioning_state=$(echo $result | jq -r '.provisioningState')
    done
    
    echo "¡El estado de aprovisionamiento ahora es 'Succeeded'!"
    

    Este script utiliza el comando az para ejecutar la consulta y guarda la salida en formato JSON en una variable llamada result. Luego, extrae el valor de ProvisioningState del JSON utilizando el comando jq y lo guarda en una variable llamada provisioning_state.

    El script luego entra en un bucle y verifica el valor de ProvisioningState cada 5 segundos utilizando los mismos comandos az y jq. Si el valor no es Succeeded, el script espera 5 segundos y verifica nuevamente. Una vez que el valor es Succeeded, el script sale del bucle e imprime un mensaje.

    Puedes personalizar este script cambiando la consulta y modificando las condiciones del bucle según tus necesidades.

Comments are closed.