Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ansible script

je débute sous Ansible

Sujet résolu
    17 septembre 2021 à 15:40:24

    Bonjour,

    je souhaite exécuter un script via Ansible en locale sur le serveur afin de traité 2 fichiers récupéré d'autre serveurs mais j'ai toujours une erreur malqrés de nombreux essai de syntaxe différente.

    voici la tache Ansible:

        - name: Shell

          shell:

            paste <(cat /tmp/{{ansible_hostname}}/liste_paquets.txt | grep -oP '"name":\K.*' | cut -d'"' -f2) <(cat /tmp/{{ansible_hostname}}/liste_paquets.txt | grep -oP '"version":\K.*' | cut -d '"' -f2)|awk '{$1=$1}1' OFS="-" > /tmp/{{ansible_hostname}}/liste_paquets_final.txt

    Et l'erreur:

    TASK [Shell] *********************************************************************************

    skipping: [192.168.1.108]

    fatal: [192.168.1.98]: FAILED! => {"changed": true, "cmd": "paste <(cat /tmp/guacamole/liste_paquets.txt | grep -oP '\"name\":\\K.*' | cut -d'\"' -f2) <(cat /tmp/guacamole/liste_paquets.txt | grep -oP '\"version\":\\K.*' | cut -d '\"' -f2)|awk '{$1=$1}1' OFS=\"-\" > /tmp/guacamole/liste_paquets_final.txt", "delta": "0:00:00.003171", "end": "2021-09-17 15:37:51.401035", "msg": "non-zero return code", "rc": 2, "start": "2021-09-17 15:37:51.397864", "stderr": "/bin/sh: 1: Syntax error: \"(\" unexpected", "stderr_lines": ["/bin/sh: 1: Syntax error: \"(\" unexpected"], "stdout": "", "stdout_lines": []}

    • Partager sur Facebook
    • Partager sur Twitter
      17 septembre 2021 à 17:20:25

      salut,

      tu utilises des syntaxes bash, alors que ansible, lui, utilise /bin/sh, qui n'est, sur cette machine, pas un lien vers /bin/bash

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        20 septembre 2021 à 10:05:02

        Salut ,
        merci de ta réponse mais quand j'observe le lien j'ai bien:
        [root@rundeck-ansible ~]# ls -rtl /bin/sh
        lrwxrwxrwx. 1 root root 4 21 avril 16:07 /bin/sh -> bash
        • Partager sur Facebook
        • Partager sur Twitter
          20 septembre 2021 à 11:38:05

          sur toutes les machines ?

           --
          PS :
          ls -rtl : le tri inversé par date n'est pas indispensable, n'est-ce pas ? :)
          pour montrer la cible d'un lien, on peut utiliser readlink -f

          -
          Edité par dantonq 20 septembre 2021 à 11:38:45

          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

            20 septembre 2021 à 14:26:09

            seul le script s'exécute sur le serveur Ansible en utilisant "delegate_to: localhost" afin de traiter les informations recueilli sur les clients et sauvegardé dans les 2 fichiers en local sur le serveur Ansible, mais en effet sur l'un des serveurs client Debian le ls bin/sh return "dash" au lieu de "bash".

            ps: merci pour la commande readlink -f ;-)

            -
            Edité par romuforza 20 septembre 2021 à 14:32:23

            • Partager sur Facebook
            • Partager sur Twitter
              20 septembre 2021 à 14:57:27

              l'IP 192.168.1.98 correspond au serveur ansible ?
              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                20 septembre 2021 à 16:01:06

                non c'est l'ip du client, j'ai corrigé en ajoutant delegate_to: localhost pour exécuter le script directement sur le serveur ansible.

                J'ai enfin trouvé la solution, il m'a fallu ajouter shell: > puis "args: executable: /bin/bash" ! 

                merci pour ton aide cela m'a aiguillé sur le bon chemin.

                • Partager sur Facebook
                • Partager sur Twitter

                Ansible script

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown