Não é possível executar o pedido Curl do script do livro didático Ansible [closed]

1

Estou fazendo um script simples que será executado no nó Ansible e me notifique via apache Slack se as atualizações estiverem disponíveis.

Se eu executar o script em meus hosts (todos baseados no Debian), recebo uma notificação no aplicativo Slack conforme desejado, mas quando ele é executado via Ansible, reproduz relatórios sem erros, mas nunca recebo a saída.

Qual poderia ser o problema? Eu estou fora das idéias.

O script Bash foi executado no Ansible:

#!/bin/bash

UPGRADE_LIST=$(mktemp)
HOLDED_PACKAGES=$(mktemp)
TMP=$(mktemp)
HOST=$(hostname)
APT=$(which apt)



#Get packages that are holded by the pkg manager
dpkg --get-selections | awk '/hold$/{print $1}' > "${HOLDED_PACKAGES}"

#Get list of upgradeable packages
$APT list --upgradable > "${UPGRADE_LIST}"

#Filter it
awk  '/.*\/.*/ {FS="/";  print $1 }' "${UPGRADE_LIST}" > "${TMP}"


slack () {

    a=$1
    curl -X POST -H "Content-type: application/json" --data "{\"text\":\"${a}\"}" "API HOOK"
}

COUNT=$(wc -l "${TMP}")

    # If count is not equal to 0, then there available packages for upgrade
    if [[ $COUNT != 0 ]]; then
        c="Upgrade available for $HOST"
        slack $c

        #Print only those that aren't holded by dpkg
        while read line; do 
            pkg=$(grep -v $line "${TMP}")
            slack "${pkg}"
            pkg=""
        done < "${HOLDED_PACKAGES}"

    else 
     b="No upgrade available for ${HOST}"
     slack  $b
    fi

#CLEANUP
rm "${TMP}" "${UPGRADE_LIST}" "${HOLDED_PACKAGES}"

Manual:

---
- hosts: debian
  tasks:
    - script: /etc/ansible/scripts/update-manager.sh

Editar:

Corrigido. Foi o problema local no inventário. Ele estava apontando para um host local que é o Alpine.

    
por fugitive 16.05.2017 / 23:50

0 respostas